我正在尝试为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。
我希望这有帮助..祝您编码愉快!