2017-11-27 1 views
-5

Ich möchte ein Objekt der Klasse Student initialisieren. Wenn ich das Objekt erstelle, möchte ich eine Aufzählung für den Datentyp "Kurs" verwenden. Hier mein Code:Java: Verwenden Sie Enums für die Objektinitialisierung

Schüler:

private String GivenName; 
private String Surname; 
private String Module; 
private int Matrikelnr; 

public Student(String GivenName, String Surname, Course Module) { 
     this.GivenName = GivenName; 
     this.Surname = Surname; 
     Course this.Module = Module; 
     } 


     public enum Course { 
     AI("Course 1"), 
     BWL ("Course 2"), 
     VWL("Course 3"), 
     MA("Course 4"); 

     private String name; 

     private Course(String name){ 
      this.name = name; 
     }} 

Im Versuch, das Objekt Student initilize wie die

Student student = new Student(GivenName, SurName, AI); 

Und ich möchte, dass das letzte Objekt sieht wie folgt aus:

"Max", "Smith", "Course 1" 

Aber es funktioniert nicht. Kannst du mir helfen?

+0

Was meinen Sie mit "es funktioniert nicht"? – StephaneM

+0

Ich bin mir nicht sicher, ob ich verstehe, wonach Sie suchen. Das Objekt kann nicht wie "Max", "Smith", "Course 1" "aussehen". Stattdessen denke ich, dass Sie eine Art von String-Darstellung (z. B. JSON) wollen, die irgendwie so aussieht. Habe ich recht? – Thomas

+3

"Es funktioniert nicht" ist nicht hilfreich. Was ist nicht? Meine Vermutung wäre diese Zeile: 'Natürlich this.Module = Module' - die linke Seite sollte hier nicht den Typ haben. – Li357

Antwort

1

Ich denke, Ihr Problem ist, dass Sie scheinen, Ihre enum an der falschen Stelle zu definieren, aber es ist nicht klar, weil Sie nicht vollständigen Code gebucht haben.

Hier habe ich es funktioniert. Beachten Sie, dass ich feste Ihre Benennung habe.

class Student { 
    private String givenName; 
    private String surname; 
    private String module; 

    public Student(String givenName, String surname, Course module) { 
     this.givenName = givenName; 
     this.surname = surname; 
     this.module = module.name; 
    } 
} 

public enum Course { 
    AI("Course 1"), 
    BWL("Course 2"), 
    VWL("Course 3"), 
    MA("Course 4"); 

    private final String name; 

    private Course(String name) { 
     this.name = name; 
    } 
} 

public void test(String[] args) { 
    Student student = new Student("Given name", "surname", AI); 
} 
+0

Danke @OldCurmudgeon !! :) – JMAD2016

+0

@ JMAD2016 - BTW - Ich stimme @ Thomas 'Kommentar zu, dass du das "Modul" wirklich als "Kurs" anstatt als "String" speichern solltest - es ist viel flexibler auf diese Weise. – OldCurmudgeon

0

Compiler Fehler/Warnmeldungen sind hilfreich für jeden bereit, Ihnen zu helfen.

Das heißt, Sie müssen Java sagen, dass AI ein Mitglied der Course Enum ist.

Student Student = neuer Student (GivenName, SurName, Course.AI);

Verwandte Themen