首页  >  文章  >  我是否需要为列表中的所有对象提供唯一的名称?

我是否需要为列表中的所有对象提供唯一的名称?

王林
王林转载
2024-02-08 21:30:25619浏览

在编程中,我们经常会遇到需要为列表中的对象提供唯一的名称的情况。但是,是否真的需要为每个对象都提供唯一的名称呢?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删除