首頁  >  文章  >  我是否需要為清單中的所有物件提供唯一的名稱?

我是否需要為清單中的所有物件提供唯一的名稱?

王林
王林轉載
2024-02-08 21:30:25646瀏覽

在程式設計中,我們經常會遇到需要為清單中的物件提供唯一的名稱的情況。但是,是否真的需要為每個物件提供一個唯一的名稱呢? php小編草莓告訴你,答案不是絕對的。在某些情況下,為物件提供唯一的名稱可以更好地組織和管理程式碼,特別是在需要對物件進行引用或區分的情況下。然而,在其他情況下,物件可能沒有必要具有唯一的名稱,可以透過其他方式進行識別和操作。因此,是否需要為清單中的所有物件提供唯一的名稱取決於特定的需求和設計。

問題內容

我是一年級電腦科學學生。作為我的 java 課作業的一部分。我需要建立一個牌組類,它是包含 card 物件的 arraylist

這是我編碼的卡片物件的範例:

public class Card
{
    // instance variables 
    private int face;
    private int suit;

    /**
     * Constructor for objects of class Card.
     * Note: Hearts = 1, Diamonds = 2,
     * Spades = 3, Clubs = 4
     * 
     * All face cards equal their common value
     * Ex. A = 1
     */

    public Card(int face, int suit)
    {
        // initialize instance variables
        this.face = face;
        this.suit = suit;
    }
    
    public int getFace()
    {
        return face;
    }
    
    public int getSuit()
    {
        return suit;
    }
    
    public String toString()
    {
        return face + "" + suit;
    }
}

我了解如何將每張單獨的卡牌加載到標準牌組中。我只是無法理解如何為每張卡指定一個唯一的名稱。例如,如何將牌面和花色顯示在螢幕上,以便玩家可以看到手中的牌? (我們還應該創建一個類,其中包含玩家手中的牌列表。)

如果我創建一個卡片物件列表,我是否可以透過某種方式引用它們所在的插槽來呼叫它們各自的方法?我該怎麼做呢?如果我將它們從牌組移到手牌上,情況會改變嗎?

通常,當您對物件使用方法時,您會使用名稱建立物件(比方說,card1)。然後,要呼叫使用該卡片資料的方法,如果我想返回花色值,您會說 card1.getsuit() 。但我不知道在列表中創建許多物件時如何做到這一點。

我覺得我的大腦可能把事情變得過於複雜了,但我認為無論如何更好地理解 java 的不同角度會更好,所以我喜歡問這類問題。感謝任何可以提供幫助的人!

注意:我剛開始第二學期的 java 課程,所以我們所學到的最遠的可能就像繼承一樣。我們不期望/不應該了解諸如枚舉、常量列表或我猜的任何更複雜的東西。我聽說我們會做很多 javafx。

解決方法

不,您可以將物件的參考儲存在清單中,而不是建立具有不同名稱的單獨物件。

List<Object> ls = new ArrayList<>();
 //for adding obj into it 
ls.add(new Card(face,suit));
 //for getting data
ls.get(index).getFace();

透過這種方式,您可以在清單中新增許多對象,而不用給出不同的名稱。

human 視為一個類,每個人都是該類別的一個實例。所有人類都需要有獨特的名字嗎?你認識多少個「喬」或「艾倫」?一個人只能有一個名字還是可以有多個名字? (我媽媽叫我...,但我的朋友叫我...)

名稱用於引用人類,就像指標可以引用物件一樣。

但請注意:如果 java 沒有發現對某個物件的參考且該物件不存在(即沒有執行緒在其中運行),則該物件將被垃圾收集並丟棄。

以上是我是否需要為清單中的所有物件提供唯一的名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除