手记

用java编写中文代码解释内部类外部类静态类反射—我竟有不习惯用中文的一天

class 外部类{

    private static String 外部类私有变量="Hello";

    class 内部类{
        private String 内部类私有变量="World";
        public void 输出() {
            System.out.println(外部类.this.外部类私有变量);
        System.out.println(外部类.内部类.class);
        }

    }

    static class 静态内部类{

        public void 输出() {
            System.out.println(外部类私有变量.concat("中国"));
        }
    }

    public void 外部类测试() {

        内部类 内部类对象=new 内部类();

        内部类对象.输出();
        System.out.println(内部类对象.内部类私有变量);
    }

    public static void 外部类方法() {
        System.out.println("外部类方法:"+外部类私有变量.concat("中国"));
    }
}

public class T7 {

    public static void main(String[] args) throws ClassNotFoundException {
        //这里的测试方法着重演示反射的机制。
        外部类 外部对象=new 外部类();

        System.out.println("外部类全名:"+外部对象.getClass().getName());
        System.out.println("外部类类名:"+外部对象.getClass().getSimpleName());
        //getclass必须实例化才能调用
        外部对象.外部类测试();//1、对象调用方法

        外部类.外部类方法();//2、类名直接调用方法。
        System.out.println("外部类.class获得的类名:"+外部类.class.getSimpleName());

        System.out.println("内部类的全名:"+外部类.内部类.class.getName());

        System.out.println("类T7的全名:"+Class.forName("T7").getName());

    }

}

根据李兴华老师的代码改变,大家测试一下运行结果。这个也解释了java经典面试题:
1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?
可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。

求助,知道class.forName 重要,可是此处却报错,找不到。有明白的同学吗?

1人推荐
随时随地看视频
慕课网APP

热门评论

有异常需要处理 jdbc

查看全部评论