我试过java中的一些代码来访问变量,我的代码如下
class FirstClass {
public String className = "FirstClass";
int arg=100;
private String insideVariable="Private";
}
class SecondClass extends FirstClass{
public String className="SecondClass";
public String extend=new FirstClass().className;
}
public class Access {
public static void main(String[] args) {
System.out.println(new FirstClass().className);
System.out.println(new SecondClass().className);
System.out.println(new SecondClass().arg);
System.out.println(new SecondClass().extend);
}
}
我有以下问题,
我可以使用 new FirstClass.className 和 new SecondClass().className 访问 className 变量值,这是创建对象还是什么功能发生在这里?
我正在将 FirstClass 扩展到 SecondClass,我可以使用 new SecondClass().arg 访问 arg 变量,现在如何访问className 变量在基类中使用扩展类?
最佳答案
在 1.
中,您正在使用 new
创建匿名实例并访问它们的成员 className
。
在 2.
中,您可以使用 super.className
INSIDE 您的派生类。
class SecondClass extends FirstClass{
public String className="SecondClass";
public String extend=new FirstClass().className;
public void method() {
String cn = super.className;
}
}
除了这种可能性之外,您正在将数据隐藏的 OO 原则粉碎。
如果要访问基类成员,请将基类成员设为 protected
或创建 getter/setter
方法。
关于java - 从其他类访问值以及如何访问基类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18311504/