【问题标题】:In case of inner and outer classes, Java对于内部类和外部类,Java
【发布时间】:2016-04-04 05:05:48
【问题描述】:

当我阅读我的 Java 学习书时,有一个 MCQ(多项选择题),MCQ 是:

问题:对于内部类和外部类,_________

选项是

(a) 外部类的成员不能被内部类访问。

(b) 内部类的成员不能被外部类访问。

(c) 两个类都可以访问两者的成员。

(d) 这些都不是。

书答案键上给出的答案是 (b) 但我觉得它不是正确答案,因为我认为外部类可以访问其内部类的成员.所以请帮助我做对的事情。

谢谢,祝你有美好的一天:)

【问题讨论】:

  • 你试过写一个简单的测试用例吗?请至少在此处发布之前这样做,以便有一个具体的示例可供使用。
  • @JimGarrison 多项选择题。我已编辑。待批准。
  • @JimGarrison MCQ 只是一个带有多项选择题 (MCQ) 的问题。我们必须从给定的选项中选择答案。
  • 不,EXPERIMENT 使用您的 IDE。这样你会比仅仅回答一个问题学得更好。

标签: java inner-classes outer-classes


【解决方案1】:

让我们用一些代码让它变得简单

public class A {
    public int a = 1;
    public class B {
        public int b = 2;
        public int getAfromB() { return a; } // ACCESS OUTER CLASS MEMBER IMPLICITLY
        public int getBfromB() { return b; }
    }
    public int getBfromA() {
        B myB1 = new B();
        B myB2 = new B();
        return myB1.b + myB2.b; 
    }
}

一个 B 实例链接到一个特定的 A 实例,它属于实例范围。在其范围内,定义了 A 类的成员。

A 类可以处理 B 类的多个实例。它将能够操作它们,但不能隐式访问特定的实例成员,这仅仅是因为 'b' 从它的角度来看并不是唯一的。

【讨论】:

    【解决方案2】:

    很抱歉给您带来了困惑。

    您可以通过两种方式访问​​内部类和外部类。我确实建议您尝试一个简单的示例,因为编程是您只能通过自己的问题学习的东西之一。

    请参阅此内容,因为这可能会有所帮助:Can an outer class access the members of inner class?

    【讨论】:

    • 你是说“外部类不能从内部类访问”?请发布一个示例,因为我认为这是错误的,否则我不理解您所说的正确。
    猜你喜欢
    • 2023-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-26
    • 1970-01-01
    相关资源
    最近更新 更多