您的位置 首页 java

java基础学习对象的学习成员变量和局部变量

第二十天学习java

今天是九月的最后一天,加油啊,时间流逝得越来越快了。

一、单个对象

在对象内存图中,我们可以理解为,程序会这样执行。分为栈内存和堆内存。栈内存在使用完之后就会消失。二堆内存不会。

例如:在上一个study测试类中:

首先会将第一行main的方法执行到栈内存中,然后执行第二行,将Study s1 = new Studty(); 左边依然在栈内存,但是右边new之后,他会在 堆内存 里面。并且会有一个唯一的编号,这里我们可以想象成001。如果我们直接访问里面的方法变量,我将会得到他的默认值。因此我们需要根据需要进行赋值。这也说明,堆内存是有默认值的,栈内存没有默认值,需要先赋值。

而我们如果直接使用类中的方法,其实它是在栈内存中,使用完之后就消失了。例如:s1.study();s.doHomework;。

二、多个对象

这其实跟单个对象的运行过程是一样的。并且没有太大的区别。多个对象在于要多new一次,每new一次会获得一个新的编号(地址)对应相应的堆内存的空间。每个对象都是相对独立,互不影响。但是访问原有的类中的方法变量还是一样的不变,因为它是在栈内存,并不是在堆内存。例如:s1.study() 和s2.study()输出的内容是一样的。(tip:这里的s1和s2可以理解为对象1和对象2,study是一个类。)

三、多个对象可以指向相同

当第二个对象直接等于第一个对象,并没有使用new的时候,那么这时候他们的地址(编号)是一样的,那就相当于谁改变了,那就一起改变。例如:

Student s1 = new Student();

S1.name = “小颜”

Student s2 = s1

S2.name = “小王”

那么此时不管是s1对象还是s2对象,他们输出的都是小王了。这就是多个对象可以指向相同。

四、成员变量和局部变量

类中方法外的变量就是成员变量:

Public class Student {

String name ;——————这就是成员变量。

Public void study (){

Int i = o;——————————局部变量。

}

}

方法中的变量就是局部变量。

两者的区别:

区别一:两者位置不同, 成员变量 在类中方法外, 局部变量 在方法内或者方法声明上。

区别二:内存中的位置不一样, 成员变量 在堆内存, 局部变量 在栈内存。

区别三: 生命周期 不一样, 成员变量 随着对象的存在而存在,随着对象的消失而消失。 局部变量 随着方法的调用而存在,随着方法调用完毕而消失。

区别四:初始化值不一样, 成员变量 有默认值, 局部变量 没有默认初始值,必须先定义,赋值才能使用。

五、封装

(1)private关键字

它是一个权限修饰符,可以修饰成员(成员变量和成员方法)

作用是保护成员不被别的类使用,被 private 修饰的成员只在本类中才能访问。

使用:

private 定义类型 变量名 ;

如果需要被其他类使用,需要使用相应的操作:

“get变量名 (首字母大写) ()” 用于获取成员变量的值,方法用public修饰。

“set变量名 (首字母大写) ()”方法,用于设置成员变量的值,方法用public修饰。

今天学习到这里,下面实操。明天再见吧!

文章来源:智云一二三科技

文章标题:java基础学习对象的学习成员变量和局部变量

文章地址:https://www.zhihuclub.com/193953.shtml

关于作者: 智云科技

热门文章

网站地图