如何在众多对象中维护相同的 ArrayList 副本



我正在尝试为Java中的纸牌游戏创建一个简单的程序。为了模拟一副牌,我计划有一个ArrayList来握住牌,以确保没有牌重复。我想在多个类中使用这个ArrayList,但不知道是否可以这样做。我知道我可以通过让每个类将变量发送回主类并在那里编辑ArrayList来解决此问题,但想知道是否可以简单地全局声明列表以便于访问。

OOP 的主要思想是保持对象的属性私有,因此没有人可以直接从外部访问它们。在这里你可以做什么,如上面的评论中所述,你可以使用列表将卡片列表作为参数传递给方法或类。由于Java是OOP语言,我不会公开声明。

是的。您需要将其公开静态并在可见类中。喜欢这个:

public class Main{
    public static ArrayList<Card> cards = new ArrayList<Card>();
}

然后,您可以通过以下方式访问它:

Main.cards.add(new Card());

做这样的事情:

public class Card{
public static ArrayList list;
(...)
}

然后在您的主代码中:

Card cards = new Card();

通过键入调用它

cards.list();

。但想知道是否可以简单地在全球范围内声明列表以便于访问。

答案是肯定的!这就是static关键字的用途。如果将 ArrayList 设为静态,则无论创建的对象数量如何,都只有一个 ArrayList 副本。您可以按如下所示编写代码:

public class Card{
  public static ArrayList<Card> list = new ArrayList<>();
  //The rest of your code: methods, interfaces, etc.
}

这样,即使您创建了类 Card 的多个对象,也只需要担心一个 ArrayList。

我希望这有帮助..祝您编码愉快!

相关内容

  • 没有找到相关文章

最新更新