2016-10-07 8 views
0

学生(ID、名前、年齢など)を登録できるようにするコードが少しありますが、今はできますが、ただ1人のユーザーを受け入れるだけで、新しいものを登録すれば上書きされます1人以上の生徒を持つことができます。CのStructsをJavaでどのように実装できますか?

だから、私は私が構造体を使用するC、ビットを読んだ後、この

struct Students { 
    int ID[6]; 
    char Name[35]; 
    char Age[2]; 
} student; 

のようなものを使用していた場合は、Javaがこの機能を持っていないこと。考えていました

Javaでこれを行う方法は?出来ますか ?

おかげ

+3

なぜクラスの仕事ではないだろう。ここでは

は、あなたがこれを行うことができます多くの方法の一つですか? –

+1

学生のクラス;) –

+0

Javaにはこの機能がないということはどういう意味ですか?どのような施設ですか? –

答えて

2

のJavaにはstructを持っていません。

あなたが学生のためのクラスを作ることができるパブリックアクセス指定子とJavaでは無メソッド

2

を有する部材と構造体としてclassを使用することができます。一度Javaをよく知るようになると、これらのプロパティをprivateまたはprotectedのいずれかに変更し、public getter/setterメソッドを使用する必要があります。

public class Student{ 
    public int id; 
    public String name; 
    public int age; 
} 

そしてメインのコードで、あなたが作成することができますしかし、多くの学生は、次のものが必要です。

Student myStudentA = new Student(); 
+0

生徒ごとにオブジェクトを作成する必要がありますか?ダイナミックではありませんか? –

+1

「ダイナミック」とはどういう意味ですか? –

1

Cであなたが各学生のために必要な情報を具現化するために構造体を使用することは事実です。

Javaのようなオブジェクト指向言語では、クラスを使用します。

public class Student 
{ 
    public int   id;   // [*] 
    public String  name; 
    public String  age; 

    //... other things go here, such as constructors and methods ... 
} 

[*]あなたは6つの整数の配列であることをidメンバーを定義した:だから、あなたが定義したC構造に相当するJavaでの次のクラスのようなものになるだろう。私はおそらくそれが6桁まで保持できる単一の整数値であることを意味していたと仮定します。

おそらく、ageメンバを2文字の文字列ではなく整数にすることもできます。

Javaでは、Stringの変数は、NULLで終了するC文字配列のように最大長を持たないことに注意してください。

+0

正確には、これは私が持っているものです。 しかし、生徒ごとにオブジェクトを作成する必要はありますか?このように:myStudentA = new Student();次にmyStudentB = new Student(); ? –

+0

@DavidSélemGarcia - はい、各生徒は、それ自身の「生徒」オブジェクト内に組み込まれています。 –

1

Javaでこれを行うことは絶対に可能です。 Javaはオブジェクト指向のプログラミング言語なので、学生などの「もの」を扱うときには、Javaクラスに実装するのは非常に簡単です。

public class Students{ 
     private List<Student> students; 

     public Students(){ 
      this.students = new ArrayList<>(); 
     } 

     public void addStudent(Student newStudent){ 
      students.add(newStudent); 
     } 

     public Student getStudents(){ 
      return this.students; 
     } 

     public Student getStudent(int name){ 
      for(Student s : students){ 
       if(s.getName().equalsIgnoreCase(name)){ 
        return student(); 
       } 
      } 
      return null; 
     } 

     public class Student{ 
      private int id; 
      private String name; 
      private int age; 

      public Student(){ 

      } 

      public Student(int id, String name, int age){ 
       this.id = id; 
       this.name = name; 
       this.age = age; 
      } 

      // Getters and Setters for the Students variables 
     } 
    } 
関連する問題