讲述java中内部类的研究 |
JAVA从JDK1.1开始引入了内部类, 可以参见代码,觉得 好处便是设计类的时候 可以偷懒,呵呵 。重要是 可以 引用类的内部 其余元素,差不多是把这个内部类当成原类的元素 。还有 可以 潜藏类的一些设计细节, 好处还是众多的 。 定义两个接口 package interfacepackage; public interface Destination { String readLabel(); } package interfacepackage; public interface Contents { int value(); } 一个类,而且加有测试代码 package debug; import interfacepackage.Contents; import interfacepackage.Destination; public class Tester { private int valueRate = 2; private class PContent implements Contents { private int i = 11 * valueRate; public int value() { return i; } } protected class PDestination implements Destination { private String label; private PDestination(String whereTo) { label = whereTo; } public String readLabel() { return label; } } public Destination dest(String s) { return new PDestination(s); } public Contents cont() { return new PContent(); } public static void main(String args[]) { Tester p = new Tester(); Contents c = p.cont(); System.out.println(c.value()); Destination d = p.dest("天外水火"); System.out.println(d.readLabel()); System.out.println("done"); } } 上面的代码是内部动态类,那么内部静态类是不是也 可以呢?答案是 可以的,然而静态内部类是 无奈 引用类的 其余非静态元素的,例如上例中的PContent 内部类假如改为static类,是 无奈 引用valueRate 属性的,这样是会报编译 舛误的,然而假如valueRate 假如也改为static是 可以运行的 。 |