读书笔记:《Java2 教程》(六)

接口和包

 

什么是接口:我们可以把接口理解成一种特殊的类型,它完全是由常量和抽象方法组成。(注意和抽象类的区别);

格式:

interface  <name> 

{

   [<return-type><method-name>(<parameter-list>); ]*

   [<type> <final-var> = <value>; ]*

}  // []* -- 0 or many times

说明:

方法:  只允许抽象方法,即只声明,而不实现。其访问限定符是 public

变量: 访问限定符是 static, final (constants)

需要说明的是:

1 接口类型中不能包含构造函数;

2 接口类型可以用来声明一个变量;

通过引入接口的定义,我们:
1
实现多重继承;

2 使无关的类具有某些相同的行为;

 

但是,接口毕竟只是一个抽象的类型。在我们定义了接口之后,必须还要实现它,接口才真正发挥了作用。使用接口的格式就是

class <classname>   [implements <interface-list>]

这里还要做一些必要的说明:

1 实现接口的方法必须使public

2 接口中的变量在实现接口的类中,被视为常量。

3 一个类可以实现多个接口;对应的,一个接口可以被多个类实现;

4 如果一个类在声明的时候指明要显现某个接口,但在类中又没有给出接口方法的实例,那么,这个类是抽象类;

5 如果一个实现了多个接口,而这些接口中有相同的方法定义,那么,这个类对方法的实现是被这些接口共同使用的。

 

接口之间也可以存在继承的关系,如:

interface <name> extends <interface-name-list>

可以参照类的类的继承来理解。但与类不同的是,接口可以extends多个基类接口;

 

为了把这些概念弄的更明白,我们用表格来比较一下:

名称

抽象类

接口

继承

单一继承关系,只能和一个类存在单向派生关系

支持多重继承。一个类可以实现多个接口

成员

可以包含方法实现;静态方法,protected 成员变量

只能有public的方法声明和常量

关系

可以实现多个接口

可以别多个类所实现

实例

---

一个被声明为接口类型的变量可以指向任何实现它的类的对象实例

 

 

包:

概念:包(package)是一组相关的类和接口的集合,引入包的概念的目的在于:

1 分离和重用名称空间(想想namespace的概念?)

2 控制成员的访问(回忆一下publicprotected , private

 

语法:

package pkg1[.pkg2[.pkg3]];

 

如果在定义一个类或者接口的时候,没有指明package 那么,它就被默认的归类到一个无名称的package中;

Java以文件/目录系统方式来保存package,所以它们有树形的结构;

如果定义时声明了package,那么定义类的源文件必须被保存在相应package的目录中,目录名称和package名称必须一致;

java.awt.image这个package为例,其源文件一定保存在java\awt\image 中。(把jsdk目录中的src.zip解压缩看看就明白了)

 

Package的使用:

import pkg1[.pkg2].(<classname>|*);

如:

import java.util.Date;    

import java.io.*;

 

java.lang这个包是被默认包含的。

 

Jsdk中现有的packages:

n        Applet(Applet,AppletContext,…)

n        Awt(Butto, CheckBox, Window, Color,…)

n        io (inputStream,OutputStream,Filter, File,…)

n        lang (Exception,String,Thread,Object,Class,System…)

n        Net (CurrentHandler,Socket,URL,…)

n        util (BitSet,Enumeration,Vector,Stack,Dictionary,…)

 

 

相关文章:
读书笔记:《Java2 教程》(一)

读书笔记:《Java2 教程》(

读书笔记:《Java2 教程》(三)

读书笔记:《Java2 教程》(四)

读书笔记:《Java2 教程》(五)

原文地址:https://www.cnblogs.com/A1240/p/168726.html