在Java中,提供一种工具用于管理类,那就叫类包,作用包括对类文件进行分类管理以及给类提供多命名空间。
格式:package 包名;
格式注意事项:1,包的声明必须写在程序最开头。
2,包名全部用小写(规范)。
package pack;
public class Demo
{
public void show(){}
}
引入包之后,在使用上用许多要注意的地方:
1,调用其他包的类时,格式:包名.类名(用import关键字可以简化);
2,调用其他包中的类是有前提的,就是被调用的类及被调用的成员必须定义为public;
3,有包以后,要用包名在当前目录下建立一个文件夹,并把生成的class文件放入包文件夹中(在命令行中输入:javac -d . Demo.java即可在当前目录下新建一个Demo类所属包的文件夹,并且Demo.class文件也会在文件夹中),并且在通过Java虚拟机运行class文件时,文件名必须是包名.类名(命令行中输入:java pack.Demo);
4,如果类中调用了其他包的类时,路径(classpath)中必须包括包所在的目录;
5,虽然包把类分隔开,但是不同包的类之间可以存在继承关系;
6,如果包中的类或其成员被声明为protected时,只有在相同包中的类或其子类可以调用;
7,包也可以逐级存放,例如:package pack1.pack2.pack3;那么在pack1文件夹下有pack2文件夹,pack2文件夹下有pack3文件夹,被调用的类在哪一层就必须把该层包的包名完整的写出来再点上类名调用。
==============================================================================================================================
由于Java中包存在层次关系,当层次较多时,调用类是一件相当麻烦的事,这时,java提供了import关键字,用来简化其他包中类的调用。
使用格式:1,import 父包名.子包名.子包名.*:在程序中可以直接用类名调用该包文件夹中的所有可用类。
2,import 父包名.子包名.子包名.类1:在程序中可以直接用类名调用该包文件夹中的类1。
注意事项:当被import指定不同包中含有同名类时,必须使用包名.类名进行调用。
==============================================================================================================================
在使用包中还要注意,当包中的一个类被public修饰后,Java文件名必须与该类名相同,因此,当一个包中有多个public类时,必须分开多个java文件编写代码。
==============================================================================================================================
注意:package中的类对应的同名java文件以及同名的类文件不要和package在同一个目录下,否则调用时会发现重名文件,会挂!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!