全局变量:也叫成员变量,是指在类中定义的变量;它在整个类中都有效
全局变量又可分为:类变量和实例变量
1.类变量:又叫静态变量 用static修饰 它可以直接用类名调用 也可以用对象调用 而且所有对象的同一个类变量都是共享同
一块内存空间的
2.实例变量:不用static修饰 它只能通过对象调用 而且所有对象的同一个实例变量是共享不同的内存空间的
局部变量:是指那些在方法体中定义的变量以及方法的参数 它只在定义它的方法内有效
注意:如果某个方法中的局部变量的名字与全局变量的名字相同 则该全局变量在这个方法中暂时失效
public class Test{
int a=0; //全局变量
public static void main(String[] args){
int b =0;//局部变量
}
}
先看下面两段程序: 程序一:
程序二:
---------------------------------------------------------------------------------------------------------- 第一个程序很正常,编译时不会出错。第二个程序编译时会提示如下错误:
之所以会出现这样的错误是因为:成员变量有默认值,(被final修饰且没有static的必须显式赋值),局部变量不会自动赋值 =========================================================== 类体分为两部分。变量定义部分所定义的变量被称为类的成员变量,在方法体中定义的变量和方法的参数都被称为局部变量 java中成员变量和局部变量的区别1.成员变量可以被public,protect,private,static等修饰符修饰,而局部变量不能被控制修饰符及static修饰;两者都可以定义成final型 2.成员变量存储在堆,局部变量存储在栈 3.存在时间不同 4.成员变量有默认值,(被final修饰且没有static的必须显式赋值),局部变量不会自动赋值 顾名思意了
成员变量:作为类的成员而存在,直接存在于类中。 局部变量:作为方法或语句块的成员而存在,存在于方法的参数列表和方法定义中。 局部变量在使用前必须被程序员主动的初始化,和此形成对比,系统中的成员变量则会被系统提供一个默认的初始值。所以在语法上,类的成员变量能够定义后直接使用,而局部变量在定义后先要赋初值,然后才能使用。
所有类的成员变量可以通过this来引用。成员变量又分成俩中类型:实例变量和静态变量。静态变量在定义时要使用static关键字 |