我还是不能完全理解这个静态和非静态。
public static void main(String args[]){
staticClass.setString("hey there");
System.out.println(staticClass.getString2());
//expecting to be blank
NonStaticCalling nonStaticCalling = new NonStaticCalling();
}
static String aw = "";
public static void setString(String a){
aw =a;
}
public String getString(){
return aw;
}
public static String getString2(){
return aw;
}
public class NonStaticCalling {
staticClass staticClass = new staticClass();
public NonStaticCalling(){
staticClass.getString();
System.out.println(staticClass.getString());
}
}
如果我理解正确的话。我声明一个新对象非静态调用。所以我假设该类的输出值为“”(空白)
有人能给我一个更好的例子吗?谢谢
最佳答案
当设置静态变量时,该变量对于该类的所有实例都是相同的。静态变量也称为“类变量”。我认为您的困惑实际上更多地是关于变量而不是方法。以这个没有静态变量的例子为例。 “name”对于“myName”类的所有实例都是相同的(抱歉应该将其设为大写,因为它是一个类名)。
public class myName {
public static String name;
public void setName(String newName) {
name = newName;
}
public String getName() {
return name;
}
public static void main(Strings args[]) {
myName first = new myName();
myName second = new myName();
first.setName("hello");
System.out.println(second.getName()); //prints hello
}
}
关于java - 静态方法 vs 非静态方法 java 更好的理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20365060/