自学Java第十二课
今天学习了Java语言中类和对象中的内存的分配
student s1(栈内存)=new student()(堆内存),栈内存会产生一个地址,堆内存的地址和栈内存相同。
两个对象指向相同时,一个对象修改了堆内存的数据,另一个对象访问时值会改变。
成员变量和局部变量
成员变量:类中方法外的变量。 局部变量:方法中的变量
两变量之间的区别:①类中的位置不同;
②内存中的位置不同,成员变量在堆内存中,局部变量在栈内存中。
③周期不同,成员变量与对象共存亡,局部变量与方法共存亡。
④初始值不同,成员变量有默认初始值,局部变量没有默认初始值。
封装
private关键字 权限修饰符,修饰成员,其修饰的成员只能在本类中使用。使用private关键字之后,对变量不能直接赋值,而是利用方法进行赋值。
this
(1)this修饰的变量用于指代成员变量。方法形参与成员变量同名时,加this来区分开成员变量。
(2)当形参与成员变量相同时使用this,结局局部变量隐藏成员变量的问题。
(3)方法被那个对象引用,this代表那个对象。
封装的原则:将类的某些信息隐藏在类的内部,不允许外界程序直接访问,通过类提供方法来实现对隐藏信息的操作和访问。例如:getname();
好处:①用方法来控制成员变量的操作,提高代码的安全性;
②把代码进行封装,提高代码的复用性。