Java中的成员变量和局部变量

来源:互联网 发布:品茗安全软件 编辑:程序博客网 时间:2024/05/16 14:55

在Java中的所有变量有2种:

1、成员变量:

i. 实例Field(不以static修饰)

ii. 类Field(以static修饰)

2、局部变量:

i. 形参(方法签名中定义的变量)

ii. 方法局部变量(在方法内定义)

iii. 代码块局部变量(在代码块内定义)


成员变量无须初始化,只要定义了类Field和实例Field,系统就会帮我们默认初始化。类Field的作用域  >  实例Field作用域。


局部变量除了形参之外必须显式初始化(必须先给方法局部变量和代码块局部变量指定初始值)。

 

成员变量初始化和内存中的运行机制:

当系统加载类或创建类的实例时,系统会自动为成员变量分配内存空间,并在分配内存空间后,自动为成员变量指定初始值。

例:Person   p1 = new Person();

Person  p2 = new Person();

在第一次使用Person时,系统会先加载这个Person类,并初始化,但是并不会创建p1。在这个过程之后才会在栈中创建p1 、p2。


 

局部变量和C语言中的局部变量的性质非常相似。




若有以下3种情况应考虑用成员变量:

1、描述某个类或对象的固有信息。

2、要变量保存类或实例运行时的状态信息。

3、某个信息要在类或多个方法间共享。


0 0