内部类和类隐藏的难题 [英] Puzzle on Inner Classes and Class Hiding

查看:143
本文介绍了内部类和类隐藏的难题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个基于 inner 类的示例代码:

I have a sample code to solve which is based on inner classes:

package inner;

class A {
    void m() {
        System.out.println("Outer");
    }
}

public class TestInner {
    public static void main(String[] args) {
        new TestInner().go();       
    }

    private void go() {
        new A().m();
        class A{
            void m(){
                System.out.println("Inner");
            }
        }
        new A().m();
    }
    class A{
            void m(){
            System.out.println("Middle");
        }
    }
}






上面的示例代码给出的输出是:


The output given by above sample code is:

Middle 
Inner

我的问题是,由于我不想使用包名创建一个对象,我如何打印输出:

And my question is, given that I dont want to use the package name to create an object, how can I print the output as:

Outer
Inner


推荐答案

public class TestInner {
public static void main(String[] args) {
    new TestInner().go();       
}

private void go() {
    new inner.A().m();        //will produce output "Outer"
    class A{
        void m(){
            System.out.println("Inner");
        }
    }
    new A().m();             //will produce output "Inner"
}
class A{
        void m(){
        System.out.println("Middle");
    }
}

这篇关于内部类和类隐藏的难题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆