gpt4 book ai didi

java - 为什么可以在main中创建非静态变量,但不能在main之外创建非静态变量。 java

转载 作者:行者123 更新时间:2023-12-01 12:04:48 27 4
gpt4 key购买 nike

为什么这样做时,IDE 说您需要将 str1str2 更改为 static:

public class Test {

String str1;
String str2;

public static void main(String[] args){


str1 = "A";
str2 = "B";
}
}

但这很好:

public class Test {



public static void main(String[] args){

String str1;
String str2;
str1 = "A";
str2 = "B";
}
}

为什么在静态方法内部声明非静态变量可以,但在静态方法外部则不行?

最佳答案

类中的静态方法仅引用类的静态成员。 “main”方法与普通静态方法相同,并遵循相同的规则。

对于类的非静态成员,必须先初始化类的实例,然后才能访问该成员。

public class Test {

String str1;
String str2;

public String getStr1(){
return str1;
}

public String setStr1(){
this.str1 = str1;
}

public static void main(String[] args){
//create an instance of the class firstly.
Test test = new Test();

// read and write the str1
System.out.println(test.getStr1());
test.setStr1("A")
System.out.println(test.getStr1());
}
}

关于java - 为什么可以在main中创建非静态变量,但不能在main之外创建非静态变量。 java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27699899/

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