Rumah  >  Artikel  >  Adakah saya perlu memberikan nama unik untuk semua objek dalam senarai?

Adakah saya perlu memberikan nama unik untuk semua objek dalam senarai?

王林
王林ke hadapan
2024-02-08 21:30:25646semak imbas

Dalam pengaturcaraan, kami sering menghadapi situasi di mana kami perlu memberikan nama unik untuk objek dalam senarai. Tetapi adakah ia benar-benar perlu untuk memberikan setiap objek nama yang unik? Editor PHP Strawberry memberitahu anda bahawa jawapannya tidak mutlak. Dalam sesetengah kes, memberi objek nama unik boleh mengatur dan mengurus kod anda dengan lebih baik, terutamanya jika objek perlu dirujuk atau dibezakan. Walau bagaimanapun, dalam kes lain, objek mungkin tidak perlu mempunyai nama unik dan boleh dikenal pasti dan dimanipulasi dengan cara lain. Oleh itu, sama ada anda perlu memberikan nama unik untuk semua objek dalam senarai bergantung pada keperluan dan reka bentuk khusus anda.

Kandungan soalan

Saya pelajar tahun satu sains komputer. Sebagai sebahagian daripada tugasan kelas java saya. Saya perlu mencipta kelas dek yang arraylist mengandungi objek kad.

Berikut ialah contoh objek kad yang saya kodkan:

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;
    }
}

Saya faham cara memuatkan setiap kad individu ke dalam dek standard. Saya tidak dapat memikirkan cara untuk memberikan setiap kad nama yang unik. Sebagai contoh, bagaimanakah anda memaparkan kad dan sut pada skrin supaya pemain dapat melihat kad di tangan mereka? (Kita juga harus membuat kelas yang mengandungi senarai kad di tangan pemain.)

Jika saya membuat senarai objek kad, bolehkah saya merujuk slot yang mereka ada untuk memanggil kaedah masing-masing? Apa yang patut saya buat? Adakah keadaan akan berubah jika saya memindahkannya dari dek ke tangan saya?

Biasanya, apabila anda menggunakan kaedah pada objek, anda mencipta objek dengan nama (katakan, kad1). Kemudian, untuk memanggil kaedah yang menggunakan data kad itu, jika saya ingin mengembalikan nilai saman, anda akan berkata card1.getsuit() . Tetapi saya tidak tahu bagaimana untuk melakukan ini apabila mencipta banyak objek dalam senarai.

Saya rasa otak saya mungkin terlalu merumitkan perkara, tetapi saya fikir adalah lebih baik untuk memahami perspektif java yang berbeza dengan lebih baik, jadi saya suka bertanya soalan seperti ini. Terima kasih kepada sesiapa yang boleh membantu!

Nota: Saya baru sahaja memulakan semester kedua kelas java, jadi mungkin yang paling jauh yang kami pelajari adalah seperti warisan. Kami tidak dijangka/tidak sepatutnya tahu tentang perkara seperti enum, senarai tetap, atau apa-apa yang lebih kompleks saya rasa. Saya dengar kami banyak melakukan javafx.

Penyelesaian

Tidak, anda boleh menyimpan rujukan objek dalam senarai dan bukannya mencipta objek berasingan dengan nama yang berbeza.

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

Dengan cara ini anda boleh menambah banyak objek pada senarai tanpa memberi mereka nama yang berbeza.

Fikirkan human sebagai kelas dan semua orang adalah contoh kelas itu. Adakah semua manusia perlu mempunyai nama yang unik? Berapa ramai "Joes" atau "Ellens" yang anda kenali? Bolehkah seseorang mempunyai satu nama sahaja atau bolehkah dia mempunyai beberapa nama? (Ibu saya panggil saya..., tapi kawan saya panggil saya...)

Nama digunakan untuk merujuk kepada manusia, sama seperti penunjuk boleh merujuk kepada objek.

Tetapi sila ambil perhatian: Jika java tidak menemui rujukan kepada objek dan objek itu tidak wujud (iaitu tiada benang berjalan di dalamnya), objek itu akan menjadi sampah yang dikumpul dan dibuang.

Atas ialah kandungan terperinci Adakah saya perlu memberikan nama unik untuk semua objek dalam senarai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam