什么是成员变量和局部变量 java
本文介绍成员变量和局部变量的区别
1、成员变量是独立于方法外的变量,局部变量是类的方法中的变量
1)、成员变量:包括实例变量和类变量,用static修饰的是类变量,不用static修饰的是实例变量,所有类的成员变量可以通过this来引用。
2)、局部变量:包括形参,方法局部变量,代码块局部变量,存在于方法的参数列表和方法定义中以及代码块中。
2、成员变量可以被public,protect,private,static等修饰符修饰,而局部变量不能被控制修饰符及 static修饰;两者都可以定义成final型。
3、成员变量存储在堆,局部变量存储在栈。局部变量的作用域仅限于定义它的方法,在该方法的外部无法访问它。成员变量的作用域在整个类内部都是可见的,所有成员方法都可以使用它。如果访问权限允许,还可以在类的外部使用成员变量。
4、局部变量的生存周期与方法的执行期相同。当方法执行到定义局部变量的语句时,局部变量被创建;执行到它所在的作用域的最后一条语句时,局部变量被销毁。类的成员变量,如果是实例成员变量,它和对象的生存期相同。而静态成员变量的生存期是整个程序运行期。
5、成员变量在累加载或实例被创建时,系统自动分配内存空间,并在分配空间后自动为成员变量指定初始化值,初始化值为默认值,基本类型的默认值为0,复合类型的默认值为null。(被final修饰且没有static的必须显式赋值),局部变量在定义后必须经过显式初始化后才能使用,系统不会为局部变量执行初始化。
6、局部变量可以和成员变量 同名,且在使用时,局部变量具有更高的优先级,直接使用同名访问,访问的是局部变量,如需要访问成员变量可以用this.变量名访问
顶
在方法内部可以定义变量,被称为局部变量。局部变量的一般形式如下
[变量修饰符] 变量类型 变量名;
变量修饰符可以是final,表示这是常量。
变量类型可以是Java中任意合法的基本类型或复合类型。
变量名是用户自定义标识符,遵循标识符的一般规则。
可以在一行中定义多个局部变量,以逗号分隔。
定义变量时可以同时赋初值。
局部变量必须要先定义后使用。
例如,下面就是一些局部变量的定义:
final double PI = 3.1416;
int ix, iy;
final int MAIL = 0;
从形式上看,局部变量和类的成员变量十分相似,但在使用上它们的区别很大。
局部变量没有访问权限修饰符,不能用public、private和protected来修饰。这是因为它只能在定义它的方法内部使用。
局部变量不能用static修饰,没有"静态局部变量",这是Java和C/C++的一个细微差别。
系统不会自动为局部变量赋初值,但对于成员变量,系统会自动赋初值。基本类型的值为0,复合类型的值为null。
局部变量的作用域仅限于定义它的方法,在该方法的外部无法访问它。成员变量的作用域在整个类内部都是可见的,所有成员方法都可以使用它。如果访问权限允许,还可以在类的外部使用成员变量。
局部变量的生存周期与方法的执行期相同。当方法执行到定义局部变量的语句时,局部变量被创建;执行到它所在的作用域的最后一条语句时,局部变量被销毁。类的成员变量,如果是实例成员变量,它和对象
的生存期相同。而静态成员变量的生存期是整个程序运行期。
在同一个方法中,不允许有同名的局部变量。在不同的方法中,可以有同名的局部变量,它们互不干涉。
局部变量可以和成员变量同名,且在使用时,局部变量具有更高的优先级。
【例3.12】 局部变量使用示例。
//-----------文件名localVariable.java,程序编号3.22-----------------
public class localVariable{
public void method_1(){
int va = 0; //正确
public int pva; //错误,不能有访问权限
static int sa; //错误,不能是静态的
final int CONST = 10; //正确,可以是常量
double va =0.0; //错误,与前面的va同名
vb = 100.0; //错误,vb还未定义
double vb;
vb = 100.0; //正确,现在可以使用了
}
public void method_2(){
va = 0; //错误,method_1()中的变量va在此不可用
int CONST = 100; //正确,它与method_1()中的CONST不同
}
}
【例3.13】 局部变量与成员变量同名问题示例。
//-----------文件名localVSmember.java,程序编号3.23-----------------
public class localVSmember{
private int iVar = 100;
public void method_1(){
int iVar; //正确可以与成员变量同名
iVar = 200; //这里访问的是局部变量
his.iVar = 300; //这里访问的是成员变量
}
public void method_2(){
iVar = 400; //这里访问的是成员变量
}
}
在程序3.23中,同名的局部变量会屏蔽掉成员变量。为了访问被屏蔽的成员变量,需要使用一个前缀"this",它表示的是"本对象"。
成员变量:
①成员变量定义在类中,在整个类中都可以被访问。
②成员变量随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中。
③成员变量有默认初始化值。
局部变量:
①局部变量只定义在局部范围内,如:函数内,语句内等,只在所属的区域有效。
②局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放。
③局部变量没有默认初始化值
在使用变量时需要遵循的原则为:就近原则
首先在局部范围找,有就使用;接着在成员位置找。
可以查看CSDN,网址网页链接
成员变量与局部变量?
从语法形式上看:成员变量是属于类的,而局部变量是在方法中定义的变量或是方法的参数;成员变量可以被 public,private,static 等修饰符所修饰,而局部变量不能被访问控制修饰符及 static 所修饰;但是,成员变量和局部变量都能被 final 所修饰。从变量在内存中的存储方式来看:如果成员变量是使用static修饰...
java中什么是成员变量、局部变量???
成员变量是指定维度的成员变量,用于标识某个维度成员。由Services内部使用的值,以标识某个维度成员。MemberKeyColumn属性指定维度的成员变量。例如,1到12之间的某个数字可以是相应于年中的某个月的成员变量。二、局部变量 局部变量,也称内部变量,是指在一个函数内部或复合语句内部定义的变量。局部变量的...
什么是局部变量和成员变量?希望能举例,在编程里指明
局部变量指在程序中,只在特定过程或函数中可以访问的变量,是相对与全局变量而言的。在面向过程和面向对象编程语言中均有,是程序中最常见最常用的变量。成员变量:在类体的变量部分中定义的变量,也称为属性。几乎只出现在面向对象编程语言中。案例1:void main(){ int test = 0; \/\/局部变量 print...
成员变量和局部变量的区别
成员变量和局部变量的主要区别在于它们的作用域、生命周期以及与类的关联方式。成员变量是定义在类中,但在方法之外的变量。它们也被称为实例变量,因为它们与类的实例相关联。每个对象都有其独特的成员变量副本。这些变量在对象创建时被初始化,并在对象被销毁时消失。成员变量可以在类的任何方法中使用,...
什么是java的局部变量、成员变量和全局变量?
成员变量个是类内部;局部变量是定义其的方法体内部(或者方法体内部的某一程序块内——大括号,主要看定义的位置)。成员变量可以不显式初始化,它们可以由系统设定默认值;局部变量没有默认值,所以必须设定初始赋值。在内存中的位置也不一样。成员变量在所在类被实例化后,存在堆内存中;局部变量在...
java什么是成员变量和局部变量
1、成员变量是独立于方法外的变量,局部变量是类的方法中的变量 1)、成员变量:包括实例变量和类变量,用static修饰的是类变量,不用static修饰的是实例变量,所有类的成员变量可以通过this来引用。2)、局部变量:包括形参,方法局部变量,代码块局部变量,存在于方法的参数列表和方法定义中以及代码块中...
局部变量和成员变量的区别
成员变量和局部变量的区别:1.在类中的位置不同:成员变量在类中,方法外。局部变量在方法声明上,方法中。2.在内存中的位置不同:成员变量属于对象,进堆内存。局部变量属于方法,进栈内存。3.生命周期不同:成员变量随着对象的创建而存在,随着对象的消失而消失。局部变量随着方法的调用而存在,随着...
局部变量和成员变量的区别是什么?
局部变量,也称内部变量,是指在一个函数内部或复合语句内部定义的变量。局部变量的作用域是定义该变量的函数或定义该变量的复合语句。局部变量的生存期是从函数被调用的时刻算起到函数返回调用处的时刻结束。几乎程序中的所有函数都能使用全局变量,客观上全局变量就起到了在函数间传递数据的作用,甚至可以...
什么是成员变量和局部变量 java
③成员变量有默认初始化值。局部变量:①局部变量只定义在局部范围内,如:函数内,语句内等,只在所属的区域有效。②局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放。③局部变量没有默认初始化值 在使用变量时需要遵循的原则为:就近原则 首先在局部范围找,有就使用;接着在成员位置找。
JAVA中成员变量、局部变量、实例变量、类变量之间有什么关系?
java易混淆概念之类变量、实例变量、局部变量类变量、实例变量、局部变量类变量是类中独立于方法之外的变量,用static 修饰。实例变量也是类中独立于方法之外的变量,不过没有static修饰。局部变量是类的方法中的变量。Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多...
甘帘芙宝: 成员变量: ①成员变量定义在类中,在整个类中都可以被访问. ②成员变量随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中. ③成员变量有默认初始化值. 局部变量: ①局部变量只定义在局部范围内,如:函数内,语句内等,只在所属的区域有效. ②局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放. ③局部变量没有默认初始化值在使用变量时需要遵循的原则为:就近原则 首先在局部范围找,有就使用;接着在成员位置找. 可以查看CSDN,网址网页链接
方正县13733673180: 什么是java的局部变量、成员变量和全局变量? - ?
甘帘芙宝: 1、局部变量:在方法内定义的变量称为“局部变量”或“临时变量”,方法结束后局部变量占用的内存将被释放. 2、成员变量:在类体的变量部分中定义的变量,也称为字段. 3、全局变量:全局变量,又称“外部变量”,它不是属于哪个方法,作用域从定义的地址开始到源文件结束.4、局部变量和成员变量主要是他们作用域的区别:成员变量个是类内部;局部变量是定义其的方法体内部(或者方法体内部的某一程序块内——大括号,主要看定义的位置). 成员变量可以不显式初始化,它们可以由系统设定默认值;局部变量没有默认值,所以必须设定初始赋值. 在内存中的位置也不一样.成员变量在所在类被实例化后,存在堆内存中;局部变量在所在方法调用时,存在栈内存空间中.
方正县13733673180: 什么是java的局部变量,成员变量,全局变量 - ?
甘帘芙宝: 1、成员变量就是全局变量,写在类里,是类的属性,作用域是整个类2、局部变量,写在方法中或是方法的参数,起始位置和离他最近的右大括号决定
方正县13733673180: 解析一下java中成员变量包括什么,和局部变量又有什么关系? - ?
甘帘芙宝: 楼主是否对类的概念已经清楚了?如果是的话,就很好解释了. 成员变量是类的一个组成部分,和类的方法处于同一级别; 而局部变量是为了让方法/功能正常运行设立的一些临时存储单元,是专门服务于方法的. 从概念上说,两者是完全没有关系的, 但从应用上说,成员变量可能临时做为局部变量存在,而局部变量也可能依赖或者干脆引用成员变量完成工作. 打个不太合适的比方,你的主机是一个类,你的CPU、硬盘、内存等等必然和你主机同时存在,同时消失的就是成员变量. 而你机器里装的软件就是这个类所能提供出的方法,局部变量就是组成这些软件的文件.
方正县13733673180: Java中局部变量和成员变量的区别在哪? - ?
甘帘芙宝: 局部变量,存在于定义其的作用域内,如此例,则它的存活区域就是main函数内部,函数跳出后它就被销毁 成员变量,存在于定义其的对象存活区域内,如此例,则它的存活期由一个类A的对象实例化开始到销毁这个对象结束
方正县13733673180: JAVA中局部变量和成员变量的区别 - ?
甘帘芙宝: 根据定义变量位置的不同,可以将变量分为成员变量和局部变量 成员变量是在类范围内定义的变量 局部变量是在一个方法内定义的变量 成员变量可以分为: 实例属性 (不用static修饰):随着实例属性的存在而存在 类属性 (static修饰):随...
方正县13733673180: java里的各种变量都是什么? - ?
甘帘芙宝: 首先 全局变量 又叫成员变量 跟方法一样 是类的成员 ,跟方法是平级的 .还有种就是局部变量,定义在方法内部 ,包括方法的参数列表定义的那些变量,在方法执行完后就回收了.然后 静态变量又叫类变量,所有该类所有的实例公用的变量,可以直接用类名来获取值. 实例变量就是类的实例的变量,每个实例都有自己的值,用实例名来获取值.
方正县13733673180: JAVA的局部变量和成员变量的区别? - ?
甘帘芙宝: 局部变量没有默认值.另外,成员变量个是类内部;局部变量在所在方法调用时,所以必须设定初始赋值,主要看定义的位置);局部变量是定义其的方法体内部(或者方法体内部的某一程序块内——大括号,它们可以由系统设定默认值.成员变量在所在类被实例化后,存在堆内存中.还有,在内存中的位置也不一样,成员变量可以不显式初始化局部变量和成员变量主要是他们作用域的区别,存在栈内存空间中
方正县13733673180: java中成员变量和局部变量的区别 - ?
甘帘芙宝: java易混淆概念之类变量、实例变量、局部变量 类变量、实例变量、局部变量类变量是类中独立于方法之外的变量,用static 修饰.实例变量也是类中独立于方法之外的变量,不过没有static修饰.局部变量是类的方法中的变量.看下面的伪代码...
方正县13733673180: java中,局部变量,成员变量,类变量,怎么区分呢?有什么差别呢…谢谢了 - ?
甘帘芙宝: 局部变量和成员变量主要看作用域,而作用域就是看花括号.作用于整个类的,就是只被类的花括号包含的,就是全局变量(成员变量).相对而言被方法或者其他域包含的就是局部变量.而类变量就是被static修饰的变量,也叫做静态变量.