02 成员变量VS局部变量 区别
来源:互联网 发布:在线铃声截取软件 编辑:程序博客网 时间:2024/05/21 11:14
成员变量VS局部变量 区别
* A:在类中的位置不同 (看代码则可理解)
* 局部变量:在方法定义中或者方法声明上
* B:在内存中的位置不同 (B,C一起记)
* 成员变量:在堆内存(成员变量属于对象,对象进堆内存)
* 局部变量:在栈内存(局部变量属于方法,方法进栈内存)
* C:生命周期不同
* 成员变量:随着对象的创建而存在,随着对象的消失而消失
* 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
* D:初始化值不同 (看代码则可理解)
* 成员变量:有默认初始化值
* 局部变量:没有默认初始化值,必须定义,赋值,然后才能使用。
class Car {String name;int sex;String code;String address;public void drive() {int i = 0;System.out.println(name + i + "在开车");}}成员变量是name, sex, code, address.
局部变量是Int i;
为什么i是局部变量呢?
因为i在drive()方法里,drive()方法又在Car类里。所以i只是其中一小部分,好比人体的手一样,如果手烫伤了,我们会说局部烫伤。
说一下在内存中的位置。
在家,我们会用各种柜子将东西划分好,这样可以便于管理和使用。
在代码里,我们也会使用这种方法,将成员变量与局部变量放在不同的柜子里,一个叫堆,一个叫栈。
由于成员变量通常是一堆一堆的出现的,像名字,性别,家庭地址,都会一起给出,所以就将成员变量放于堆中。
那么局部变量就放于栈中了。
所以,成员变量:在堆内存。局部变量:在栈内存。
再谈一下生命周期。
生命周期就像我们人一样,从出生到死亡。
这行代码从最开始敲,我们先创建类,就像出生的婴儿。然后我们就要考虑取名,于是定义了姓名,也就是成员变量。
所以姓名(成员变量)是随着婴儿(对象)的创建而存在,如果哪一个婴儿老死了,那么他的姓名也就随他一起消失了。
总结:* 成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量是在方法中生成的,所以随着方法的调用而存在,随着方法的调用完毕而消失
初始值?
婴儿出生,还没有名字,我们会记个小名,比如虫虫,这样可以便于称呼。
所以成员变量(姓名)一开始系统就会给个默认的初始值。
但是方法就不同了,方法是后来的事,不用那么着急,所以系统不会给默认初始值,如果要使用,就自己去定义。
0 0
- 02 成员变量VS局部变量 区别
- 成员变量vs局部变量
- 成员变量 VS 局部变量
- 类变量,成员变量,局部变量区别
- JAVSE--02-成员变量和局部变量的区别(理解)
- 局部变量和成员变量的区别
- 局部变量和成员变量的区别
- 局部变量和成员变量区别
- 成员变量和局部变量的区别
- 成员变量和局部变量的区别
- 成员变量和局部变量的区别
- 成员变量和局部变量的区别
- 成员变量和局部变量的区别
- 成员变量和局部变量的区别
- 成员变量与局部变量的区别
- 成员变量和局部变量的区别
- 成员变量和局部变量的区别
- 成员变量和局部变量的区别?
- EasyPR车牌识别系统之(一):EasyPR 1.5beta
- json_encode与json_decode
- 单词2016.8.8
- JSP使用include指令出现“Duplicate local variable basePath”错误提示
- 【记录】重启NFS错误
- 02 成员变量VS局部变量 区别
- 勾股定理一日一证连载65
- python爬虫之csdn刷博客访问量
- HDU 3641 Treasure Hunting(阶乘素因子分解+二分)
- c#控件-datagridview
- 2016.8.6 学习总结
- Manacher算法详解
- 理解HTTP session原理及应用
- Codeforces #366(Div.2)A.Hulk【水题】