为子类重新创建ArrayList方法错误和构造函数错误

时间:2013-11-08 17:38:15

标签: java methods arraylist constructor recreate

我必须重新创建arraylist类,并且我遇到了一些方法的问题。首先,我在初始IF语句的FOR循环中不断出现我的.equal方法错误,告诉我它找不到符号,指向getData()和contains之间的句点。另外,当我制作主要内容时,我不确定是否应该添加构造函数,我不能以某种方式使用myIntArrayList中的那个?我遇到的主要问题是没有调用子类方法。你能帮助我吗?我的方法是否正确?他希望我们使用父类的构造函数,但是当我通过创建一个新对象来使用它们时,它不会调用子类中的方法。

public class Project7 extends myIntArrayList{
public int[] copy(myIntArrayList aList){
        int[] temp = new int[aList.size()];
    for(int i =0; i<temp.length;i++){
            temp[i]=aList.getData(i);
        }
        return temp;
}
public boolean equal(myIntArrayList aList){ 
        boolean check = false;
        boolean flag = true;
    if(aList.size() == getData().length){
            while(flag == true){
                for(int i=0;i<getData().length;i++){
                    if(getData().contains(aList.getData(i)))//error
                        check=true;
                    else{
                        check=false;
                        flag=false;
                    }
                }
            }
        }
        else
            check = false;
    return check;   
}
public void congruent(myIntArrayList aList){ //Not Done
    boolean check = false;
        boolean flag = true;
}
public int[] simpleSort(){
    int[] temp = new int[getSize()];
    for(int i=0; i<temp.length;i++){
        temp[i] = getData(i);
    }
    for(int b=1;b<temp.length;b++){
        int a=b;
        while(temp[a-1]>temp[b]){
            temp[a]=temp[a-1];
            a--;
        }
        temp[a]=temp[b];
    }
    return temp;
}
public void bubbleSort(){
    int[] temp = new int[getSize()];
    for(int i=0; i<temp.length;i++){
        temp[i] = getData(i);
    }
    for(int i=0;i<temp.length;i++){
        for(int j=i;j<temp.length;j++){
            if(temp[i]<temp[j]){
                int swap=temp[j];
                temp[j]=temp[i];
                temp[i]=swap;
            }
        }
    }
}
public static void main(String[] args){
    int[] x = new int[6];
    x[0] = 5;
    x[1] = 8;
    x[2] = 3;
    x[3] = 4;
    x[4] = 1;
    x[5] = 9;
    myIntArrayList example = new myIntArrayList(x); //Do i need a Project7 constructor?
    example.print();
    example.bubbleSort();
}

}

假设myIntArrayList中的所有方法和构造函数都有效,否则我可以上传到mediafire或发布它。

2 个答案:

答案 0 :(得分:0)

您需要使用父级的构造函数为您的子类定义构造函数。您可以通过调用super来执行此操作,其中super是对父级构造函数的调用,并在括号中放置所需的任何参数。

例如,如果我的父类在其构造函数中不使用任何参数,我只是为我的构造函数执行此操作:

public Subclass() {
    super();
}

然后,您将可以访问您的父类所做的一切以及您为子类定义的所有内容。

对于getData()错误部分,请尝试使用this.lengththis.size(),或者您可以获得对象的大小,看看是否有效。

答案 1 :(得分:0)

当我使用super();并添加一个数组作为参数我只是得到“{}”作为我的输出。并且this.length根本不起作用。