为什么我对非静态字符串变量的访问不起作用



为什么我对非静态字符串变量的访问不起作用。尝试这样做,我的IDE已经找到了它,但是当我运行时,它会显示"找不到符号"请帮助我,谢谢。

public class Main
{
    public static void main(String[] args)
    {
        testWrong obj = new testWrong();
        System.out.println(obj.public_non_static()); //Doesn't Work

    }
}

public class testWrong
{
    public String public_non_static = "It is Public non Static";
    public void in_non_static_method()
    {
        testWrong obj1 = new testWrong();
        obj1.public_non_static();   //Doesn't Work
    }
    public static void in_static_method()
    {
        testWrong obj2 = new testWrong();
        obj2.public_non_static(); //Doesn't Work also
    }
}

您有一个 act_s 命名 public_non_static,但您尝试使用该名称访问方法,该名称在Java中不起作用。p>另一方面,您不应习惯直接访问其他类中的变量,因为它违反了最重要的OO原理信息隐藏/封装

对于 getter/setter 方法也是如此没有(商务(逻辑。

您正在像方法一样访问:public_non_static((;

而是使用此:obj2.2.public_non_static;

,由于您对OOP非常新鲜,因此不使用公共关键字是最好的做法,您应该将它们私有化并为其制作Getters和Setters。

最新更新