gpt4 book ai didi

java - 静态方法 vs 非静态方法 java 更好的理解

转载 作者:行者123 更新时间:2023-12-02 06:27:43 25 4
gpt4 key购买 nike

我还是不能完全理解这个静态和非静态。

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com