我必须重新创建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或发布它。
答案 0 :(得分:0)
您需要使用父级的构造函数为您的子类定义构造函数。您可以通过调用super
来执行此操作,其中super
是对父级构造函数的调用,并在括号中放置所需的任何参数。
例如,如果我的父类在其构造函数中不使用任何参数,我只是为我的构造函数执行此操作:
public Subclass() {
super();
}
然后,您将可以访问您的父类所做的一切以及您为子类定义的所有内容。
对于getData()
错误部分,请尝试使用this.length
或this.size()
,或者您可以获得对象的大小,看看是否有效。
答案 1 :(得分:0)
当我使用super();并添加一个数组作为参数我只是得到“{}”作为我的输出。并且this.length根本不起作用。