回 帖 发 新 帖 刷新版面

主题:[讨论]类变量和实例变量的区别

[size=3]哪位大虾能简要说明一下类变量和实例变量的区别
最好通俗易懂一点[/size]

回复列表 (共5个回复)

沙发


1.声明时的差别
当一个类声明成员变量时,没有使用关键字static声明的为实例成员变量,使用static声明的为类成员变量
2.存储结构的差别
当创建一个对象时,系统会为每一个对象的每一个实例成员变量分配一个存储单元,
使属于不同对象的实例成员变量具有不同的值,而为每一个类成员变量只分配一个存储单元,使所有对象公用同一个类成员变量。
3.引用方式的差别
实例成员变量属于对象,必须通过对象访问,类成员变量属于类,既可以通过类,也可以通过对象访问。

板凳

补充一下,在静态的方法里不能直接访问一个类的一般成员变量,只有通过创建该类的对象进行访问,而可以直接访问该类的静态成员变量,即该类的类变量

3 楼

谢谢
好象明白了一点

能不能给个稍微简单的例子给我

4 楼

我就简单点写了,比如:
class A
{ int a;
  static int b;
  A()
  { a=123;
    b=456;
  }
}

class b
{ public static void main(String []args)
  { A x=new A();
      System.out.println("a="+x.a);
      System.out.println("b="+x.b);
      System.out.println("b="+A.b);
      //System.out.println("a="+A.a);这句就有问题  无法从静态上下文中引用非静态 变量 a
  }
}

5 楼


 结合例子 明白多了
谢谢

我来回复

您尚未登录,请登录后再回复。点此登录或注册