2017-11-27 7 views
-5

クラスStudentのObjectを初期化したい。オブジェクトを作成するときに、データ型 "コース"に列挙型を使用したいと思います。ここ 私のコード:Java:オブジェクトの初期化にenumを使用する

学生:

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; 
     }} 

イムその

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

のようなオブジェクトの学生をinitilizeしようとしていると私は最終的なオブジェクトは、次のようになりますことをしたい:

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

しかし、それは動作しません。みんな助けてくれますか?

+0

「それは機能していません」とはどういう意味ですか? – StephaneM

+0

あなたが何をしているのか分かりません。オブジェクトは、 "Max"、 "Smith"、 "Course 1"のように "見る"ことはできません。代わりに、何らかの形でこのように見える文字列表現(JSONなど)が必要だと思います。私は正しい? – Thomas

+3

「うまくいきません」は役に立ちません。何ではないですか?私の推測はこの行です: 'Course this.Module = Module' - 左側にはこの型があってはいけません。 – Li357

答えて

1

あなたの問題は、enumを間違った場所に定義しているようですが、完全なコードを投稿していないため明確ではありません。

ここで私はそれを働かせています。私はを固定あなたの命名を持っていることに注意してください。

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

ありがとう@OldCurmudgeon !! :) – JMAD2016

+0

@ JMAD2016 - BTW - @ Thomasのコメントには、 'モジュール'を 'String'ではなく' Course'として保存する必要があるという意見に同意します。 – OldCurmudgeon

0

コンパイルエラー/警告メッセージは、いつでもあなたを助けるために役立ちます。

つまり、AIにはCourse enumのメンバーであることをjavaに伝える必要があります。

学生学生=新しい学生(GivenName、SurName、Course.AI);

関連する問題