JAVA
第六章—接口、Lambda表达方式与内部类
1.接口技术(interface)—描述类具有什么功能,而并不给出每个类的具体实现。类实现一个或多个接口,并在需要接口的地方,随时使用对象实现相应接口(功能)。
2.Lambda表达式—表示可以在将来的某个时间点执行的代码块的简洁方法。
3.内部类(inner Class)机制—内部类定义在另外一个类的内部,其中的方法可以访问包含它们外部类的域。(内部类技术主要用于设计具有相互协作关系的类的集合。)
4.代理(proxy)—实现任意接口的对象。代理是一种非常专业的构造工具,它可以构建系统级的工具。
6.1接口
6.1.1接口概念—接口不是类,而是类的一组需求描述,这些类要遵从接口描述的统一格式进行定义。
例:Arrays类中的sort方法可以对对象数组进行排序,但要求满足前提—对象所属的类必须实现了Comparable接口。
Public interface Comparable泛型类型
{
Int compareTo(T other)
}
注\接口中的所有方法自动属于public。因此,在接口中声明的方法,不必提供关键字public。
上面的接口只有一种方法,而有些接口可能包含多种方法,在接口中还可以定义常量,但是接口接口绝不能含有实列域。
提供实列域和方法实现任务应该由实现接口的那个类来完成。
为了让类实现一个接口,需要两个步骤(这里以Employee为例)
1)将类声明为实现给定接口
2)对接口的所有方法进行定义。
—class Employee implements Comparable
Public int compareTo
{
Public int compareTo(Employee other)
{
Return Double.compare(salary,other.salary)
}
…}
因此,要让一个类使用排序服务必须让他实现compareTo的方法,那么,为什么不能再Employee类直接提供一个CompareTo方法,而必须实现Comparable接口——主要原因是在于java程序设计语言是一种强类型(Strongly typed)语言。在调用方法时,编译器将会检查这个方法是否存在。