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

标签 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.classNamenew SecondClass().className 访问 className 变量值,这是创建对象还是什么功能发生在这里?

  2. 我正在将 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/

相关文章:

java - 无法使 jpa 与 glassfish 和 mysql 一起工作

java - Git/JGit 与 SVNKit 类似的 Java 访问代码(方法)

java - 如何从 ExpandableListView 获取特定 View ?

java - 二叉树遍历的问题

java - 如何从 Freemarker 模板中获取特定的 map 值

java - XWalkView如何设置滤色器?

java - 使用 Java 8 合并两个 map

java - 局部方法变量,无法识别

java - Hibernate Criteria - 给定列表中的最大值

java - 展平对象并转换为列表