class Test {
Test obj;
public static void main(String[] args) {
obj = new Test();
}
}
我知道实例变量和非静态方法无法在静态方法中访问,因为静态方法不知道堆上的任何内容。
我想问一下 main 是否是一个静态方法我如何访问实例变量“obj”。
最佳答案
为什么在静态 main
中访问实例变量是不可能的:您希望访问哪个实例的实例变量?
一个可能的误解是 Java 在应用程序启动时创建了主类的实例——这是不正确的。 Java 不创建这样的实例,您从静态方法开始,创建哪些类的哪些实例取决于您。
解决方法:
将
测试对象
声明为static
static Test obj; public static void main(String[] args) { obj = new Test(); }
将
Test obj
声明为main内部的局部变量public static void main(String[] args) { Test obj = new Test(); }
在您的
main
中创建一个Test
的实例,然后您将能够访问它的实例变量static Test obj; public static void main(String[] args) { obj = new Test(); obj.myInstanceVariable = ... // access of instance variable }
关于java - 在 main() 方法中访问实例变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35044044/