您的位置:首页 > 编程语言 > Java开发

JAVA中的变量----实例变量和类变量

2016-06-13 21:57 190 查看
java中的变量分为2种:一种是成员变量,一种是局部变量。

成员变量是在类内定义的变量,成员变量有分为两种,

如果是用static修饰的就是静态变量或者叫类变量;没有被static修饰就是非静态变量或者叫实例变量。

局部变量包括3种:

方法的形参,通过方法的调用进行赋值,并随着方法的结束而结束;

方法内的局部变量,必须在方法内对其进行显式的初始化,随着方法的结束而结束;

代码块内的局部变量,随着的初始化完成后开始生效,随着代码块的结束而结束。

实例变量和类变量的引用次序

实例变量的引用遵循前向引用,类变量也遵循这样的前向引用。如下面的例子是错误的引用。

public class test {
int a=b;
int b=3;

static int c=d;
static int d=0;

}


但是实例变量引用类变量的时候可以不遵守前向引用原则,如下面的例子是正确的。

public class test {
int a=d;
static int d=0;
}


实例变量和类变量的属性

类变量只需要一次开辟空间,但是实例变量每创建一个实例就是为实例分配一个内存空间,这就决定了实例变量属于对象,类变量属于类。修改一个对象的实例变量的值不会影响另一个对象的实例变量的值,但是修改了类变量的值就会影响所有的对象的这个类变量的值。如下面的例子所示。

public class student {
int age;
static int sex;
}

public class test {
public static void main(String[] args) {
student.sex=99;

student s1=new student();
s1.age=11;
System.out.println(s1.age+"\t"+s1.sex);
s1.sex=88;

student s2=new student();
s2.age=100;
System.out.println(s2.age+"\t"+s2.sex);
}
}


上面的例子还表明了,类变量可以直接通过类的进行赋值,成实例变量必须通过对象进行赋值;此外,修改了一个对象中的类变量的值,另一个对象在调用这个类变量的时候会按照修改后的值进行显示。

下图展示了类变量和实例变量在内存中的状态。(盗图)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 实例