不能从静态上下文中引用非静态变量 deck
non-static variable deck cannot be referenced from a static context
我收到错误消息,无法从这段代码的静态上下文中引用非静态变量甲板。我想了解那里出了什么问题。我是 java 的新手。
public class CardDeck extends java.lang.Object
{
private int size;
private Stack<Card> deck;
public CardDeck(int size)
{
this.deck = new Stack<Card>();
this.size = size;
}
public static CardDeck createStandardDeck()
{
for (int i = 1; i <= 13; i++) { deck.push(new Card(Card.Color.CLUBS,i)); }
for (int i = 1; i <= 13; i++) { deck.push(new Card(Card.Color.DIAMONDS,i)); }
for (int i = 1; i <= 13; i++) { deck.push(new Card(Card.Color.HEARTS,i)); }
for (int i = 1; i <= 13; i++) { deck.push(new Card(Card.Color.SPADES,i)); }
return deck;
}
改变你的方法如下:
public static CardDeck createStandardDeck() {
CardDeck myDeck = new CardDeck(13*4);
for (int i = 1; i <= 13; i++) { myDeck.deck.push(new Card(Card.Color.CLUBS,i)); }
for (int i = 1; i <= 13; i++) { myDeck.deck.push(new Card(Card.Color.DIAMONDS,i)); }
for (int i = 1; i <= 13; i++) { myDeck.deck.push(new Card(Card.Color.HEARTS,i)); }
for (int i = 1; i <= 13; i++) { myDeck.deck.push(new Card(Card.Color.SPADES,i)); }
return myDeck;
}
我收到错误消息,无法从这段代码的静态上下文中引用非静态变量甲板。我想了解那里出了什么问题。我是 java 的新手。
public class CardDeck extends java.lang.Object
{
private int size;
private Stack<Card> deck;
public CardDeck(int size)
{
this.deck = new Stack<Card>();
this.size = size;
}
public static CardDeck createStandardDeck()
{
for (int i = 1; i <= 13; i++) { deck.push(new Card(Card.Color.CLUBS,i)); }
for (int i = 1; i <= 13; i++) { deck.push(new Card(Card.Color.DIAMONDS,i)); }
for (int i = 1; i <= 13; i++) { deck.push(new Card(Card.Color.HEARTS,i)); }
for (int i = 1; i <= 13; i++) { deck.push(new Card(Card.Color.SPADES,i)); }
return deck;
}
改变你的方法如下:
public static CardDeck createStandardDeck() {
CardDeck myDeck = new CardDeck(13*4);
for (int i = 1; i <= 13; i++) { myDeck.deck.push(new Card(Card.Color.CLUBS,i)); }
for (int i = 1; i <= 13; i++) { myDeck.deck.push(new Card(Card.Color.DIAMONDS,i)); }
for (int i = 1; i <= 13; i++) { myDeck.deck.push(new Card(Card.Color.HEARTS,i)); }
for (int i = 1; i <= 13; i++) { myDeck.deck.push(new Card(Card.Color.SPADES,i)); }
return myDeck;
}