Heim  >  Artikel  >  Muss ich für alle Objekte in der Liste eindeutige Namen angeben?

Muss ich für alle Objekte in der Liste eindeutige Namen angeben?

王林
王林nach vorne
2024-02-08 21:30:25646Durchsuche

Beim Programmieren stoßen wir oft auf Situationen, in denen wir eindeutige Namen für Objekte in einer Liste angeben müssen. Aber ist es wirklich notwendig, jedem Objekt einen eindeutigen Namen zu geben? Der PHP-Editor Strawberry sagt Ihnen, dass die Antwort nicht absolut ist. In manchen Fällen können Sie Ihren Code besser organisieren und verwalten, wenn Sie Objekten eindeutige Namen geben, insbesondere wenn die Objekte referenziert oder unterschieden werden müssen. In anderen Fällen ist es jedoch möglicherweise nicht erforderlich, dass das Objekt einen eindeutigen Namen hat und auf andere Weise identifiziert und manipuliert werden kann. Ob Sie für alle Objekte in der Liste eindeutige Namen angeben müssen, hängt daher von Ihren spezifischen Anforderungen und Ihrem Design ab.

Frageninhalt

Ich bin Informatikstudent im ersten Jahr. Als Teil meiner Java-Klassenaufgabe. Ich muss eine Deckklasse erstellen, die Kartenobjekte enthält. arraylist

Hier ist ein Beispiel für das Kartenobjekt, das ich codiert habe:

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

Ich verstehe, wie man jede einzelne Karte in ein Standarddeck lädt. Ich kann einfach nicht herausfinden, wie ich jeder Karte einen eindeutigen Namen geben kann. Wie werden beispielsweise die Karten und Farben auf dem Bildschirm angezeigt, damit die Spieler die Karten in ihren Händen sehen können? (Wir sollten auch eine Klasse erstellen, die die Liste der Karten in der Hand des Spielers enthält.)

Wenn ich eine Liste von Kartenobjekten erstelle, kann ich dann irgendwie auf den Steckplatz verweisen, in dem sie sich befinden, um ihre jeweiligen Methoden aufzurufen? Was soll ich machen? Werden sich die Dinge ändern, wenn ich sie vom Stapel auf meine Hand bewege?

Wenn Sie Methoden für Objekte verwenden, erstellen Sie normalerweise das Objekt mit einem Namen (z. B. Karte1). Um dann eine Methode aufzurufen, die diese Kartendaten verwendet, würde ich, wenn ich den Farbwert zurückgeben wollte,

sagen. Aber ich weiß nicht, wie ich das machen soll, wenn ich viele Objekte in der Liste erstelle. card1.getsuit()

Ich habe das Gefühl, dass mein Gehirn die Dinge vielleicht zu kompliziert macht, aber ich denke, es wäre sowieso besser, die verschiedenen Perspektiven von Java besser zu verstehen, deshalb stelle ich gerne solche Fragen. Vielen Dank an alle, die helfen können!

Hinweis: Ich habe gerade mit meinem zweiten Semester Java-Unterricht begonnen, daher ist das weiteste, was wir gelernt haben, wahrscheinlich so etwas wie Vererbung. Von uns wird nicht erwartet/sollten wir nichts über Dinge wie Aufzählungen, Konstantenlisten oder etwas Komplexeres wissen, denke ich. Ich habe gehört, dass wir viel JavaFX machen werden.

Workaround

Nein, Sie können die Referenz des Objekts in einer Liste speichern, anstatt separate Objekte mit unterschiedlichen Namen zu erstellen.

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

Auf diese Weise können Sie viele Objekte zur Liste hinzufügen, ohne ihnen unterschiedliche Namen zu geben.

Stellen Sie sich

als eine Klasse vor und jeder ist eine Instanz dieser Klasse. Müssen alle Menschen eindeutige Namen haben? Wie viele „Joes“ oder „Ellens“ kennen Sie? Kann eine Person nur einen Namen haben oder kann sie mehrere Namen haben? (Meine Mutter ruft mich an..., aber meine Freunde nennen mich...) human

Namen werden verwendet, um auf Menschen zu verweisen, genau wie Zeiger auf Objekte verweisen können.

Aber bitte beachten Sie: Wenn Java keine Referenz auf ein Objekt findet und das Objekt nicht existiert (d. h. kein Thread darin läuft), wird das Objekt durch Müll gesammelt und verworfen.

Das obige ist der detaillierte Inhalt vonMuss ich für alle Objekte in der Liste eindeutige Namen angeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen