这个java代码应该可以工作,但它会出错:
no main classes found.
我知道没有专门的“公共静态无效主”课程,但我不需要一个,对吗?我正在使用NetBeans IDE。
public enum Face
{
TWO(2),
THREE(3),
FOUR(4),
FIVE(5),
SIX(6),
SEVEN(7),
EIGHT(8),
NINE(9),
TEN(10),
JACK(11),
QUEEN(12),
KING(13),
ACE(14);
private int cardValue;
private Face (int value)
{
this.cardValue = value;
}
public int getCardValue() {
return cardValue;
}
}
public enum Suit
{
HEARTS,
SPADES,
CLUBS,
DIAMONDS;
}
public class Card
{
private Suit suit;
private Face cardValue;
public Card (Face cardValue, Suit suit)
{
this.cardValue = cardValue;
this.suit = suit;
}
public Suit getSuit()
{
return suit;
}
public void setSuit(Suit suit)
{
this.suit = suit;
}
public Face getCardValue()
{
return cardValue;
}
public void setCardValue(Face cardValue)
{
this.cardValue = cardValue;
}
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
public class DeckofCards
{
private ArrayList<Card> deck;
public DeckofCards ()
{
this.deck = new ArrayList<>();
for (int i=0; i<13; i++)
{
Face value = Face.values()[i];
for (int j=0; j<4; j++)
{
Card card = new Card(value, Suit.values()[j]);
this.deck.add(card);
}
}
Collections.shuffle(deck);
Iterator<Card> cardIterator = deck.iterator();
while (cardIterator.hasNext())
{
Card aCard = cardIterator.next();
System.out.println(aCard.getCardValue() + " of " + aCard.getSuit());
}
}
}
答案 0 :(得分:6)
您需要main
才能运行此代码。它会编译,但是在添加main
之前你将无法运行它,因为JVM不知道在哪里“开始”运行你的代码。
答案 1 :(得分:2)
经过一些检查后,您似乎想在DeckOfCards()
构造函数中运行代码。
坚持使用以下代码,它将按预期运行:
public class DeckRunner {
public static void main(String[] args) {
new DeckOfCards();
}
}
作为旁注,你不应该在构造函数中做有副作用的东西。我将取出以下代码并将其放在main方法中(在创建合适的访问器方法之后):
Iterator<Card> cardIterator = deck.iterator();
while (cardIterator.hasNext())
{
Card aCard = cardIterator.next();
System.out.println(aCard.getCardValue() + " of " + aCard.getSuit());
}
答案 2 :(得分:0)
无论您使用什么NetBeans IDE或Eclipse IDE,您都必须知道所有Java应用程序都需要main()才能运行。有时你可能找不到主要的,正如你所说的Netbeans。可能你使用了一些隐藏main()的框架。