Maison  >  Article  >  Dois-je fournir des noms uniques pour tous les objets de la liste ?

Dois-je fournir des noms uniques pour tous les objets de la liste ?

王林
王林avant
2024-02-08 21:30:25620parcourir

En programmation, nous rencontrons souvent des situations où nous devons fournir des noms uniques pour les objets dans une liste. Mais est-il vraiment nécessaire de donner à chaque objet un nom unique ? L'éditeur PHP Strawberry vous dit que la réponse n'est pas absolue. Dans certains cas, donner des noms uniques aux objets permet de mieux organiser et gérer votre code, surtout si les objets doivent être référencés ou distingués. Cependant, dans d’autres cas, il n’est pas nécessaire que l’objet ait un nom unique et puisse être identifié et manipulé d’autres manières. Par conséquent, la nécessité ou non de fournir des noms uniques pour tous les objets de la liste dépend de vos besoins spécifiques et de votre conception.

Contenu de la question

Je suis étudiant en première année d'informatique. Dans le cadre de mon devoir de cours Java. Je dois créer une classe de deck qui arraylist contient des objets de carte.

Voici un exemple de l'objet carte que j'ai codé :

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

Je comprends comment charger chaque carte individuelle dans un jeu standard. Je n'arrive tout simplement pas à comprendre comment donner à chaque carte un nom unique. Par exemple, comment afficher les cartes et les couleurs à l’écran pour que les joueurs puissent voir les cartes qu’ils ont en main ? (Nous devrions également créer une classe qui contient la liste des cartes en main du joueur.)

Si je crée une liste d'objets cartes, puis-je référencer d'une manière ou d'une autre l'emplacement dans lequel ils se trouvent pour appeler leurs méthodes respectives ? Que dois-je faire? Les choses changeront-elles si je les déplace du deck vers ma main ?

Normalement, lorsque vous utilisez des méthodes sur des objets, vous créez l'objet avec un nom (disons, card1). Ensuite, pour appeler une méthode qui utilise ces données de carte, si je voulais renvoyer la valeur de la combinaison, vous diriez card1.getsuit() . Mais je ne sais pas comment procéder lors de la création de nombreux objets dans la liste.

J'ai l'impression que mon cerveau complique peut-être trop les choses, mais je pense qu'il serait préférable de mieux comprendre les différents angles de Java de toute façon, donc j'aime poser ce genre de questions. Merci à tous ceux qui peuvent aider!

Remarque : je viens de commencer mon deuxième semestre de cours Java, donc ce que nous avons probablement appris le plus est probablement l'héritage. Nous ne sommes pas censés/ne devrions pas connaître des choses comme les énumérations, les listes de constantes ou quoi que ce soit de plus complexe, je suppose. J'ai entendu dire que nous ferions beaucoup de javafx.

Solution de contournement

Non, vous pouvez stocker la référence de l'objet dans une liste au lieu de créer des objets séparés avec des noms différents.

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

De cette façon, vous pouvez ajouter de nombreux objets à la liste sans leur donner des noms différents.

Considérez human comme une classe et tout le monde est une instance de cette classe. Tous les humains doivent-ils avoir des noms uniques ? Combien de « Joes » ou « Ellens » connaissez-vous ? Une personne peut-elle avoir un seul nom ou peut-elle avoir plusieurs noms ? (Ma mère m'appelle..., mais mes amis m'appellent...)

Les noms sont utilisés pour désigner des humains, tout comme les pointeurs peuvent faire référence à des objets.

Mais veuillez noter : si Java ne trouve pas de référence à un objet et que l'objet n'existe pas (c'est-à-dire qu'aucun thread n'y est exécuté), l'objet sera récupéré et supprimé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer