我是从Java开始的,所以组织我的代码背后的思想是如此的凝聚力并不是真的自然而然。从本质上讲,我有一个ArrayList,它有一个填充它的方法,另一个调整它,然后是一个测试程序,看看它是否工作。我的问题在于组织它。根据我的经验,方法无法真正看出彼此之间有什么关系,所以我把它组织起来就像这样:
Class
ArrayList (named al)
Tester Method
Shuffle Method
ArrayList Population Method
因此我的麻烦;我如何在测试器方法中使ArrayList经历在方法中为其定义的操作。我曾经使用过构造函数和对象,但它们似乎并不适用,至少是我到目前为止所做的。我认为它会像
al.Shuffle();
但它在整个地方都犯了错误。有没有人有任何见解?
编辑:根据要求,这是代码
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);
al.Deck();
//didn't get any further, that threw a "cannot find symbol" error
}
}
private void Shuffle(){
Collections.shuffle(al);
}
private void Deck(){
al.add(0, "Ace of Spades");
//and this goes on for a deck of cards
}
}
答案 0 :(得分:1)
定义另一个扩展ArrayList
public class MyArrayList extends ArrayList<Object> {
public MyArrayList(){
super();
}
public MyArrayList shuffle(MyArrayList mal){
Collections.shuffle(mal);
return mal;
}
}
然后将所有内容定义为MyArrayList
。这基本上与ArrayList
完全相同,具有您想要的额外功能。
public class Deck {
static MyArrayList al = new MyArrayList();
//test method
public static void main(String[] args){
Scanner input = new Scanner(System.in);
Deck();
al = al.shuffle(al);
//didn't get any further, that threw a "cannot find symbol" error
for(Object i : al)
System.out.println(i);
}
private static void Deck(){
al.add(0, "Ace of Spades");
al.add(1, "1");
al.add(2, "2");
al.add(3, "3");
//and this goes on for a deck of cards
}
}
答案 1 :(得分:1)
在您的组件中,类是保存组件其余部分的主要组件,然后方法是类可以执行的任务或操作。
ArrayList
是一种数据结构,用于保存具有特定结构的数据。班级可以使用它。
所以你的组织可能是这样的:
class MyClass {
private ArrayList<String> list = new ArrayList<String>();
public static void main(String[] args) {//Tester Method is the main method, because the execution began from here
}
private void populate() {
//
}
private void shuffle() {
//
}
}