zoukankan      html  css  js  c++  java
  • 读书笔记:《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 教程》(五)

  • 相关阅读:
    水平触发与边缘触发
    Leetcode935 骑士拨号器
    leetcodeF47 礼物的最大价值
    leetcodeF42 连续子数组的最大和
    leetcode12 矩阵中的路径 回溯算法
    leetcode14-II 剪绳子II DP 解法配合快速乘取模
    leetcode17.16 按摩师DP
    leetcode530 二叉树的最小绝对差
    PCB genesis大孔加小孔(即卸力孔)实现方法
    PCB genesis短槽加引导孔实现方法
  • 原文地址:https://www.cnblogs.com/A1240/p/168726.html
Copyright © 2011-2022 走看看