1、成员变量和局部变量的区别有哪些?
(1)代码层面:定义位置不同
成员变量,定义在类中(类中方法外)
局部变量,定义在方法中
(2)内存层面:空间不同
成员变量,随着对象的创建而创建,创建在堆内存中对象空间内
局部变量,随着方法的加载而创建,创建在栈中方法内
(3)内存层面:时间不同,生命周期不同
成员变量,随着对象的创建而创建,随着对象的消亡而消亡
局部变量,随着方法的加载而创建,随着方法出栈而消亡
(4)初始化状态不同:
局部变量:没有初始值,必须先赋值后使用
成员变量:具有默认初始化值
2、什么是匿名对象?什么时候使用?
一、匿名对象:没有名字的对象
二、
(1)如果某个对象在创建之后,仅仅使用一次,就可以使用匿名对象,便于后续垃圾回收释放系统资源
(2)匿名对象会在某些场合下转化为有名字的对象
注意:匿名对象只能使用一次
3、什么是封装?封装的好处,原则分别是什么?
一、封装:隐藏事物的实现细节,对外提供公开的访问方式
二、好处:
(1)保证了代码的安全性
(2)提高了代码的复用性
(3)隐藏事物的实现细节
三、封装的原则:
(1)隐藏事物的属性
(2)隐藏事物的实现细节
(3)对外提供公开的访问方式
4、this 关键字的作用是什么?
用于将成员变量和局部变量区分开,使用【this.成员变量名】指代的一定是对象的成员变量,如果没有带this,而是直接书写成员变量名,才会按照就近原则由近及远寻找对应的变量