java学习之路 之 面向对象编程-面向对象特征之一(封装和隐藏)级类的成员之三(构造器、构造方法)

时间:2021-08-15 17:22:45
面向对象特征之一:封装和隐藏
使用者对类内部定义的属性(对象的成员变量)的直接操作会导致数据的错误、混乱或安全性问题。

Java中通过将数据声明为私有的(private),再提供公共的(public)方法:getXxx()和setXxx()实现对该属性的操作,以实现下述目的:
隐藏一个类中不需要对外提供的实现细节;
使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作;
便于修改,增强代码的可维护性;

四种访问权限修饰符

Java权限修饰符public、protected、private置于类的成员定义前,用来限定对象对该类成员的访问权限。java学习之路 之 面向对象编程-面向对象特征之一(封装和隐藏)级类的成员之三(构造器、构造方法)

对于class的权限修饰只可以用public和default(缺省)。
public类可以在任意地方被访问。
default类只可以被同一个包内部的类访问。

java学习之路 之 面向对象编程-面向对象特征之一(封装和隐藏)级类的成员之三(构造器、构造方法)

类的成员之三:构造器(构造方法)
构造器的特征:
它具有与类相同的名称
它不声明返回值类型。(与声明为void不同)
不能被static、final、synchronized、abstract、native修饰,不能有return语句返回值
构造器只能在创建对象时调用,不像其他方法可以在任意时刻被调用

构造器的作用:
创建对象;给对象进行初始化如:Order o = new Order();                 
Person p = new Person(“Peter”,15);


构造器:
语法格式:修饰符  类名 (参数列表) {
   初始化语句;
}
举 例:
public class Animal {
private int legs;public Animal() {
legs = 4; 
}   //构造器
public void setLegs(int i) { 
legs = i; 
}
public int getLegs(){
return legs;
}
}
创建Animal类的实例:
Animal  a=new Animal();    //调用构造器,将legs初始化为4。

构造器分类:
根据参数不同,构造器可以分为如下两类:
隐式无参构造器(系统默认提供)
显式定义一个或多个构造器(无参、有参)

注  意:
Java语言中,每个类都至少有一个构造器
默认构造器的修饰符与所属类的修饰符一致
一旦显式定义了构造器,则系统不再提供默认构造器
一个类可以创建多个重载的构造器
父类的构造器不可被子类继承

构造器重载:
构造器一般用来创建对象的同时初始化对象。
如class Person{
String name;
int age;
public Person(String n , int a){  
name=n; age=a;
}
}构造器重载使得对象的创建更加灵活,方便创建各种不同的对象。
构造器重载举例:
public class Person{   
public Person(String name, int age, Date d) {
this(name,age);…}   
public Person(String name, int age) {…}  
public Person(String name, Date d) {…}   
public Person(){…}
}
构造器重载,参数列表必须不同