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;}
标签:7.16,变量,局部变量,Tree,方法,public,name From: https://www.cnblogs.com/dmx-03/p/17558327.html