java中成员变量和全局变量的区别_成员变量与全局变量的区别

全局变量:也叫成员变量,是指在类中定义的变量;它在整个类中都有效

全局变量又可分为:类变量和实例变量

1.类变量:又叫静态变量  用static修饰  它可以直接用类名调用  也可以用对象调用   而且所有对象的同一个类变量都是共享同

一块内存空间的

2.实例变量:不用static修饰  它只能通过对象调用  而且所有对象的同一个实例变量是共享不同的内存空间的

局部变量:是指那些在方法体中定义的变量以及方法的参数   它只在定义它的方法内有效

注意:如果某个方法中的局部变量的名字与全局变量的名字相同  则该全局变量在这个方法中暂时失效

public class Test{

int a=0; //全局变量

public static void main(String[] args){

int b =0;//局部变量

}

}

先看下面两段程序:

程序一:

public class Variable

{

int i;

void test()

{

int j=8;

if(j==i)

System.out.println("相等");

else

System.out.println("不相等");

}

public static void main(String[] args)

{

Variable v=new Variable();

v.test();

}

}

程序二:

public class Variable

{

void test()

{

int i;

int j=8;

if(j==i)

System.out.println("相等");

else

System.out.println("不相等");

}

public static void main(String[] args)

{

Variable v=new Variable();

v.test();

}

}

----------------------------------------------------------------------------------------------------------

第一个程序很正常,编译时不会出错。第二个程序编译时会提示如下错误:

D:\Program\java\test>javac Variable.java

Variable.java:9: 可能尚未初始化变量 i

if(j==i)

^

1 错误

之所以会出现这样的错误是因为:成员变量有默认值,(被final修饰且没有static的必须显式赋值),局部变量不会自动赋值

===========================================================

类体分为两部分。变量定义部分所定义的变量被称为类的成员变量,在方法体中定义的变量和方法的参数都被称为局部变量

java中成员变量和局部变量的区别

1.成员变量可以被public,protect,private,static等修饰符修饰,而局部变量不能被控制修饰符及static修饰;两者都可以定义成final型

2.成员变量存储在堆,局部变量存储在栈

3.存在时间不同

4.成员变量有默认值,(被final修饰且没有static的必须显式赋值),局部变量不会自动赋值

-------------------------------------------------------------------------------------------------------------

顾名思意了

什么是局部,方法内部,块内部都是局部,执行指令退出那个局部,局部变量自动清除

比如方法中,不用说

块中

{

int i=0; //这是一个局部变量,它的作用范围就在其中

}

成员变量就会涉及到谁的成员,类的成员?实例的成员?

class A{

int i=0; //实例的成员

static j=1;//类的成员

}

static 的差别,是否依赖于实例而存在

----------------------------------------------------------------------------------------------------------

成员变量:作为类的成员而存在,直接存在于类中。

局部变量:作为方法或语句块的成员而存在,存在于方法的参数列表和方法定义中。

局部变量在使用前必须被程序员主动的初始化,和此形成对比,系统中的成员变量则会被系统提供一个默认的初始值。所以在语法上,类的成员变量能够定义后直接使用,而局部变量在定义后先要赋初值,然后才能使用。

所有类的成员变量可以通过this来引用。成员变量又分成俩中类型:实例变量和静态变量。静态变量在定义时要使用static关键字

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值