Java中的内部类初学
1.定义: 顾名思义就是在类中定义的类,分为两类,static 的 和 non-static 的。内部类实际上是一个编译器的现象。编译器将内部类转化为带着一些奇怪名字的普通类文件,虚拟机并不区分一般类和内部类的类中的文件。 2.使用内部类的第一个好处——封装性和多继承 我们进行“第三种关系”分析: 继承结构中无外乎"is a" 和 "has a"两种关系。我们举一个Employee/Manager的is-a的例子: class Employee {
private String name;
private Date dateHire;
.....
.....
public float getSalary() {
}
...
} Class Manager extends Employee {
private Employee[ ] subOrdinates;
....
public Employee[ ] getSubOrdinates() {
return subOrdinates;
}
} 而另一种关系是has-a,class Company {
private Employee[ ] allEmployees;
private Manager[ ] allManagers;
....
public Manager[ ] getAllManagers() {
return allManagers();
}
public void printOrganizationTree() {
}
}
然而还有第三种关系,虽不明显但是很常用,称作“平面关系”。我们举一个汽车的例子:一个汽车(类Automobile)可以有许多组件组成,比如引擎、传动系统、排气系统等等。当然其中还可能有一个部件——车载空调(auto AC)。这个auto AC可能从一个通用的类AirConditioner中得到,进行改造后适用于汽车。但是它不能独立存在,汽车必须与其有交互和控制。注意,这里Automobile这个类不可以去实现一个叫做AutoAC的接口,因为汽车不是一个空调,它也不应该有空调应该有的属性。车载空调的属性应该放在Automobile类中。这里我们使用内部类来描述和解决。 /** The general AirConditioner class */
class AirConditioner {
....
public float getTemperatureMin() {
}
public float getTemperatureMax() {
}
} /** The Automobile class which has an inner class which is an AC */
class Automobile {
相关文档:
Java学习从入门到精通
一、 JDK (Java Development Kit)
JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的J ......
Java语言的输入输出功能是十分强大而灵活的,美中不足的是看上去输入输出的代码并不是很简洁,因为你往往需要包装许多不同的对象。在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作,网络上的数据流,字符串流,对象流,zip文件流....本文的目的是为大家做一个简要的介绍。
......
JAVA自学之路——马士兵
2007年11月06日 星期二 05:47 P.M.[原创 - 尚学堂科技 - 马士兵老师]
JAVA自学之路 一:学会选择
[转载请注明出处:http://www.bjsxt.com/zixue/zixuezhilu_1.html]
为了就业,不少同学参加各种各样的培训。
决心做软件的,大多数人 ......
话题是由如下的事情引出的: public class StringTest { public static void main(String[] args) { String str1 = new String("abc"); String str2 = "abc"; if (str1 == str2) { ......
在应用程序中我们经常需要一个类去完成像数据处理、监听事件或检查另一个类的活动等任务。为了达到这个目标,我们可能使用带有一套锁和消息通知的线程。Java 线程API已经很好的文档化,但为了使线程能够正确而高效地运行,程序员仍然需要丰富的编程经验并编写大量的代码。通过应用本篇文章中讨论的框架,程序员能够避 ......