实例变量,局部变量,全局变量,静态全局变量。
定义:
实例变量:定义在一个类的各个内部方法之外,是内部方法共享的变量
局部变量:定义在方法之中的变量,但是这个方法使用的变量,其他方法和类没法使用。
全局变量:也称为外部变量,它是在函数外部定义的变量,一个程序的所有的java源文件都可用。
静态全局变量:一程序由多个java源文件组成时,可以用静态全局变量指定某一个java源文件,仅这个java文件可用这变量。
1 int a,b; //外部变量 2 static int c;//静态外部变量 3 4 public class Sample 5 { 6 7 private int a=1; //实例变量 8 9 public void b() 10 { 11 int a=2; //局部变量 12 System.out.println("局部变量:a="+a); 13 System.out.println("实例变量:a="+this.a); 14 } 15 16 public void d() 17 { 18 System.out.println("局部变量:a="+a);//实例变量的a=1能套用在这里,局部a=2不能 19 System.out.println("实例变量:a="+this.a); 20 } 21 22 } 23 24 public class Sample 25 { 26 27 private int a=1; //实例变量 28 29 public void b() 30 { 31 int a=2; //局部变量 32 System.out.println("局部变量:a="+a); 33 System.out.println("实例变量:a="+this.a); 34 } 35 36 public void d() 37 { 38 System.out.println("局部变量:a="+a);//实例变量的a=1能套用在这里,局部a=2不能 39 System.out.println("实例变量:a="+this.a); 40 } 41 }
特点:
局部变量:
1. 局部变量要先赋值,再进行运算,而实例变量均已经赋初值。(这是局部变量和实例变量的一大区别)
2. 局部变量不允许范围内定义两个同名变量。实例变量的作用域在本类中完全有效,当被其他的类调用的时候也可能有效。
3. 实例变量和局部变量允许命名冲突。
实例变量:
1. 实例变量的对象赋值为null,可以 public int形式,系统自动赋值,而局部不行必须要以a=3赋值才开始运算。
局部变量:
1,使用全局变量会占用更多的内存(因为其生命期长),不过在计算机配置很高的今天,不成为什么问题,除非使用的是巨大对象的全局变量,调用全局变量的机会变多,所以会略占内存。
2,当全局变量与局部变量重名的时候,起作用的是局部变量,全局变量被屏蔽掉。
3,当一个java文件要引用另一个java里定义的一个全局变量时就要用extern
例如 A的java定义一个全局变量int a; //定义一个全局变量a
B的java想引用要extern int a; //声明一个全局变量a B在开头声明引用,下面的代码就能用此变量了。
静态局部变量:
1. 静态局部变量始终存在着,也就是说它的生存期为整个源程序
2. 允许对构造类静态局部量赋初值。若未赋以初值,系统自动赋值,数值型变量自动赋初值0,字符型变量赋空字符。