天天看点

接口的多继承与包

接口:

Java里类与类之间是只能单继承的,但是接口和接口之间可以多继承,而且一个类可以实现N个接口。例如:

<a href="https://s2.51cto.com/oss/201710/19/d124efe7c963732630d7434e9b7ce8d4.png" target="_blank"></a>

实现多个接口:

<a href="https://s4.51cto.com/oss/201710/19/7d32d787dfaaa15a3c652e786cbf84a0.png" target="_blank"></a>

包:

  包类似于文件夹,用于分类避免文件混淆,保持工程文件的整齐性。一个文件里最好申请一个类,不然一个文件里申请多个类的话也是一样会生成单独的class文件,而且查找这个类的时候也不方便,所以尽量一个类一个文件。

<a href="https://s1.51cto.com/oss/201710/19/29064a3d2b5cbdaa29208e5b57fe6800.png" target="_blank"></a>

什么时候申请一个类,什么时候申请一个方法:

一件事情申请一个类,一件小事情申请一个方法。因为方法完成事情的一部分,类完成一件完整的事情。

<a href="https://s5.51cto.com/oss/201710/19/a8d7738da8ac21b405ee03179c00554f.png" target="_blank"></a>

包的声明方式:

 包名全小写,尽量使用字母:

  com表示盈利公司 后面跟着公司名称,接着是项目或业务分块名称。例如:

<a href="https://s2.51cto.com/oss/201710/19/59729492a13336e6435c02d5ddf8ec7b.png" target="_blank"></a>

org则表示协会,非盈利的机构  后面跟着协会名称,接着是项目或业务分块名称。例如:

<a href="https://s3.51cto.com/oss/201710/19/841e9cd679d7e89f770df25d28837631.png" target="_blank"></a>

一些常用的包:

Java.lang  工具类包

Java.util   时间,集合

Java.io    文件流

Java.net   网络连接

Java.awt   图形化

Javax.swing图形化

Java.sql    数据库操作 JDBC

Javax.sql   数据源

引包:

  在一个包的类里先想对这个包外的类进行访问的话,就需要使用import关键字导入那个包,或者使用全名(包名+类名),才可以进行访问。例如:

<a href="https://s4.51cto.com/oss/201710/19/1a001eae5909149c2c7b9a4a01a9fd65.png" target="_blank"></a>

<a href="https://s3.51cto.com/oss/201710/19/f30061979b237c4354125c637226aeba.png" target="_blank"></a>

在目前的包里有一个类与导入包里的类重名的话,是优先访问导入的类。例如:

<a href="https://s2.51cto.com/oss/201710/19/d4a8073f20c3295ac52ffef1161f822b.png" target="_blank"></a>

<a href="https://s1.51cto.com/oss/201710/19/5209b514e971af95103370cbea8aebff.png" target="_blank"></a>

<a href="https://s5.51cto.com/oss/201710/19/53ba8cb259b83812d83abc0dffc37cce.png" target="_blank"></a>

还有一种优先级最低的导入包的方式,用这个方式是优先访问目前包下的类。例如:

<a href="https://s2.51cto.com/oss/201710/19/3b9a5b8c68745d9e14c01d5b2f448437.png" target="_blank"></a>

<a href="https://s5.51cto.com/oss/201710/19/ce43164ace9b11522006bac881bdb82b.png" target="_blank"></a>

搜索类的优先级:

    import com.ibm.name.Mouse;

    有导入的包先找导入的包里的类

  当前包下查找

  导入包没有找当前包下的类

    import com.ibm.name.*;

    最后都没有才找这个方式导入的包里的类

本文转自 ZeroOne01 51CTO博客,原文链接:http://blog.51cto.com/zero01/1974345,如需转载请自行联系原作者