------- android培训、java培训、期待与您交流! ----------
包(package):
当一个大型程序由数个不同的组别或人员开发共同来开发,用到相同的类名称是有可能的事,这种情况的发生还要确保程序可以正确运行,就必须使用package关键字。
package是在使用多个类或接口时,为了避免名称重复而采用的一种措施。应该怎么使用呢?在类或接口的最上面一行加上package的声明就可以。
定义格式:
package package名称;
使用package的声明之后,在同一文件内的接口或类都被纳入相同的package中。
举个例子说明:
package pack.java;
class Person
{
public String say()
{
return "Hello Java";
}
}
class PackageTest
{
public static void main(String[] args)
{
System.out.println(new Person().say());
}
}
运算结果如下:
C:\Users\lenovo\Desktop>javac -d . PackageTest.java
C:\Users\lenovo\Desktop>java pack.java.PackageTest
Hello Java
C:\Users\lenovo\Desktop>
在PackageTest.java中,除了第首行加的package pack.java声明语句之外,其余的程序都很常见。首行声明了一个pack.java的包,所以就等于将Person类、PackageTest类放入了pack中的java文件夹之下。
程序编译的命令格式:
javac -d . PackageTest.java
"-d":表示生成目录
".":表示在当前目录下生成
这样就会在当前目录下生成一个pack的文件夹,在pack文件夹下又会生成一个java文件夹,在java文件夹下会有编译好的Person.class和PackageTest.class,编译好之后用java命令来运行。
命令格式:
java pack.java.PackageTest
import关键字的使用:
使用的类是属于同一个package时,程序代码的编写并不需要做修改,但如果几个类属于不同的package时,在某个类要访问到其它类的成员时,则必须做修改。
若某个类需要被访问时,则必须把这个类plublic,也就是说,此类必须声明成public。
若要访问不同package内某个public类的成员时,在程序内必须明确地指明“被访问package的名称.类名称”。
定义格式为:
import package名称.类名称;
通过import命令可将某个package内的类导入,因此后续的程序代码便不用再写上被访问package的名称。
举个例子说明:
package pack.java;
public class Person
{
public String say()
{
return "Hello Java";
}
}
package pack.java.impt;
import pack.java.Person;
public class ImportTest
{
public static void main(String[] args)
{
System.out.println(new Person().say());
}
}
运行编译Person:
C:\Users\lenovo\Desktop>javac -d . Person.java
C:\Users\lenovo\Desktop>
运行编译ImportTest:
C:\Users\lenovo\Desktop>javac -d . ImportTest.java
C:\Users\lenovo\Desktop>java pack.java.impt.ImportTest
Hello Java
C:\Users\lenovo\Desktop>
程序说明:
1、首行声明一个pack.java.impt包,将ImportTest类放入此包之中。
2、接着使用import语句,将pack.java包中的Person类导入到此包之中。
注意:
package pack.java.impt;
public class ImportTest1
{
public static void main(String[] args)
{
System.out.println(new pack.java.Person().say());
}
}
运算结果如下:
C:\Users\lenovo\Desktop>javac -d . ImportTest1.java
C:\Users\lenovo\Desktop>java pack.java.impt.ImportTest1
Hello Java
C:\Users\lenovo\Desktop>
可以发现在ImportTest1.java程序中并没有使用import语句,但是在程序中使用Person类的时候,使用了“包名.类名”的方式使用了Person类,所以在程序中也可以使用此方法来使用非本类所在的包中的类。
JDK中常见的包:
SUN公司在JDK中为程序员提供了各种实用类,这些类按功能不同分别被放入了不同的包中,供开发者使用,最常用的几个包:
1、 java.lang — 包含一些Java语言的核心类,如String、Math、Integer、System和Thread等提供常用功能,在java.lang包中还有一个子包:java.lang.reflect用于实现java类的反射机制。
2、 java.awt — 包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)。
3、 javax.swing — 此包用于建立图形用户界面,此包中的组件相对于java.awt包而言是轻量级组件。
4、 java.applet — 包含applet运行所需的一些类。
5、 java.net — 包含执行与网络相关的操作的类。
6、 java.io — 包含能提供多种输入/输出功能的类。
7、 java.util — 包含一些实用工具类,如定义系统特性与日期日历相关的函数。
注意:
Java 1.2以后的版本中,java.lang这个包会自动被导入,java.lang包中的类不需要使用import语句来导入,如常使用的System类。