从其他类访问值以及如何访问基类变量

时间:2013-08-19 10:25:16

标签: java

我在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);
    }
}

我有以下问题,

  1. 我可以使用 new FirstClass.className new SecondClass()。className 来访问className变量值,这是创建对象还是什么是功能发生在这里?

  2. 我正在将FirstClass扩展为SecondClass,我可以使用 new SecondClass()。arg 访问 arg 变量,现在如何访问Base类中的 className 变量使用扩展类?

2 个答案:

答案 0 :(得分:3)

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 - 方法。

答案 1 :(得分:2)

从外部,您可以转换为基本类型以访问该字段:

System.out.println(((FirstClass)new SecondClass()).className);