轉載請保留原文鏈接: http://dashidan.com/article/java/basic/10.html
10.Java命名空間
`class`是Java的一個關鍵字,用來標識這是一個`類`文件.這個類文件相當於是`對象模板`.通過創建(`new`)對象模板(`class`)的方式創建一個對象(`Object`).這就是Java面向對象編程的基礎.`new`是Java在內存(`堆`)中`創建對象`的關鍵字.`Object`是java中所有對象的基礎類, 每個對象是繼承自Object類. 默認系統會隱式設定這個關係.
示例:
public class Demo1 { ...}
等同於
public class Demo1 extends Object{ ...}
① Java對象是什麼
編程中對象相當於現實生活中的物體的概念.
以狗爲例:狗屬於脊索動物門、脊椎動物亞門、哺乳綱、真獸亞綱、食肉目、裂腳亞目、犬科動物.這個屬於狗的屬性描述,相當於Java中class
文件的概念.
你家有一隻泰迪犬,名字叫泰日天.隔壁老王有隻哈士奇,名字叫哈拆遷.每隻狗相當於java中對象
的概念,擁有狗
的屬性, 是個唯一的個體(object
),擁有自己的屬性-名字.你可以給它們起名,並且可以知道它們叫什麼名.
示例代碼:
Dog
類:
package com.dashidan.lesson9;/** * 大屎蛋教程網-dashidan.com * <p> * Java教程基礎篇: 9. Java對象與命名空間 * Dog 類 */public class Dog { String name; public String setName(String name) { return this.name = name; } public String getName() { return this.name; }}
Demo1
類:
package com.dashidan.lesson9;/** * 大屎蛋教程網-dashidan.com * <p> * Java教程基礎篇: 9. Java對象與命名空間 */public class Demo1 { public static void main(String[] args) { Dog dog0 = new Dog(); dog0.setName("泰日天"); Dog dog1 = new Dog(); dog1.setName("哈拆遷"); System.out.println(dog0.getName()); System.out.println(dog1.getName()); }}
輸出:
泰日天 哈拆遷
② this
關鍵字
this
表示當前對象的引用. 當方法參數中傳入的參數名(局部變量名
)和成員變量名重複時, 需要區別引用的是成員變量, 還是局部變量.
Java變量詳細介紹
this.變量名
,表示引用的是成員變量
.默認也可以省略this
.例:
public String setName(String name){ //將傳入的`局部變量name`值賦給`成員變量name`. return this.name = name;}
Java對象詳細介紹
③ Java命名空間
Java使用包(package
)這種機制是爲了防止命名衝突. 可以簡單理解爲文件目錄, 將一類功能的代碼放在同一個目錄中. 爲了確保同樣名字的源碼文件不衝突, 用包名來控制命名空間. 爲了確保包名的唯一性, 一般用網站域名的倒敘作爲包名. 包名中的.
表示目錄的層級.
1.package
關鍵字
包聲明應該在源文件的第一行
,每個源文件只能有一個包聲明,這個文件中的每個類型都應用於它. 如果一個源文件中沒有使用包聲明,那麼其中的類,函數,枚舉,註釋等將被放在一個無名的包(unnamed package)中.由於包創建了新的命名空間(namespace),所以不會跟其他包中的任何名字產生命名衝突.
使用包這種機制,更容易實現訪問控制,並且讓定位相關類更加簡單.
比如本網站的教程代碼,將課程域名倒敘+課程編號定義爲包名,很方便就將源碼和課程對應上.
package com.dashidan.lesson21;...
2.import
關鍵字
爲了能夠使用某一個包的成員,我們需要在Java程序中明確導入該包. 使用import
語句可完成此功能. 在java源文件中import
語句應位於package
語句之後,所有類的定義之前,可以沒有,也可以有多條.
語法格式爲:
import package1[.package2…].(classname|*);
包名省略
如果在一個包中,一個類使用本包中的另一個類,那麼該包名可以省略.
示例代碼:
package com.dashidan.lesson9;import com.dashidan.basic.test.TestPackage;/** * 大屎蛋教程網-dashidan.com * <p> * Java教程基礎篇: 9. Java對象與命名空間 * Java命名空間 */public class Demo2 { public static void main(String[] args) { TestPackage testPackage = new TestPackage(); testPackage.printInfo(); }}
TestPackage類:
package com.dashidan.test;/** * 大屎蛋教程網-dashidan.com * <p> * Java教程基礎篇: 9. Java對象與命名空間 * Java命名空間 */public class TestPackage { public void printInfo() { System.out.println("printInfo in TestPackage."); }}
輸出:
printInfo in TestPackage.
④ 相關文章