实例变量,局部变量,全局变量,静态全局变量

Posted guotao123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实例变量,局部变量,全局变量,静态全局变量相关的知识,希望对你有一定的参考价值。

摘抄网上的

 

定义:

实例变量:定义在一个类的各个内部方法之外,是内部方法共享的变量

局部变量:定义在方法之中的变量,但是这个方法使用的变量,其他方法和类没法使用。

全局变量:也称为外部变量,它是在函数外部定义的变量,一个程序的所有的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,字符型变量赋空字符。

以上是关于实例变量,局部变量,全局变量,静态全局变量的主要内容,如果未能解决你的问题,请参考以下文章

python 中关于 类变量, 实例变量, 静态方法,类方法,全局变量,局部变量的理解

IOS总结 静变量static全局变量extern局部变量实例变量

全局变量 静态变量 局部变量 啥时候创建 啥时候撤销

局部变量 静态局部变量 全局变量与静态局部变量

VC中public定义的变量与全局变量的区别??

C++中的全局变量普通局部变量和静态局部变量的区别