Yanzhengyd
Penseur de marche
2020-05-31 20:49
采纳率: 63.6%
浏览 61
已采纳

请问这道题怎么思考呢?

1. 定义一个类A,它有一个内部类B. 
2. 定义B的方法g,它访问A的数据成员。
3. 定义A的方法f,它访问B的数据成员,注意必须指明那个内部类对象的数据成员。 
4. 确保类A有方法修改A的域。 
5. 确保类B有方法print,输出A的域。
6. 定义类C,它只有一个main方法。在main方法体内创建A类对象a。a作为外围对象创建B类对象b; 
7. 验证:每个内部类对象,都有一个相关联的外部类对象,就是创建它的外部类对象。
方法:首先对象b调用print,打印a的域,然后修改a的域,最后b再次调用print,打印a的域,打印结果应该与对a的修改一致,从而说明b与a相关联。
拜托各位了,麻烦各位了,谢谢!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • caozhy
    已采纳

    你这里的"域"应该是英文的field,不过一般来说叫做“字段”,应该是翻译的问题。

    你的问题的参考代码

    class C
    {
        public static void main(String[] args)
        {
            A a = new A();
            A.B b = a.new B();
            a.f(b);
            b.print();
            a.setValue(789);
            b.print();
        }
    }
    
    class A
    {
        private int value = 123;
        class B
        {
            public int value1 = 456;
            public void g()
            {
                System.out.println(A.this.value);
            }
            public void print() { g(); }
        }
        public void f(A.B b)
        {
            System.out.println(b.value1);
        }
        public void setValue(int val) { value = val; }
    }
    

    456
    123
    789

    问题解决的话,请点下采纳

    点赞 评论

相关推荐