深入分析类和对象(阿里云开发者社区学习笔记)
成员属性封装,构造方法与匿名对象的知识(Java学习笔记)
成员属性封装
成员封装属性格式:
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();
}
参考文献
阿里云开发者社区
更多推荐
所有评论(0)