類和對象系列教材 (一)- 什麼是Java中的引用?

類和對象系列教材 (一)- 什麼是Java中的引用?

更多詳細內容請點擊這裏,註冊獲取

引用的概念,如果一個變量的類型是 類類型,而非基本類型,那麼該變量又叫做引用。

步驟1:引用和指向
步驟2:多個引用,一個對象
步驟3:一個引用,多個對象

步驟 1 : 引用和指向

new Hero();

代表創建了一個Hero對象
但是也僅僅是創建了一個對象,沒有辦法訪問它
爲了訪問這個對象,會使用引用來代表這個對象

Hero h = new Hero();

h這個變量是Hero類型,又叫做引用
=的意思指的h這個引用代表右側創建的對象
“代表” 在面向對象裏,又叫做“指向”
在這裏插入圖片描述

public class Hero {
    String name; //姓名
    float hp; //血量
    float armor; //護甲
    int moveSpeed; //移動速度
    public static void main(String[] args) {
        //創建一個對象
        new Hero();
        //使用一個引用來指向這個對象
        Hero h = new Hero();
    }  
}

步驟 2 : 多個引用,一個對象

引用有多個,但是對象只有一個。
在這個例子裏,所有引用都指向了同一個對象。
對象就像 “房產”, 引用就像"房產證"
房產證的複印件可以有多張,但是真正的"房產" 只有這麼一處
**多個引用,一個對象**

public class Hero {
    String name; //姓名
    float hp; //血量
    float armor; //護甲
    int moveSpeed; //移動速度
    public static void main(String[] args) {
        //使用一個引用來指向這個對象
        Hero h1 = new Hero();
        Hero h2 = h1;  //h2指向h1所指向的對象
        Hero h3 = h1;
        Hero h4 = h1;
        Hero h5 = h4;
        //h1,h2,h3,h4,h5 五個引用,都指向同一個對象
    }  
}

步驟 3 : 一個引用,多個對象

第8行,引用garen指向新創建的對象(對象1)
第9行,同一個引用garen指向新創建的對象(對象2)
這個時候,對象1,就沒有任何引用指向了
換句話說,就沒有任何手段控制和訪問該對象,那麼該對象就變得沒有意義。
一個引用,多個對象

package charactor;
public class Hero {
    public String name;
    protected float hp;
    public static void main(String[] args) {
           Hero garen =  new Hero();
           garen =  new Hero();
    }
}

更多詳細內容請點擊這裏

發佈了32 篇原創文章 · 獲贊 206 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章