主要说说成员变量与局部变量的区别、形式参数、匿名对象与Java的封装性。
成员变量和局部变量的区别
1、在类中定义的位置不同:
成员变量:类中,但是定义在方法外。
局部变量:定义在方法类中。
2、在内存中的位置不同:
成员变量:定义在堆中。
局部变量:定义在栈中。
3、生命周期不同:
成员变量:随着对象的创建而存在,随着对象的结束而结束。
局部变量:随着方法的调用而存在,随着方法的结束而结束。
4、初始化值不同:
成员变量:有默认的初始化值,比如int给的是0,String类型给的是null
局部变量:没有系统给它初始化值,必须在定义的时候给它赋值,才能使用。
注意:
1、方法与方法之间里面的局部变量不能互相调用。
2、局部变量可以和成员变量一样,在方法中使用的时候,采用就近原则。
形式参数的问题
在调用方法时,括号里面的参数有两种类型,一种是基本数据类型,一种是引用数据类型。
基本数据类型:形式参数的改变不会影响到实际参数。
引用数据类型:形式参数的改变会直接影响到实际参数。
匿名类
匿名对象:就是没有名字的对象。
匿名对象的使用场景:
1、调用方法的时候,仅仅调用一次的时候,调用多次的时候,不适合。
为什么会存在匿名对象?
因为匿名调用完毕之后,由于栈内存中没有引用指向它,那么调用完毕之后就是垃圾,可以被垃圾回收器回收。
2、匿名对象可以作为实际参数进行传递。
例如:
封装
封装:其实就是指隐藏对象的属性和相关实现细节,仅仅对外提供公共访问的方式。Java中提供了一个关键字:private
private:私有的,可以修饰成员变量和成员方法。
注意:被private修饰的成员变量或者是成员方法,只能在本类中访问
对private的使用
1、对成员变量用private进行修饰
2、提供对应的getXxx()和setXxx()方法
private:
是一个权限修饰符
可以修饰成员变量和成员方法
被修饰的成员变量或者是成员方法只能在本类中使用
This关键字
变量的使用原则:就近原则
直接通过类名.成员变量是报错的
如果这个Student3这个对象存在,它就代表着一个学生对象
但是,谁可以代表这个当前类的对象呢
Java中提供了一个关键字:this
制作不易,感谢阅读。我是酷酷的涛。