一、成员变量和局部变量的区别:
1. 在类中的位置不同
a. 成员变量:在类中方法外
b. 局部变量:在方法定义中或者方法声明上
2. 在内存中的位置不同
a. 成员变量:在堆内存(成员变量属于对象,对象进堆内存)
b. 局部变量:在栈内存(局部变量属于方法,方法进栈内存)
※ 由于内存中的位置不同,所以成员变量和局部变量可以重名。
3. 生命周期不同:
a. 成员变量:随着对象的创建而存在,随着对象的消失而消失
b. 局部变量:对着方法的调用而存在,对着方法的调用完毕而消失
4. 初始化值不同:
a. 成员变量:有默认初始化值
b. 局部变量:没有默认初始化值,必须定义、赋值,然后才能使用。
注意事项:
• 局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。
• 基本数据类型变量包括:byte/short/int/long/float/double/boolean/char
• 引用数据类型变量包括:数组、类、接口、枚举。
二、匿名对象的概述和应用
1. 匿名对象:没有名字的对象
2. 匿名对象的应用场景:
a. 调用方法,仅仅只调用一次的时候
i. 这样做的好处是为了节省代码
※ 注意:调用多次的时候不合适,匿名对象调用完毕就变成垃圾,可以被垃圾回收器不定时回收。
b. 匿名对象可以作为实际参数传递。eg:method(new car());
匿名对象可以调用属性,但是调用完后没有任何对象指向它,所以没有任何意义。
三、封装
1. 封装:是指隐藏对象的属性和实现细节,仅对外提供公共的访问方式。
2. 封装的好处:
a. 隐藏实现细节,提供公共的访问方式。
b. 提高代码的复用性
c. 提高安全性
3. 封装的原则:
a. 将不需要对外提供的内容都隐藏起来。
b. 把属性隐藏,提供公共的方法对其访问。