静态对象引用和非静态对象引用之间有什么区别?
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中这些静态和非静态引用变量之间的区别。
答案 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总是返回与其实例相同类型的对象。