java中内部类的研究

王朝java/jsp·作者佚名  2007-04-29
窄屏简体版  字體: |||超大  

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是可以运行的。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航