【发布时间】:2014-04-22 20:36:29
【问题描述】:
我正在使用 ArrayList 构建一个小卡片组类。我遇到的问题是,当我尝试调用我的 Deck 方法来填充列表时,我得到了一个无法找到符号。代码如下。
package deckofcards;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
class Deck{
ArrayList<String> al = new ArrayList<String>();
//test method
public void main(String[] args){
Scanner input = new Scanner(System.in);
int choice = 9;
al.Deck(); //<--Right here is the problem, it gives Cannot Find Symbol
//Symbol: method Deck() Location: variable al of type
//ArrayList<String>
while(choice != 0){
System.out.println("Shuffle - 1 Display - 2 Exit - 0:");
//didn't finish since it gave an error
}
}
private void Shuffle(){
Collections.shuffle(al);
}
private void Deck(){
al.add(0, "Ace of Spades");
al.add(1, "Two of Spades");
al.add(2, "Three of Spades");
//yadaa yadaa yadaa
我根本不知道如何正确调用列表中的方法。有谁知道我做错了什么?
注意:这是一个辅助类文件,包的主类文件将只包含主要的测试方法。
【问题讨论】:
-
是的。
Deck不是ArrayList的方法,它是Deck的方法(顺便说一句,类和方法的同名非常容易出错。不要这样做)。你为什么不直接打电话给Deck()? -
Java 约定以小写开头的方法和变量名称来区分它们(您会注意到代码块中不同的突出显示),这是一个非常的坏主意命名除构造函数外的任何名称,与类同名。
-
将 public void main 更改为 public static void main,因为如果你从这个类运行你的代码,你会得到 NoSuchMethodError: main。
标签: java class methods arraylist