成员属性封装

成员封装属性格式:

1.private 属性 访问权限
2.属性一旦封装之后外部将不能够直接访问 即:对外部不可见,但是对于类的内部可见的 要可以访问封装属性

private Integer age;

在Java开发标准中提供有如下要求:

【setter getter】可以使用setXxx() getXxx()
设置属性方法:public void setName(String n);
获取属性方法:public String getName()

public void setAge(Integer age){
     this.age = age;
}
public Integer getAge(Integer age){
     return age;
}

注意:类中的所有属性都必须使用private封装 访问封装的属性 必须使用setter getter

构造方法与匿名对象

我们在以前创建对象的时候都是先用new 创建一个新的对象实例,开辟一个堆空间,然后给它用:实例.set属性(属性值),一个一个的设置的,很累很慢。

Person person = new Person();
person.setName("张三");
person.setAge(18);

构造方法就是为了在创建对象的时候同时给对象的属性初始化。

//构造方法
public Person(){
}
public Person(String name,Integer age){
}
// 调用构造方法
Person person = new Person("张三",18);

构造方法的定义

● 方法名称必须与类名称保持一致;
● 构造方法不允许设置任何的返回值类型,即没有返回值定义;
● 构造方法是在使用关键字new实例化对象的时候自动调用的

注意

1.Java程序里考虑到程序结构的完整性,所有的类都会提供构造方法,也就是说你的类中没有任何的构造方法,那么系统自动创建什么都不做的构造方法,这个无参构造方法在程序编译的时候自动创建的。
如果有一个构造方法的时候,这个默认的构造方法将不会被自动创建。
2.一个类至少存在一个构造方法,永远存在。

思考

既然构造方法是一个方法,那么为什么不让他定义返回值类型呢?
既然构造方法不会返回数据,为什么不使用void关键字定义呢?
分析:程序编译器是根据代码结构来进行编译处理的,执行的也是根据代码结构来处理的。
如果在构造代码上使用了void,那么此结构就与普通方法的结构完全相同了,这样编译器会认为此方法是一个普通方法,普通方法与构造方法最大的区别:构造方法是类对象实例化的时候调用的,而普通方法是在类对象实例化产生之后调用的。

匿名对象

1.只是通过实例化对象来进行类的操作,而这种形式的对象由于没有名字,我们叫他匿名对象。
2.由于此对象没有任何的引用,所以该对象使用一次之后就将成为垃圾,而所有的垃圾将被GC进行回收与释放。

public static void main(String [] args){
   new Person("张三",18).walk();
}

参考文献

阿里云开发者社区

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐