| 网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 |
![]() |
| Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道 |
JAVA从JDK1.1开始引入了内部类,可以参见代码,感觉好处就是设计类的时候可以偷懒,呵呵。主要是可以引用类的内部其他元素,差不多是把这个内部类当成原类的元素。还有可以隐藏类的一些设计细节,好处还是很多的。
中国网管论坛bbs.bitsCN.com
定义两个接口 网管联盟bitsCN_com
package interfacepackage; 网管联盟bitsCN_com
public interface Destination {
String readLabel();
}
package interfacepackage; 网管u家u.bitscn@com
public interface Contents { 中国网管联盟bitsCN.com
int value(); 网管下载dl.bitscn.com
}
网管u家u.bitsCN.com
一个类,并且加有测试代码
中国网管论坛bbs.bitsCN.com
package debug;
import interfacepackage.Contents;
import interfacepackage.Destination; 网管网www.bitscn.com
public class Tester {
private int valueRate = 2;
private class PContent implements Contents {
private int i = 11 * valueRate;
public int value() {
return i;
}
} 网管bitscn_com
protected class PDestination implements Destination {
private String label; 网管论坛bbs_bitsCN_com
private PDestination(String whereTo) {
label = whereTo;
} 网管论坛bbs_bitsCN_com
public String readLabel() {
return label;
}
} 网管bitscn_com
public Destination dest(String s) {
return new PDestination(s);
} 网管网www_bitscn_com
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是可以运行的。
|
0
|
评论加载中…