2016-03-18 6 views
0

Hinzufügen I Namen wollen Variable dieser Objekte einfügen mit addStudent studentarray() method.I get-Methode verwendet, aber es gibt mir error.Where ist mein Fehler hier, was ich versucht:Objekt varriable zu Array

public class Student { 
    String name; 
    int grade; 
    public Student(String name, int grade) { 
     this.name=name; 
     this.grade=grade; 
    } 
    public String toString() { 
     return "name:"+this.name+"grade:"+this.grade; 
    } 
    public String getName() { 
     return name; 
    } 
} 

public class Course { 
    Student[]studentArray=new Student[3]; 

    public Course() {} 

    public void addStudent(Student s) { 
     for (int i=0;i<studentArray.length;i++) { 
      if (studentArray[i] == null) { 
       studentArray[i] =s.getName(); 
       break;      
      } 
     }  
    } 
} 
+1

Sie versuchen, eine Zeichenfolge in einem Array von Student-Objekten zu speichern. Um den Student dem Array hinzuzufügen, können Sie Folgendes tun: studentArray [i] = s; – Logan

Antwort

0

es versuchen:

studentArray[i] = s; 

Statt:

studentArray[i] = s.getName(); 

Da Ihr Array speichert Werte Typ: Student , Nicht ihre Namen (String Klasseninstanzen)

Oder Sie können Ihre Array Typ String ändern:

String[] studentArray = new String[3]; 

Statt:

Student[] studentArray = new Student[3]; 
+0

Wenn ich dies versuche, gibt es alle Variablen des Objekts zurück, aber ich möchte nur Namen eingeben. –

+0

Dann sollten Sie Array-Typ zu String ändern – Cootri

+0

Ändern Sie Ihre Array-Deklaration zu: String [] StudentArray = new String [3] –

0

Ihr Array-Typ: Student ist und Sie versuchen, Speichere einen String, Name des Schülers, deshalb gibt es einen Fehler.

1

1. Sie können nicht zwei öffentliche Klassen in einer Datei haben. 2. Sie können String nicht in Student-Objekt konvertieren. 3. Wenn Sie Student[]studentArray=new Student[3] getan haben, erstellen Sie keine Objekte, sondern 3 Referenzen.Es ist das gleiche wie Student studentArray dreimal zu tun, wo studentArray nur eine Referenz ist. 4. studentArray[i].getName(); ist der richtige Weg, um eine Methode mit Array von Objekten aufzurufen.

Betrachten Sie die Annahme der Antwort, wenn es Ihnen geholfen hat. Ich werde hoch schätzen.

0

Ich gehe davon aus den Fehlern in dieser Zeile auftretende

studentArray[i] =s.getName(); 

, weil Sie Zuordnung von Daten vom Typ String auf eine Variable vom Typ Student versuchen. Sie können dies beheben, indem Sie das Studentenobjekt in dem Parameter einfach dem leeren Index in studentArray zuweisen. Hier ist, was es möchte:

public void addStudent(Student s) { 
     for (int i=0;i<studentArray.length;i++) { 
      if (studentArray[i] == null) { 
       studentArray[i] = s 
       break;      
      } 
     }  
}