2017-02-01 3 views
1

Ich habe Probleme mit meinem Programm bekommen und kann nicht herausfinden, warum ich diesen Fehler bekomme, der mich abgehört hat. Jeder Vorschlag wird eine große Hilfe sein! Ich weiß nicht, ob mir etwas fehlt oder so. Ich habe die Array-Klasse korrekt importiert.Kann nicht finden Symbol - Methode Größe()

private String title; 
private ArrayList<Student> students; 
private int courseId; 
private static int courseIdList = 0; 

/** 
* 
*/ 
public Course(String tile) 
{ 
    this.title = title; 
    courseId = courseIdList; 
    courseIdList++; 
    students = new ArrayList<Student>(); 
} 

/** 
* @param returns the title 
*/ 
public String getTitle(String title) 
{ 
    return title; 
} 

/** 
* @return returns the ID 
*/ 
public int getId() 
{ 
    return courseId; 
} 

/** 
* 
*/ 
public void addStudent(Student students) 
{ 
    for(int i = 0; i < students.size(); i++) 
    { 
     if(students.getId() != students.get(i).getId()) 
     { 
      students.add(i); 
      return; 
     } 
    } 
} 

/** 
* 
*/ 
public void removeStudent(Student students) 
{ 
    for(int i = 0; i < students.size(); i++) 
    { 
     if(students.getId() == students.get(i).getId()) 
     { 
      students.remove(i); 
      return; 
     } 
    } 
} 

/** 
* @return if class is above or equal to 10 then return true, else return false; 
*/ 
public boolean isFull(Student students) 
{ 
    if(students.size() >= 30) 
    { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
} 

/** 
* @returns if the class is below ten then return true, else return false 
*/ 
public boolean cancel(Student students) 
{ 
    if(students.size() < 10) 
    { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
} 

/** 
* 
*/ 
public ArrayList<Student> getStudents() 
{ 
    return students; 
} 

/** 
* 
*/ 
public boolean inClass(Student students) 
{ 
    for(int i = 0; i < students.size(); i++) 
    { 
     if(student.getId() == students.get(i).getId()) 
     { 
      return true; 
     } 
    } 
    return false; 
} 

/** 
* boolean returns true if a student's ID mathes and false if their ID does not. 
*/ 
public boolean equals(Student s) 
{ 
    if(this.getId() == s.getId()) 
    { 
     return true; 
    } 
    return false; 
} 

/** 
* 
*/ 
public double getAverage() 
{ 
    double sum = 0; 

    for(Student s : students) 
    { 
     sum += s.getGrade(); 
    } 

    double avg = sum/students.size(); 
    return avg; 
} 

/** 
* 
*/ 
public void getHighestGrade() 
{ 
    int highestGrade = 0; 
    for(Student s : students) 
    { 
     if(students.getGrade() > s.get(i).getGrade()) 
     { 
      students.highestGrade(i); 
     } 
    } 

    return new Student(" ", 0,0); 
} 

/** 
* 
*/ 
public ArrayList<Student> getWarnings() 
{ 
    for(i = 0; i < students.size; i++) 
    { 
     if (students.getGrade() <= 70) 
     { 
      return students; 
     } 
    } 
} 

/** 
* 
*/ 
public void removeSeniors(Student students) 
{ 
    for(i = 0; i < students.size; i++) 
    { 
     if(students.getId() == students.get(i).subString(0,2).equalsTo(17)) 
     { 
      students.remove(i); 
     } 
    } 
} 

/** 
* 
*/ 
public void sortByGrade() 
{ 

} 

/** 
* 
*/ 
public void sortByAlpha() 
{ 

} 

/** 
* 
*/ 
public String toString() 
{ 
    String printOut = ""; 

    printOut += "Course name: " + title + "\nStudent ID: " + courseId; 

    return printOut; 

    for(Student students : students) 
    { 
     printOut += students.toString() + "\n"; 
    } 
} 

}

+0

Sie übergeben einen 'Student' an die Methode' addStudent' und an viele andere Methoden. Keine Liste von Studenten. Sie sollten eine Liste wie "Liste Studenten" übergeben. –

+0

@ottrob THX es funktionierte, aber jetzt bekomme ich den gleichen Fehler für die getId()? irgendwelche Gedanken dazu? –

Antwort

0

Nun ist es das Gegenteil :) students ist ein List und kein Student. Sie müssen die Liste durchlaufen und jeden Schüler bearbeiten.

public void doSomething(List<Student> students) { 
    // does not work because students is a List of students not a student. 
    students.getId(); // ERROR 

    // loop over the list and then get the id of a single student 
    for(Student student : students) { 
     int id = student.getId(); 
     // do something with the id 
    } 
} 

size() ist eine Methode der List-Schnittstelle

getId() ist eine Methode der Klasse Student.

Verwandte Themen