gpt4 book ai didi

java - 为什么在java的主类中可以访问另一个类的非静态变量?

转载 作者:行者123 更新时间:2023-12-02 06:24:56 26 4
gpt4 key购买 nike

在这里,我尝试访问 main 中 Test 类的非静态变量“a”。这是
为什么可以访问?

  class Test{  
public static void m1(){}
public void m2(){}
public int a=20;
public static int b=30;

public static void fun(){
System.out.println(a); //it gives an error because variable a is non-static
System.out.println(b);
}
}

class Test1{

public static void main(String args[]){
Test s=new Test();
s.b=10;
s.a=20;
System.out.println(s.a); /*why this statement not giving an error even variable'a'is
non-static, we are accessing it in static main() method */
}
}

最佳答案

您不能在静态方法中使用对实例变量的非限定引用,因为它们隐式引用了不存在的this实例。当您指定 s.a 时,您特指的是对象 sa 字段,而不是某些不存在的 this,以便 Java 找到该字段并允许您访问它。

关于java - 为什么在java的主类中可以访问另一个类的非静态变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20628155/

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