让这个代码在 main 方法中作为它自己的类独立存在是不是正确? [关闭]
Posted
技术标签:
【中文标题】让这个代码在 main 方法中作为它自己的类独立存在是不是正确? [关闭]【英文标题】:Is it correct to have this code in the main method stand alone as it's own class? [closed]让这个代码在 main 方法中作为它自己的类独立存在是否正确? [关闭] 【发布时间】:2014-08-23 23:32:17 【问题描述】:I'm taking this Java class online 并且其中一个问题要求用户测试扑克牌和套牌类。
我在 Deck 类的 main 方法中编写代码,但因为需要帮助而偷看了答案。本教程包含一个名为 DisplayDeck 的新类的 main 方法中的代码。
让 DisplayDeck 作为自己的类独立存在是否有意义?
public class DisplayDeck
public static void main(String[] args)
Deck deck = new Deck();
for (int suit = Card.DIAMONDS; suit <= Card.SPADES; suit++)
for (int rank = Card.ACE; rank <= Card.KING; rank++)
Card card = deck.getCard(suit, rank);
System.out.format("%s of %s%n",
card.rankToString(card.getRank()),
card.suitToString(card.getSuit()));
【问题讨论】:
你反对它的理由是什么? 答案取决于。如果您的程序 1- 小而 2- 本身并没有定义您将来可能希望扩展的功能,那么它应该是一个问题。您的程序变得越复杂,您就越想摆脱main
方法并允许其他类接管 - 恕我直言。根据您的描述,Deck
具有特定用途,将来重新使用它可能会很有用。在这种情况下拥有一个单独的 main
类可能不是一个坏主意
由于这是来自指导教程,因此教程的开发人员选择以这种方式进行操作可能是出于教学原因,当您在教程中进一步学习时会变得很明显。
当他们说“创建一副纸牌并展示它的纸牌”时,这听起来像是属于 Deck 类的逻辑。我看不出 DisplayDeck 可以如何用作对象。
只是夸夸其谈。如果 DisplayDeck 类所做的只是显示一个卡片组,那么它可能看起来无关紧要。但是,如果 DisplayDeck 类被扩展成一个 Dealer 类,它具有展示牌组的特征和行为,但还不止于此,比如收集赌注、支付赢家等呢?我认为本教程试图让您轻松进入 OO,如果您熟悉其他语言的 OO,可能会觉得很奇怪。
【参考方案1】:
在 Java 中,一切都需要在一个类中。当你“运行”一个程序时,你告诉 Java 加载一个类并调用它的main()
方法。
在这种情况下,程序唯一要做的就是显示卡片组,因此虽然使用 display()
方法创建 Deck
类在概念上更清晰,但对于目前的目的来说可能是无关紧要的。
将DisplayDeck
视为一个类,它代表的不是一副纸牌,而是程序本身——这个吐出文本并假装显示一副纸牌的小程序。 Java教学代码经常有这样的情况,e.g. HelloWorld
类。什么是HelloWorld
?我不知道,但你必须有一个才能打招呼(即加载类并调用其main()
方法)。
【讨论】:
以上是关于让这个代码在 main 方法中作为它自己的类独立存在是不是正确? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章