Java包的概述
包是用來管理類的, 就像使用文件夾管理文件一樣,一個項目,可以包含很多的包,每個 包中又包含很多不同的類。
同一個包中類名不能相同 ,不同的包中類名可以相同。
java.lang: Java語言的基本包, 系統(tǒng)會自動導(dǎo)入
java.util :Java提供的常用工具包
java.io: 輸入/輸出相關(guān)的類
package 包
說明:
● package關(guān)鍵字,是用來定義包的
● package定義包的語句必須作為源文件的第一條語句
● 包名的命名規(guī)則
一般使用公司域名的倒序+項目名+模塊名
com.wkcto.chapter01.package01
一般所有字母都小寫
● 如果把類定義在包中, 類會有一個完整類名
包名.類名
com.wkcto.chapter01.package01.Demo01
● 使用java運行程序時, 如果是完整類名,系統(tǒng)會在當(dāng)前目錄中依次查找與包名對應(yīng)的文件夾, 即在當(dāng)前目錄中查找 com/wkcto/chapter01/package01文件夾, 在該文件夾中查找Demo01.class字節(jié)碼文件
● 把類定義在包中之后,編譯時,可以通過-d參數(shù)指定字節(jié)碼存儲的位置,如:javac -d . Test01.java 小點代表是當(dāng)前目錄
package com.bjpowernode.chapter0101.p1;
/**
* 1) 使用package關(guān)鍵字定義了一個包, 包名命名規(guī)則: 公司域名.項目名.子模塊名
* 2) Demo01類的完整類名 : com.bjpowernode.chapter0101.p1.Demo01
* 3) 編譯時, 通過-d參數(shù)指定生成字節(jié)碼的存儲位置
javac -d . Demo01.java
系統(tǒng)會在當(dāng)前目錄中依次創(chuàng)建與包名對應(yīng)的文件夾
4) 運行程序時, 使用完整類名
java com.bjpowernode.chapter0101.p1.Demo01
系統(tǒng)會在當(dāng)前目錄中依次查找與包名對應(yīng)的文件夾, 在該文件夾中查找字節(jié)碼文件
*/
class Demo01 {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
使用其他包中的類
在a包中想要使用b包中的類, 前提b包中的類必須定義為公共類
在使用時,可以通過兩種方式:
● 直接使用完整類名
● 先通過import導(dǎo)入該類,再使用
package com.bjpowernode.chapter0101.p2;
/*
* 在p2包中, 想調(diào)用p3包中的MyClass類的靜態(tài)方法
1) 使用前提是, 被使用的MyClass類必須定義為public公共類
2) 在使用時, 可以直接使用完整類名 , 也可以先導(dǎo)入再使用
*/
import com.bjpowernode.chapter0101.p3.MyClass;
class Demo02 {
public static void main(String[] args) {
System.out.println("調(diào)用p3包中的MyClass類的靜態(tài)方法!");
//可以使用完整類名訪問一個類
com.bjpowernode.chapter0101.p3.MyClass.mm();
//還可以先把類導(dǎo)入到當(dāng)前文件中,再使用
MyClass.mm();
}
}
package com.bjpowernode.chapter0101.p3;
public class MyClass{
public static void mm() {
System.out.println("我是p3包中 MyClass類的靜態(tài)方法mm!");
}
}