java什么是成员变量和局部变量

作者&投稿:昌仁 (若有异议请与网页底部的电邮联系)
什么是java的局部变量,成员变量,全局变量?~

public class Test {
private String name;//成员变量,也是全局变量

public void changeName() {
String n = "tomoya";//n就是局部变量
name = n;
}
}

总的来说,定义在类里的,也就是name那个位置,就是成员变量,在JAVA里全局变量和成员变量是一个意思。
定义在方法里或域里就叫做局部变量,所谓域就是{}里面,比如
public void show() {
int b = 2;//局部变量
if(true) {
int a = 1;//局部变量
}
//这个位置访问a,无效
}
//这个位置,或其他方法里访问b,无效


他的作用范围:
局部变量离开了他的域{}就无效
成员变量的范围依赖他的访问修饰符,什么是访问修饰符呢?
public
protected
private
默认,你定义时不给他访问修饰符就是默认
至于他们的范围,请自行查资料,不动脑筋是不行滴
这种东西确实如1L所说的,再烂的书也会有介绍

在方法内部可以定义变量,被称为局部变量。局部变量的一般形式如下
[变量修饰符] 变量类型 变量名;
变量修饰符可以是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",它表示的是"本对象"。

本文介绍成员变量和局部变量的区别

1、成员变量是独立于方法外的变量,局部变量是类的方法中的变量
1)、成员变量:包括实例变量和类变量,用static修饰的是类变量,不用static修饰的是实例变量,所有类的成员变量可以通过this来引用。
2)、局部变量:包括形参,方法局部变量,代码块局部变量,存在于方法的参数列表和方法定义中以及代码块中。
2、成员变量可以被public,protect,private,static等修饰符修饰,而局部变量不能被控制修饰符及 static修饰;两者都可以定义成final型。
3、成员变量存储在堆,局部变量存储在栈。局部变量的作用域仅限于定义它的方法,在该方法的外部无法访问它。成员变量的作用域在整个类内部都是可见的,所有成员方法都可以使用它。如果访问权限允许,还可以在类的外部使用成员变量。
4、局部变量的生存周期与方法的执行期相同。当方法执行到定义局部变量的语句时,局部变量被创建;执行到它所在的作用域的最后一条语句时,局部变量被销毁。类的成员变量,如果是实例成员变量,它和对象的生存期相同。而静态成员变量的生存期是整个程序运行期。
5、成员变量在累加载或实例被创建时,系统自动分配内存空间,并在分配空间后自动为成员变量指定初始化值,初始化值为默认值,基本类型的默认值为0,复合类型的默认值为null。(被final修饰且没有static的必须显式赋值),局部变量在定义后必须经过显式初始化后才能使用,系统不会为局部变量执行初始化。
6、局部变量可以和成员变量 同名,且在使用时,局部变量具有更高的优先级,直接使用同名访问,访问的是局部变量,如需要访问成员变量可以用this.变量名访问



public class Userback extends HttpServlet{
public static String userName;//这个是成员变量,他是class中的变量
public AddFunction(){
String name = new String();//这个是局部变量,它只存在一java的函数中,函数结束,这个变量就没有了

}
}

属于类的是全局变量,属于类的对象的是成员变量,属于方法里的是局部变量


在Java程序中定义的类有两种成员是什么
函数成员和数据成员。函数成员就是哪些方法定义,包括构造函数。数据成员就是前面定义的变量

java中为什么要通过方法的返回值,来调用成员变量。这样做的优点是...
这样做的主要优点是:体现面向对象的封装性!因为方法是经过程序员严格设置的处理数据的一种方式,用方法来操作成员变量,使对成员变量的操作更加安全!当方法中的代码多,某一对象需要多次调用这一方法时,可以达到代码重复利用的优点!方便对代码进行维护,如果要修改数据处理的流程,那只需修改方法即可!...

java中的this.a=a1;和a=a1;有什么区别吗?其中a是类的成员变量,a1是类中...
this.a是指这个对象的成员变量a,若a是方法内的变量则this.a与a可区分。

家中人员变动是什么意思
家庭成员变动,是指家庭内部人员的数量、身份或关系状态发生变化。这些变化可能源于婚姻、离婚、死亡、迁移等各种原因,它们对家庭构成深刻的冲击,要求家庭成员之间进行调整和适应。变动后,家庭需要重新评估经济状况,如调整预算、分配工作职责,以保持家庭生活的稳定和和谐。无论是亲人离世带来的哀痛,还是新...

c语音中成员变量是什么
成员变量指的是在结构体重有两类,一时成员变量,2是成员函数。顾名思义。成员变量就是变量,成员函数是函数,只是他们在一个结构体重,如果实在C++中,则是在一个类中

java中的空间分配问题:在java中,什么时候给成员变量、方法中局部变量...
java 中分基本数据类型和引用数据类型,基本数据类型,声明它就在栈中分配了空间,当运行时,还会附上初始值,应用数据类型:在声明它的时候也会在栈中分配内存空间,用来存储内存地址,如果没有赋值该地址指向一个空值(null),如果赋值,则该地址指向存储在堆中分配的地址,如果是new 则在堆中分配一个...

c语言中成员变量是什么?
C语言中的成员变量是指结构体、联合体、枚举中的变量。

java中private是什么意思?
Java中的private是一种访问修饰符,用于限制对类的成员变量和方法的访问。在使用private修饰符时,只有在该类中才能访问该成员变量或方法,而不能在类外部直接访问。这样可以保护该成员变量或方法,使它们不受到不想要的外部访问干扰,增加程序的安全性和稳定性。Java的private修饰符主要应用于面向对象程序...

java中定义成员变量时:public Point origin;其中的Point是什么啊?
是个类,origin是类成员变量 望采纳

什么是类的成员
就是类里面的所有东西,包括成员变量和成员函数,类是对现实生活中一类具有共同特征的事物的抽象。如果一个程序里提供的类型与应用中的概念有直接的对应,这个程序就会更容易理解,也更容易修改。一组经过很好选择的用户定义的类会使程序更简洁。此外,它还能使各种形式的代码分析更容易进行。特别地,它还会...

长沙市14784989577: 什么是成员变量和局部变量 java -
鄣俩醋酸: 成员变量: ①成员变量定义在类中,在整个类中都可以被访问. ②成员变量随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中. ③成员变量有默认初始化值. 局部变量: ①局部变量只定义在局部范围内,如:函数内,语句内等,只在所属的区域有效. ②局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放. ③局部变量没有默认初始化值在使用变量时需要遵循的原则为:就近原则 首先在局部范围找,有就使用;接着在成员位置找. 可以查看CSDN,网址网页链接

长沙市14784989577: 什么是java的局部变量、成员变量和全局变量? -
鄣俩醋酸: 1、局部变量:在方法内定义的变量称为“局部变量”或“临时变量”,方法结束后局部变量占用的内存将被释放. 2、成员变量:在类体的变量部分中定义的变量,也称为字段. 3、全局变量:全局变量,又称“外部变量”,它不是属于哪个方法,作用域从定义的地址开始到源文件结束.4、局部变量和成员变量主要是他们作用域的区别:成员变量个是类内部;局部变量是定义其的方法体内部(或者方法体内部的某一程序块内——大括号,主要看定义的位置). 成员变量可以不显式初始化,它们可以由系统设定默认值;局部变量没有默认值,所以必须设定初始赋值. 在内存中的位置也不一样.成员变量在所在类被实例化后,存在堆内存中;局部变量在所在方法调用时,存在栈内存空间中.

长沙市14784989577: 什么是java的局部变量,成员变量,全局变量 -
鄣俩醋酸: 1、成员变量就是全局变量,写在类里,是类的属性,作用域是整个类2、局部变量,写在方法中或是方法的参数,起始位置和离他最近的右大括号决定

长沙市14784989577: 解析一下java中成员变量包括什么,和局部变量又有什么关系? -
鄣俩醋酸: 楼主是否对类的概念已经清楚了?如果是的话,就很好解释了. 成员变量是类的一个组成部分,和类的方法处于同一级别; 而局部变量是为了让方法/功能正常运行设立的一些临时存储单元,是专门服务于方法的. 从概念上说,两者是完全没有关系的, 但从应用上说,成员变量可能临时做为局部变量存在,而局部变量也可能依赖或者干脆引用成员变量完成工作. 打个不太合适的比方,你的主机是一个类,你的CPU、硬盘、内存等等必然和你主机同时存在,同时消失的就是成员变量. 而你机器里装的软件就是这个类所能提供出的方法,局部变量就是组成这些软件的文件.

长沙市14784989577: Java中局部变量和成员变量的区别在哪? -
鄣俩醋酸: 局部变量,存在于定义其的作用域内,如此例,则它的存活区域就是main函数内部,函数跳出后它就被销毁 成员变量,存在于定义其的对象存活区域内,如此例,则它的存活期由一个类A的对象实例化开始到销毁这个对象结束

长沙市14784989577: java中局部变量和成员变量主要是他们作用域的区别 -
鄣俩醋酸: 成员变量个是类内部;局部变量是定义其的方法体内部(或者方法体内部的某一程序块内——大括号,主要看定义的位置).另外,成员变量可以不显式初始化,它们可以由系统设定默认值;局部变量没有默认值,所以必须设定初始赋值.还有,在内存中的位置也不一样.成员变量在所在类被实例化后,存在堆内存中;局部变量在所在方法调用时,存在栈内存空间中.

长沙市14784989577: java里的各种变量都是什么? -
鄣俩醋酸: 首先 全局变量 又叫成员变量 跟方法一样 是类的成员 ,跟方法是平级的 .还有种就是局部变量,定义在方法内部 ,包括方法的参数列表定义的那些变量,在方法执行完后就回收了.然后 静态变量又叫类变量,所有该类所有的实例公用的变量,可以直接用类名来获取值. 实例变量就是类的实例的变量,每个实例都有自己的值,用实例名来获取值.

长沙市14784989577: JAVA中局部变量和成员变量的区别 -
鄣俩醋酸: 根据定义变量位置的不同,可以将变量分为成员变量和局部变量 成员变量是在类范围内定义的变量 局部变量是在一个方法内定义的变量 成员变量可以分为: 实例属性 (不用static修饰):随着实例属性的存在而存在 类属性 (static修饰):随...

长沙市14784989577: JAVA的局部变量和成员变量的区别是什么? -
鄣俩醋酸: 在方法内部可以定义变量,被称为局部变量.局部变量的一般形式如下 [变量修饰符] 变量类型 变量名; 变量修饰符可以是final,表示这是常量.变量类型可以是Java中任意合法的基本类型或复合类型.变量名是用户自定义标识符,遵循标识符...

长沙市14784989577: java中,局部变量,成员变量,类变量,怎么区分呢?有什么差别呢…谢谢了 -
鄣俩醋酸: 局部变量和成员变量主要看作用域,而作用域就是看花括号.作用于整个类的,就是只被类的花括号包含的,就是全局变量(成员变量).相对而言被方法或者其他域包含的就是局部变量.而类变量就是被static修饰的变量,也叫做静态变量.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网