1 package 和 import
2.1 package
第一:package出現在java源文件第一行。
第二:帶有包名怎么編譯? javac -d . xxx.java
第三:怎么運行:java完整類名
2.2 import
import什么時候不需要?
java.lang不需要。
同包下不需要。
其他一律都需要
怎么用?
import 完整類名
import 包名.*
案例1:為什么要用package?和用cmd命令時該如何去編譯和運行這個包下類的命令(注意觀察包的路徑)
/* * 1 為什么要是用package? * package是java包機制。包機制的作用是為了方便程序管理。 * 不同功能的類分別存放在不同的包下。(按照功能划分的,不同的軟件包具有不同的功能) * * 2 package怎么用? * package是一個關鍵字,后面加包名。例如: * package com.javaSe.interface * 注意:package語句只允許出現在java源代碼的第一行 * * 3 包名有沒有命名規范?有 * 一般都采用公司域名倒序的方式(因為公司的域名具有全球唯一性) * 包名命名規范: * 公司域名倒序 + 項目名 + 模塊名 + 功能名 * * 4 對於帶有package的java程序怎么編譯?怎么運行? * 采用之前的編譯和運行不行了 * 類名不再是:HelloWorld了 * 類名是:com.javaSe.package.HelloWorld * 編譯: * javac -d . HelloWorld.java * 解釋一下: * javac 負責編譯的命令 * -d 帶包編譯 * . 代表編譯之后生成的東西放到當前目錄下(點代表當前目錄) * HelloWorld.java 被編譯的java文件名 * 運行: * java com.javaSe.package.HelloWorld * * 5 關於import的使用。 * import什么時候用: * A類中使用B類 * A類和B類都在同一個包下。不需要使用import * A類和B類不在同一個包下。需要使用import * java.lang.*;這個包下的類不需要使用import導入。 * * import怎么用? * import語句只能出現在package語句之下,class聲明之上。 * import可以使用*號的方式。 * */ // 這里是不是程序的第一行?是的,注釋不算 package com.javaSe.packege; public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); } }
測試1:注意看包的路徑
package com.javaSe.packege; public class Test01 { public static void main(String[] args) { //創建HelloWorld對象 com.javaSe.packege.HelloWorld helloWorld = new HelloWorld(); System.out.println(helloWorld);//com.javaSe.packege.HelloWorld@10f87f48 // 包名可以省略嗎? // 思考:這里的包名之所以可以省略,是因為HelloWorld和Test01在同一個package下。 HelloWorld helloWorld1 = new HelloWorld(); System.out.println(helloWorld1);//com.javaSe.packege.HelloWorld@b4c966a } }
測試2:注意看包的路徑
package com; // 將需要的類導入。 //import com.javaSe.packege.HelloWorld; import com.javaSe.packege.*; public class Test02 { public static void main(String[] args) { /* * Error:(4, 9) java: 找不到符號 符號: 類 HelloWorld 位置: 類 com.Test02 * */ //HelloWorld helloWorld = new HelloWorld(); /*com.javaSe.packege.HelloWorld helloWorld = new com.javaSe.packege.HelloWorld(); System.out.println(helloWorld);// com.javaSe.packege.HelloWorld@10f87f48*/ //注意看我上面的import,只有我把 HelloWorld helloWorld = new HelloWorld(); System.out.println(helloWorld);//com.javaSe.packege.HelloWorld@10f87f48 } }
測試3:Scanner該如何導包以及導包該有的方式
package com.javaSe.packege; // 你寫哪種都可以 //import java.util.Scanner; import java.util.*; public class Test03 { public static void main(String[] args) { // 為什么要這樣寫? // Test03類和Scanner類不在同一個包下。 // java.util就是Scanner類的包名。 // java.util.Scanner s = new java.util.Scanner(System.in); // 但是你把Scanner的包導入到你的這個類中的話,那么你用可以不用再寫他的包名了。 Scanner s = new Scanner(System.in); String str = s.next(); System.out.println("您輸入的字符串是:" + str); java.lang.String name = "zhangSan"; System.out.println("名字是:" + name); String userName = "liSi"; System.out.println("用戶名是:" + userName); } }