程序员在开发过程中需要提供大量的类,那么这么多类会发生同名的情形呢?答案是肯定的。那么如何处理这种重名问题呢?
一、包(Package)的作用 1、管理Java文件 2、解决同名文件冲突。Java允许在类名前面增加一个前缀来限定这个类,这个就是Java中的包机制。
二、如何定义包 1、格式 : package + 包名; 例如: package com.lemon; 注意: 1) 必须放在Java源程序的第一行 2) 如果存在子包,包名间可以用”.”号隔开 2、命名规范 在Java中,包的命名规范是全小写字母拼写(一般命名为公司域名的反向) 例如 : 域名为lemon.com 其反向为 com.lemon
三、如何使用包 1、 可以通过import 关键字,在某个文件使用其他文件中的类 例如: import com.lemon.PackageManager 2、使用的时候不但可以加载某个包下的所有文件, 例如: com.lemon.* 也可以加载某个具体子包下的所有文件 例如: com.lemon.second.* 注意 : “*” 代表所有文件; 5、Java开发中常用的开发包。
1) java.lang.* : 包含Java语言的核心类,如String、Math和Thread等等。 2) java.util.* : 包含Java语言大量工具类 3) java.io.* : 包含Java输入、输出相关功能类 4) java.net.* : 包含Java 网络编程的相关接口注意 : import 导入的是包中的类!!! 当导入不同包中存在相同名字的类,那么在实例化过程中,就必须添加上包名。进而我们可以知道,import关键字的作用 就是 : 简化类名的书写。
四、包之间的访问
1、包与包之间进行访问,被访问的包中的类及类中的成员,需要public修饰 2、不同包中的子类还可以直接访问父类被protected 权限修饰的成员 3、包与包 之间 可以使用的权限只有两种 : public 、protected
五、实践下 创建一个包,名字为com.lemon,在包下创建文件PackageManager.java。并重写构造函数如下:
package com.lemon; public class PackageManager { public PackageManager() { System.out.println(" com.lemon.PackageManager"); } }为com.lemon包新建一个子包(当然,你也可以新建同级包,即平行关系的包),包名也取名为PackageManager.java。也是重写构造函数。在构造函数输出本类的一个”路径”。
package com.lemon.second; public class PackageManager { public PackageManager() { System.out.println("com.lemon.second.PackageManager"); } }最后在com.lemon 包下新建一个入口类,并勾选入口函数。类名为MainEntrance。 目录如下所示:
我们知道,同级包下的文件,创建是时候是不需要import的
package com.lemon; //import com.lemon.second.PackageManager; public class MainEntrance { public static void main(String[] args){ PackageManager manager = new PackageManager(); } } 当屏蔽 //import com.lemon.second.PackageManager; 时候,输出结果com.lemon.PackageManager
当打开 import com.lemon.second.PackageManager; 时,输出如下结果:com.lemon.second.PackageManager “`
就结果而言,你有没有发现什么规律呢?
demo地址: http://download.csdn.net/download/qq_18505715/9835258