静态对象引用和非静态对象引用

时间:2015-07-06 06:30:59

标签: java static

静态对象引用和非静态对象引用之间有什么区别?

class example{
  int r =10;
  void output(){
    System.out.println("The value is "+r++);
  }
}
public class Test{
static example q,w,e;

  public static void main(String[] args) {
  q = new example();    
  q.output();
  w = new example();
  w.output();
  e = new example();
  e.output();


  example r,t,y;
  r = new example();
  r.output();

  t = new example();
  t.output();

  y = new example();
  y.output();
 }
}

在运行此代码时,此代码的输出是相同的。因此,问题出现了在代码中声明静态引用变量的用法以及java中这些静态和非静态引用变量之间的区别。

4 个答案:

答案 0 :(得分:0)

静态变量可以从同一个类的其他方法访问,甚至可以从其他类(如果它是公共的)访问。代码中的非静态变量是局部变量,只能在声明它们的main方法中访问它们。

输出是相同的,因为每次为output类的差异实例调用example方法。在其中每个r初始化为10,因此r++会返回10

答案 1 :(得分:0)

此对象与类级别绑定。它将在您的类加载时创建示例q,w,e。然后在运行方法时将对象分配给p,q,w。然后,您可以使用类引用访问该对象。

example.q or example.getq() //need to create getq static method

不创建Test对象。

答案 2 :(得分:0)

静态变量在类的所有实例中共享,并且始终保持不变,非静态变量特定于类的单个实例。

答案 3 :(得分:0)

您正在将一个类的对象创建到另一个类中,以便您创建的对象类型不会影响实例的值。 JVM总是返回与其实例相同类型的对象。