让这个代码在 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 方法中作为它自己的类独立存在是不是正确? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

课程作业第二题

Pygame重启?

介绍下Java程序的结构

在C#中,main方法的作用是啥,缺少main会有啥样的结果?

类加载机制-双亲委派模型

Java中的main方法