1 包的定义
在.java 文件首行使用package 包名称;
eg:定义包:
package www.java ;
public class Test {
public static void main(String[] args) {
System.out.println("Hello World") ;
}
}
1.2 包的导入
开发中使用包的定义之后,相当于把一个大的项目分别按照一定要求保存在了不同的包之中,但是这些程序类一定 会发生互相调用的情况,这个时候就需要包的导入。
eg:编写简单类,本类需要被其他程序类所使用
package www.java.util;
public class Message {
public void print() {
System.out.println("[Message] Hello Package");
}
}
eg:导入包:
package www.java.test ;
import www.java.util.Message ;
public class Test {
public static void main(String[] args) {
Message msg = new Message() ;
msg.print() ;
}
}
注意:类使用class和public class的区别:
- public class: 文件名称必须与类名称保持一致,如果希望一个类被其他包访问,则必须定义为public class .
- class: 文件名称可以与类名称不一致,在一个*.java中可以定义多个class,但是这个类不允许被其他包 所访问。
另外需要注意的是:
以上导入的语句为"import 包.类"这样只会导入一个类,如果说现在导入一个包中的多个类, 可以直接采用通配符"*"来完成。
import www.bit.java.util.* ;
这种"*"并不意味要将包中的所有类都进行导入,而是根据你的需求来导入。
问题:不同包但是相同类名的情况
package www.java.test ;
public class Message {
public void print() {
System.out.println("[Message] Hello Java") ;
}
}
假设现在Test需要同时导入这两个包:
package www.java.test ;
import www.java.util.* ;
import www.java.message.* ;
public class Test {
public static void main(String[] args) {
Message msg = new Message() ;
msg.print() ;
}
}
这个时候如果还是直接使用Message类就会产生一个编译上的歧义。
这个时候一般在使用时使用全名称定义。
eg:
www.bit.java.message.Message msg = new www.bit.java.message.Message() ;
3 系统常用包