为什么我对非静态字符串变量的访问不起作用。尝试这样做,我的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
}
}
答案 0 :(得分:2)
您有一个名为Session
的变量,但您尝试使用该名称访问方法,该名称在Java中不起作用。
你不应该习惯直接访问其他类中的变量,因为它违反了最重要的OO原则信息隐藏/封装。
getter / setter 方法也是如此,这些方法只应用于愚蠢的数据传输对象(DTO)或值对象。没有(商业)逻辑。
答案 1 :(得分:0)
您正在访问方法:public_non_static();
请改用:obj2.public_non_static;
既然你对OOP很陌生,那么最好不要使用公共关键字,你应该将它们设为私有,并为它们制作getter和setter。