7.16

发布时间 2023-07-16 18:44:06作者: new菜鸟

java中所有的变量分为:(1)成员变量和(2)局部变量。

(1)成员变量包括:

a) 实例变量

b)类变量(以static修饰)

区别:

访问:实例变量是通过定义类的对象来访问。类变量可以通过类或类对象来访问。

生存周期 :实例变量与类对象生存周期共存亡。类变量与类共存亡。

变量修改:多个对象指向不同的实例变量堆内存,即实例变量的值只与对象相关。多个对象指向同一个类变量的堆内存,即类变量的值与类对象无关,为最后一次修改的值。

例:

calss Tree

{

public String name;

public static int age;

}

访问:

Tree a1 = new Tree();

Tree a2 = new Tree();

a1.name = "苹果树";

a2.name = "橘子树";

a1. age = 20;

a2.age = 60;

其中,name的值为:a1.name = "苹果树",a2.name = "橘子树"。

age= 60。

(2)局部变量

a)形参(函数形参)

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

c)代码块局部变量(在代码快内定义)

各种局部变量参数的生存周期不同。尽量使用局部作用范围小的变量,这样可以使其在程序内存中停留的时间变短,提高程序运行速度。

Java允许局部变量和成员变量同名,如果方法里的局部变量和成员名相同,局部变量会覆盖成员变量,若要在这个方法里使用成员变量,可使用this来调用成员变量。

方法局部变量的示例

方法的自动变量在入口时创建方法,并且仅在该方法的执行期间存在。只有在执行该方法时才能访问自动变量。(此规则的一个例外是内部类)。

自动变量(方法局部变量)不由系统初始化。自动变量必须在使用前显式初始化。例如,这个方法不会编译:

public class Main{ public int wrong() {

int i; return i+5;

}

}

 

类变量(静态变量)

这里只是一个类变量的一个副本,它存在,而不管该类的实例数。 静态变量在类加载时初始化; 这里,当Main类被加载时,y将被设置为30。

public class Main{ static int y = 30;}