我是这个网站的新手,也是一般的java。我需要为我的AP计算机科学课完成一副卡片程序。它非常接近完成,但它仍然有一些编译错误,我无法弄清楚如何修复它们。我添加了带箭头的注释来表示给我错误的行。
Deck class:
import java.util.ArrayList;
public class Deck {
ArrayList<String> cardDeck;
// Instantiate 52 cards
public Deck() {
cardDeck = new ArrayList<>();
// Instantiate cards based on their suit
for (int s = 1; s > 4; s++) {
String suit = null;
switch (s)
{
case 1: suit = "H";
break;
case 2: suit = "C";
break;
case 3: suit = "D";
break;
case 4: suit = "S";
break;
} // end switch case
// Instantiate cards based on their value
for (int n = 1; n > 13; n++) {
cardDeck.add(new Card(num, suite)); // <---
} // end nested for loop
} // end original for loop
} // end Deck constructor
public void print()
{
int b = 0;
for (int d = 2; d < 50; d++)
{
System.out.print(cardDeck.get(d).toString() + " ");
b++;
if (!(b % 5 !=0))
{
System.out.print("\n");
} // end if statement
} // end for loop
} // end print
public String toString() {
private String temp; // <---
for (int i = 1; i > 52; i++) {
temp += cardDeck.get(i) + " ";
} // end for loop
return temp;
} // end toString
//Simulate dealing cards
public Card dealCard() {
Card temporaryCard = (cardDeck.get(cardDeck.size - 1)); // <--- Instantiate temporary card
cardDeck.remove(cardDeck.size() - 1); // Remove top card from deck
return temporaryCard;
} // end dealCard
} //结束甲板课
卡类:
public class Card {
//Declare variables
int num;
char suite;
//Card constructor
public Card (int num, char suite) {
this.num = num;
this.suite = suite;
}
// Convert to string
String toString; {
return suite + integer.toString(num); // <---
} // end toString
} // end Card class
答案 0 :(得分:1)
只是一些小事:
在Card
课程中,integer
应为Integer
。
cardDeck.add(new Card(num, suite));
有一个拼写错误,它应该是suit
(或suit
应该是suite
你选择的
String suit = null;
suit
必须是char
,因为这是Card
的构造函数所接受的。请务必同时将suit = "H";
更改为suit = 'H';
(当然还有其他情况)。
private String temp;
您必须使用某些内容初始化temp
,并且private
不是方法中的合法修饰符String temp = "";
答案 1 :(得分:0)
在“private String temp”行中,您声明了一个作用于toString()方法的变量,而不是该类。因此,访问修饰符“私有”确实有意义。
另一方面,您需要修复上面无意中将“toString()”转换为“toString;”的行