如何把图中的黄色东东去掉 我觉得我写的也没啥毛病啊


class Code{
    // 记住: 静态只能访问静态!
    public  int x=10;//非静态变量
    public  static  int y=20;//静态变量
    public Code(){}
    public void show(){
        //访问x
        System.out.println(x);//可以访问
        //访问y
        System.out.println(y);//可以访问!
    }
    public  static  void function(){//静态方法2
        System.out.println("function...");
    }
    public static  void method(){
       // System.out.println (x);//访问非静态 不可
        System.out.println(y);//访问静态可
        System.out.println("-------------");
        function();//调用静态方法2
    }
}
public class Demo1 {
    public static void main(String[] args) {
        Code c = new Code();
        c.show();
        System.out.println("------------");
        c.show();
        c.method();
        c.function();
    }
}

img


这个问题怎么结局啊求指教

“Devil组”引证GPT后的撰写:

  • 这两行变黄的原因是因为在这两行代码中,实例对象c调用了静态方法Code.method()和静态方法Code.function()。
  • 在Java中,使用实例对象来调用静态方法是可以编译通过的,但是这种做法是不规范的,因为静态方法是属于类的,而不是属于对象的。因此,建议使用类名来调用静态方法,例如Code.method()和Code.function()。
  • 在上述代码中,由于静态方法和静态变量属于类,而非静态方法和非静态变量属于实例对象,因此在静态方法中不能直接访问非静态变量。在这种情况下,可以通过创建对象来访问非静态变量,例如c.x,其中c是类Code的一个实例对象。

首先我是碳基生物,不是机器人,回答如下,记得采纳一下哦!
这个只是警告,不是错误,不用管,很正常的呀,警告的意思是这个是静态方法,你可以用类名.静态方法直接访问,你这个是用对象访问的,没有问题,只是会有一个这样的警告。