10.Java命名空間

轉載請保留原文鏈接: 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變量詳細介紹

Java變量

this.變量名,表示引用的是成員變量.默認也可以省略this.例:

public String setName(String name){
    //將傳入的`局部變量name`值賦給`成員變量name`.
    return this.name = name;}

Java對象詳細介紹

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.

④ 相關文章

 Java從入門到精通目錄


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章