package和import语句

1、为便于管理大型软件系统中数目众多的类,解决类的命名冲突问题,java引入包(package)机制,提供类的多重类命名空间。

 即,为了区分各个不同功能,但是相同名字的类。在前边加很多包名作为开头,减少重复。

2、加包名的方法:

------

构建一个类Cat:

public class Cat
{
}

-------

加package关键字,一定要在java文件的开头加。

 给包取名时,约定用公司域名倒过来:

如package com.sap;//在这里包了2层

package com.sap.sh.Mobile;//在这里包了4层

---------

package com.sap.sh.mobile;

public class Cat
{
}
-----------

3、package 语句必须作为java源文件的第一条语句,指明该文件中定义的类所在的包。(若缺省该语句,则指定无名包。裸体类很容易和别的类冲突)。前边可以写注释,无所谓。

格式为:  package pkg1[.pkg2[pkg3...]];

4、java编译器把包对应于文件系统的目录管理,package 语句中,用' .'来指明包(目录)的层次,例如使用语句

    package  com.sxt;  

  则该文件中所有的类位于.\com\sxt目录下。

5、在同目录下创建

-----

public class Dog
{
 public static void main(String[] args)
 {
	Cat c=new Cat();
 }
}

-----

将文件中的其他class全部删掉,以免影响编译(比如其他地方也有Cat 这样一个类)。

这时候贬义还是不会通过,因为之前Cat类外面打了4个包,所以,现在手动在该目录下建立这样4层结构的包,将Cat.class拷贝进去。

java 1.4以及之前的版本,源文件不会对操作产生影响,但是java 1.5以后,最好把Cat.java源文件也删掉。

6、现在还是不能找到这个Cat类,因为在Dog里面还要制定Cat的地址。

----

public class Dog
{
 public static void main(String[] args)
 {
	com.sap.sh.mobile.Cat c=new com.sap.sh.mobile.Cat();
 }
}

----

现在就可以编译通过了。


 7、总结

(1)写一个类的时候,在开头要加上他所在的package的目录;

(2)编译出来的class文件,必须放在以上指定的目录下面,要完全一致。

(3)使用的时候要指定它的包结构,即它所在位置。即使用该类时,必须使用该类的全名(com.sap.sh.mobile.Cat)



8、Import的使用。

为了简化书写,用一下方式代替com.sap.sh.mobile.Cat

----

import com.sap.sh.mobile.Cat;
//import com.sap.sh.mobile.*;//引用该目录下的所有类。
public class Dog
{
 public static void main(String[] args)
 {
	Cat c=new Cat();
 }
}
----


9、package import 总结

(1)如果想将一个类放在包中,在这个类的源文件第一句加package语句。

(2)必须保证该类的class文件位于正确的目录下。

   该类的源代码可能会产生影响,所以要将其删除或者转移到别的目录。

(3)另外的类想访问该打包类的话,要写全名,或者引入(加* 或者具体的类名)

     如果访问位于同一个包中的类,不需要引入。

---

package com.sap.sh.mobile;
public class Dog
{
 public static void main(String[] args)
 {
	Cat c=new Cat();
 }
}
这样子,Dog不需要制定自己调用的是哪个Cat,也可以访问Cat。
----

(4)必须class文件的最上层包的父目录位于classpath环境变量下。

即:我的Cat.class类位于C://java.com.sap.sh.mobile下面,我在别的文件里要访问Cat,不仅要import这个地址com.sap.sh.mobile.*,还要在环境变量Classpath 下添加com.sap.sh.mobile的上一层父目录C://java。

这样才能保证系统在使用该类的时候,可以正确找到这个类。

但是,这样子,还有一个问题,就是如果工程很大,有很多重名的类,把他们的父目录都添加到环境变量下,又会出现混乱。这就要使用Eclipse。不同的项目建立不同的classpath,使用什么包,都拷到自己的目录下面,区分开来。


10、将Dog放在别的地方打包

---

package com.sap.sh.windows;
import com.sap.sh.mobile.Cat;
public class Dog
{
 public static void main(String[] args)
 {
	Cat c=new Cat();
 }
}
---

要将编译产生的Dog.class放到以上目录中。

然后,执行的时候,也要加上dog的包名。

如:java com.sap.sh.windows.Dog

总结:执行一个类,需要写全包名。

如果要到别的地方去执行Dog,也需要到到classpath中将Dog的父目录添加进去。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值