A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Java基础之成员变量与局部变量


变量根据定义位置的不同,我们给变量起了不同的名字。如下图所示:
局部变量:定义在函数(方法)中的那些变量。局部变量只在定义它的方法(函数)中有效。
成员变量:定义在类的成员位置上的变量。成员变量在整个类中都有效。(全局变量是成员变量的俗称)。
成员变量又分为 实例(对象)变量 和 类变量(static静态变量)。(先了解,后面会详细讲解)
class Car{
String color;//color为实例变量
static Stringname; //只要有关键字static修饰,name为类变量
}
不管是成员变量还是局部变量它们都符合java基础学习的变量的定义规则。
1) 数据类型 变量名 ;
2) 数据类型 变量名=值;
思考下面代码的结果是什么?
注意:在类中和该类的一个函数中,同时存在一个相同类型相同名称的变量,在函数被执行时,函数中优先使用定义在函数中的变量(局部变量)。
优先级:先使用内部的,再使用外部的(先去内部找,有就使用。没有则再去外部找)就近原则。
局部变量和成员变量的区别:
1、从定义上来讲:
局部变量定义在函数中。
成员变量定义在类中。
2、从内存存储上来讲:
局部变量随着函数的运行会在栈内存中出现,局部变量存储在栈内存中。
成员变量会随着对象的出现在堆中存在,成员变量存储在堆内存中。
3、从初始值上来讲:
局部变量在定义时需要指定初始值(局部变量没有默认值),只有初始化之后才能使用。
成员变量可以不用初始化,有默认值。
4、从存活时间上来讲(生命周期)
局部变量是随着函数的进栈在函数所属的栈内存中存在,随着函数的出栈就消失。
成员变量是随着对象的出现在堆中出现。随着对象的消失而消失。


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马