黑马程序员技术交流社区

标题: 关于“包”的一些总结 [打印本页]

作者: 帅哥哥    时间: 2014-4-16 19:42
标题: 关于“包”的一些总结
(纯手打,如有不对的地方请各位看官指正,有缺少的地方请各位补充,Thanks)

一.包声明语句        1.包声明语句用于吧java类放到特定的包中,格式为  package 包名;  
        2.在一个java源文件中,最多只能有一个 package 语句,所以,在同一个java源文件中定义的多个java类或接口都位于同一个包中。但 package 语句不是必须的,如果没有提供 package 语句,就表示java类位于默认包中,默认包没有名字。
        3. package 语句必须位于java源文件的第一行(忽略注释行)。
  1. /*这是合法的*/
  2. /*注释行*/
  3. package xxx.xx.x;
  4. public class MainDemo{...}
  5. class Demo{...}
复制代码

二.包的作用
        把类放到特定的包中有三大作用:
        1.能够区分名字相同的类。这个很容易理解,如果相同的类放在同一个包中(文件夹中),后编译的类会覆盖先编译的类,就会无法访问。把名字相同的类放到不同的包中,就相当于为他们指定了不同的名字空间。例如两个类都叫Demo,一个放在 xxx.xx.x 包中,一个放在 yyy.yy.y 中,编译就不会覆盖,访问的时候,用完整类名(或称为 完整限定名)访问,如 xxx.xx.x.Demo 类,或 yyy.yy.y.Demo 类。
        2.有助于实施访问权限控制。当位于不同包之间的类相互访问时,会受到访问权限的约束。(这个我会再写一帖子跟大家详细分享的 0.0)
        3.有助于划分和组织java应用中的个各类。例如把客户端的类,服务器端的类,公共类分开在不同的包中,结构很清晰。而且,包中又可以有不同功能的子包,这就是应用有了明显层次结构。

三.包的命名规范
        1.包名通常用小写。
        2.包名中通常要包含类的创建者或拥有者的信息。
        3.包名中通常要包含类所属的软件项目的信息。
        4.包含类在具体软件项目中所处的位置。
        我们经常会看到像这样的包名,com.abc.netstore,包的命名规范实际上采用了 Internet 上 URL 命名规范的反转形式。例如刚刚的包名 Internet 网上网址的形式为 http://netstore.abc.com 。

四.JDK提供的java基本包
        1. java.lang 包:包含线程类(Thread)、异常类(Exception)、系统类(System)、整数类(Integer)、字符串类(String)等,这些类是编写java程序经常用到的。这个类是java虚拟机自动引入的包,也就是说即使程序中没有提供“import java.lang.*”语句,这个包也会被自动引入。
        2. java.awt 包:抽象窗口工具箱包,awt 是 “Abstract Window Toolkit”的缩写,这个包中包含了构建 GUI 界面的类及绘图类。
        3. java.io 包:输入输出包,包含各种输入流类和输出流类。如文件输入流类(FileInputStream)和文件输出流类(FileOutputStream)等。
        4. java.util 包,提供一些实用类,如日期类(Date)和集合类(Collection)等。
        5. java.net 包,支持 TCP/IP 网络协议,包含 Socket 类及 URL 相关的类,这些类都用于网络编程。
        此外,JDK中还有很多其他的包,比如用于数据库编程的 java.sql 包,用于编写网络程序的 java.rmi 包(rmi是“Remote Method Invocation”的缩写)等。 javax.* 包是对基本包的扩展,包括用于编写 GUI 程序的 javax.swing 包,编写声音程序的 javax.sound 包等。
        JDK的所有包中的类构成了 java 类库,或者叫做 JAVASE API 。用户创建的 java 应用程序都依赖于 JAVASE API 。

五.包引入语句
        1.引入一个特定的类 import xxx.xx.x.Demo;
        2.引入一个包中的所有的类 import xxx.xx.x.*; 值得注意的是,如果要用 xxx.xx.x 中的Demo类,上一条方法性能更优。
        3. import 语句不会导致类的初始化。
        4.如果类同时引用了来自不同包的同名类,则在类中必须通过完整类名来访问。
        5.用 * 引入所有的类时,不会引入同目录下子包的类,要引用子包的类,需要引入子包。




作者: 许庭洲    时间: 2014-4-24 20:49
值得学习ing!
作者: job    时间: 2014-4-25 23:09
这必须顶啊!
作者: 酱油炒饭    时间: 2014-4-25 23:54
顶顶顶 666!
作者: Union    时间: 2014-4-27 00:22
顶一个!!
作者: iloveyou    时间: 2014-4-27 01:05
顶一个!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2