第七章 package,import和classpath 第一节 package和import

package(1):

--所有的Java类都是放置在同一个目录下面的,因此类之间的相互调用无需显式声明调用。

注意:(1)同一个目录下,两个类的名字不能相同

           (2)文件过多,查找和修改都不易,且容易出错

--Java支持多个目录放置Java文件,并且通过package  /  import  /  classpath  /  jar等机制配合使用,可以支持跨目录放置调用Java类

package(2):

--package包,和C++中的namespace类似

--在Java类文件的第一句话给出包的名称

也就是说,在目录cn.edu.ecnu下有个类文件PackageExample.java

--类全称 cn.edu.ecnu.PackageExample,短名称PackageExample

--引用类的时候,必须采用全称引用;程序正文可以用短名称

--PackageExample.java必须严格放置在cn / edu / ecnu目录下

package(3):

--包名 package  name尽量唯一

--域名是唯一的,因此常用域名做包名

--域名逆序:cn.edu.ecnu,范围通常从大到小

--类的完整名字:包名 + 类名,cn.edu.ecnu.PackageExample

--包名:和目录层次一样,cn / edu / ecnu / PackageExample.java

--但是包具体放在什么位置不重要,编译和运行的时候再指定

import(1):

注意:(1)import相当于C++中的include

         (2)如果PackageExample.java和PackageExampleTest.java在同一个目录,那么import可以省略

         (3)可以使用import  cn.edu.ecnu.*   但是不可以用import  cn.edu.*  。因为 符号 * 代表这个目录下所有的文件,但不包括子文件夹和子文件夹内的文件

import(2):import规则

--import必须全部放在package之后,类定义之前

--多个import的顺序无关

--可以用*来引入一个目录下的所有类,比如import  java.lang.* ,此意思是引入java.lang下面所有的类文件,但是不包括java.lang下面的子目录的文件,即并不包括java.lang.reflect.* 。换句话说,不能递归包含各个目录下的文件

--import尽量精确,不推荐用* ,以免新增的同名程序会使得老程序报错

 

举个例子:

src新建三个包package,分别是a,b,c。a中有一个Man.java,b中有一个Man.java,c的代码如上。当新建一个Man对象时会报错,验证了程序中存在多个import  *将会面临调用类指代不清的风险。

解决办法(1):Man  m  =  new  Man();  变成  a.Man  m  =  new  a.Man();

解决办法(2):

 

总结:

--Java通过包(package)来分开类

  package必须和目录层次一样

--Java通过引用(import)来导入类

  import类尽量准确  

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值