2016-11-12 4 views
-1

で学生を操作する。これは、クラスの学生はグループ

public class Etudiant { 

    private int id; 
    private String name; 
    private String birthdate; 

    public Etudiant(int id,String name,String birthdate){ 
     this.id=id; 
     this.nom=name; 
     this.birthdate=birthdate; 
    } 
    public String getInfo(){ 
     return " "+ this.id+" "+this.name+" "+this.birthdate; 
    } 
    public int getId() { 
     return id; 
    } 
    public void setId(int id) { 
     this.id = id; 
    } 
    public String getName() { 
     return name; 
    } 
    public void setName(String name) { 
     this.name = name; 
    } 
    public String getbirthdate() { 
     return birthdate; 
    } 
    public void setbirthdate(String birthdate) { 
     this.birthdate=birthdate; 
    } 

である私は ...学生を操作するためのクラスGroupeを書いたが、私は私のmain方法

を書いたとき、ワークスペースのエラーが現れましたこれは私のコードです:

import java.util.ArrayList; 
import java.util.Scanner; 

public class Groupe { 
    ArrayList <Student> etud = new ArrayList<Student>(); 
    private int id; 
    private String formation; 

    public Groupe(int id, String formation) { 
     this.id = id; 
     this.formation = formation; 
    } 

    public int getId() { 
     return id; 
    } 

    public void setId(int id) { 
     this.id = id; 
    } 

    public String getFormation() { 
     return formation; 
    } 

    public void setFormation(String formation) { 
     this.formation = formation; 
    } 

    public void ajouterEtudiant (Student e){ // add a student 
     Groupe g =new Groupe(this.id, this.formation); 
     g.etud.add(new Student(e.getId(), e.getName(), e.getbirthdate())); 
    } 
    public void supprimerEtudiant(Student e){ 
     Groupe g =new Groupe(id, formation); 
     if(!g.etud.isEmpty()){ 
      g.etud.remove(e); 
     }else{ 
      System.out.println("list empty "); 
     } 
    } 
    public void supprimerEtudiant(int id){ // delete a student using the id 
     int i=0; boolean B =true; 
     Groupe g = new Groupe(id, formation); 
     while ((i<g.etud.size())&&(B==true) &&(!g.etud.isEmpty())){ 
      if ((g.etud.get(i)).getId()==id){ 
       g.etud.remove(i); 
       B=false; 
      } 
      i++; 
     } 
    } 

    public void rechercheEtudiantNom(String name){ // search for a student by `enter code here`//his name 

     int i=0; 
     Groupe g =new Groupe(this.id, this.formation); 
     boolean B=true; 
     while ((i<g.etud.size())&& (B==true)&&(!g.etud.isEmpty())){ 
      if(g.etud.get(i).getname()==name){ 
       B=false; 
      } 
      i++; 
     } 
     if (B) { 
      System.out.println("student doesnt exist !"); 
     }else{ 
      System.out.println("student existe !"); 
     } 
    } 
    public void afficheTousEtudiant(){ // to show the list of students 
     Groupe g = new Groupe(this.id, this.formation); 
     for(int i = 0;i<g.etud.size()-1;i++){ 
      System.out.println(g.etud.get(i).getName()); 
     } 
    } 
} 

私の方法の間違いはどこにありますか教えてください。

+1

を書かれているエラーは何ですか? – rafid059

+0

私は、エラーを見つけませんでした..あなたがこの2つのクラスを書くとき、私は尋ねたのですが、MAINではグループを作成してから学生を追加し、メソッドafficheTousEtudient()でリストを表示しようとします。 ...何も表示されていません –

+0

MAINクラスをメインメソッド – rafid059

答えて

0

ajouterEtudiant()とsupprimerEtudiant()でGroupeの新しいインスタンスを作成し、それをgに割り当ててそこに追加/削除します。この 'g'は、メソッドを終了すると破棄されます。ところで

public void ajouterEtudiant (Student e){ // add a student 
    etud.add(new Student(e.getId(), e.getName(), e.getbirthdate())); 
} 

:代わりに、直接メソッドが呼び出されたインスタンスのメンバーetudを使用するライン

ArrayList <Student> etud = new ArrayList<Student>(); 

が良い

List <Student> etud = new ArrayList<>(); 
+0

ありがとうございました........ afficheTousEtudiant()についてはどうですか? ?7 –

+0

同じことがすべての方法に当てはまります。リストの新しいインスタンスを望んではいけません。あなたのGroupeインスタンスの1つの唯一のメンバだけで常に動作します。 – Heri

+0

はい私はそれをしました...&私はこのメインメイン{Groupe g = new Groupe(1、 "SI");学生e =新生児(1、 "mike"、 "20-04-1990"); \t g.ajouterEtudiant(e); \t g.afficheTousEtudiant(); }何も現れなかった!! –