2013-11-08 2 views
0

Мне нужно воссоздать класс arraylist, и у меня возникают проблемы с некоторыми из методов. Во-первых, я продолжаю получать ошибку вокруг моего метода .equal в цикле FOR в исходном выражении IF, говорящем, что он не может найти символ, указывая на период между getData() и содержит. Также, когда я делаю свой основной, я не уверен, что я должен добавить конструктор, не могу ли я каким-то образом использовать его из myIntArrayList? У меня возникают проблемы с тем, что основной вызов не вызывает методы дочернего класса. Не могли бы вы помочь мне с этим и мои методы на правильном пути? Он хочет, чтобы мы использовали конструкторы из родительского класса, но когда я использую их, создавая новый объект, он не будет вызывать методы в дочернем классе.Восстановить методы ArrayList Ошибка и ошибка конструктора для дочернего класса

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

Когда я использую super(); и добавляя в массив как параметр, я просто получаю «{}» в качестве моего вывода. И эта длина не работала вообще.

+0

Nevermind. Я заработал. Мне пришлось создавать новые объекты в методе, а не использовать, а вместо этого - для циклов и операторов if. – user2962023

0

Вы хотите определить конструктор для своего подкласса, используя конструктор родителя. Вы делаете это, вызывая super, где super является вызовом конструктора родителя, и вы размещаете любые аргументы, необходимые в круглых скобках.

Например, если мой родительский класс не использует никаких аргументов в конструкторе, я бы просто сделать это для моего constuctor:

public Subclass() { 
    super(); 
} 

Вы иметь доступ ко всем ваш родительский класс делает и все, определяемый для подкласса.

И для раздела с ошибкой getData(), попробуйте использовать this.length или this.size() или же вы получите размер своего объекта и посмотрите, работает ли это.

Смежные вопросы