Java 类/对象/方法组织混乱
我是从Java开始的,所以组织代码以使其具有内聚性的想法还不是很自然。本质上,我有一个ArrayList,它有一个填充它的方法,另一个洗牌它,然后是一个测试程序,看看这是否有效。我的问题是如何组织它。根据我的经验,方法之间并不能真正看到彼此的本质,因此我将其组织如下:Java 类/对象/方法组织混乱,java,class,object,methods,arraylist,Java,Class,Object,Methods,Arraylist,我是从Java开始的,所以组织代码以使其具有内聚性的想法还不是很自然。本质上,我有一个ArrayList,它有一个填充它的方法,另一个洗牌它,然后是一个测试程序,看看这是否有效。我的问题是如何组织它。根据我的经验,方法之间并不能真正看到彼此的本质,因此我将其组织如下: Class ArrayList (named al) Tester Method Shuffle Method ArrayList Population Method 我的麻烦是这样的;在t
Class
ArrayList (named al)
Tester Method
Shuffle Method
ArrayList Population Method
我的麻烦是这样的;在tester方法中,我如何使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
}
}
包装卡;
导入java.util.ArrayList;
导入java.util.Collections;
导入java.util.Scanner;
甲板{
ArrayList al=新的ArrayList();
//试验方法
公共void main(字符串[]参数){
扫描仪输入=新扫描仪(System.in);
al.Deck();
//没有任何进一步的操作,这抛出了一个“找不到符号”错误
}
}
私有无效洗牌(){
收藏。洗牌(al);
}
私人空甲板(){
al.添加(0,“黑桃王牌”);
//接下来就是一副牌
}
}
定义另一个扩展ArrayList的类
public class MyArrayList extends ArrayList<Object> {
public MyArrayList(){
super();
}
public MyArrayList shuffle(MyArrayList mal){
Collections.shuffle(mal);
return mal;
}
}
在组件中,类是保存组件其余部分的主要组件,然后方法是类可以执行的任务或操作
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() {
//
}
}
class-MyClass{
private ArrayList list=new ArrayList();
publicstaticvoidmain(String[]args){//Tester方法是主要方法,因为执行从这里开始
}
私有void填充(){
//
}
私有无效洗牌(){
//
}
}
将您的arraylist设置为类的一个字段,并在您的方法中使用它执行所有类型的操作?很抱歉,我无法了解未列出代码的未列出错误。私有void Deck()方法也可以在类之外吗?您不能在类之外有一个方法,因为方法是类可以执行的行为或操作。好的,我目前有类似格式的代码(见上文,用完整代码编辑),但现在在Tester方法中,如何调用arraylist上的方法,即al.method();没有工作我甚至不知道这是可能的,我将不得不查找如何做到这一点我遇到的问题是al.shuffle(al)代码>正在给出“找不到符号符号:方法洗牌(ArrayList)位置:ArrayList类型的变量al”是否运行了我的代码?这是一个完整的可编译项目。
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() {
//
}
}