A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 帅哥哥 高级黑马   /  2014-4-16 19:42  /  1030 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

(纯手打,如有不对的地方请各位看官指正,有缺少的地方请各位补充,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.用 * 引入所有的类时,不会引入同目录下子包的类,要引用子包的类,需要引入子包。



评分

参与人数 1技术分 +1 收起 理由
Silent_memory + 1 赞一个!

查看全部评分

5 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
这必须顶啊!
回复 使用道具 举报
顶顶顶 666!
回复 使用道具 举报
顶一个!!
回复 使用道具 举报
顶一个!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马