ouvert_a_tous:slam2:tp4:avecheritage:classe_enseignant

La classe Enseignant

  • Enseignant hérite de PersonnePhysique
public class Enseignant extends PersonnePhysique {
 
}
  • Il faut redéfinir la méthode chaineAffichageEnModeTexte() sinon la classe devra être abstraite et on pourra pas créer d'objets de classe Enseignant .
  • Les deux constructeurs, non paramétré Enseignant () et avec deux paramètres Enseignant (String pNom, String pPrenom), demandent l'exécution du constructeur avec trois paramètres de la classe Enseignant : Enseignant (String pNom, String pPrenom, Adresse pAdrs)
   public Enseignant (String pNom, String pPrenom) {
        this(pNom, pPrenom,null);
   }
 
   public Enseignant () {
        this(null, null,null);
   }

Appel du constructeur de la classe PersonnePhysique

  • Le constructeur paramétré Enseignant (String pNom, String pPrenom, Adresse pAdrs) demande l'exécution du constructeur de la classe ancêtre (ici PersonnePhysique(String pNom, String pPrenom, Adresse pAdrs)
 public Enseignant (String pNom, String pPrenom, Adresse pAdrs) {
      super(pNom, pPrenom, pAdrs);
  }
package tp4.avecheritage;
 
import tp4.commun.Matiere;
import tp4.commun.Adresse;
import java.util.Arrays;
 
 
public class Enseignant extends PersonnePhysique {
 
  public Enseignant(String pNom, String pPrenom) {
        this(pNom,pPrenom, null);
  }
 
  /**
   * Cette méthode est un constructeur.<br> Elle s'exécute automatiquement lors de la création de l'objet.
   * Elle a définie par un programmeur pour permettre à un programmeur (vous) d'initialiser les propriétés  de
   * "l'objet Enseignant" que vous désirez créer.
   * @param pNom le nom de la personne que vous désirez créer.
   * @param pPrenom  une chaîne de caractères contenant le prénom de la personne que vous désirez créer.
   * @param pAdresse un "objet adresse" contenant les caractéristiques de l'adresse de la personne que vous désirez créer.
   */
  public Enseignant(String pNom, String pPrenom, Adresse pAdrs) {
      // Initialisationde tous les attributs
        // Attributs "simples"
        super(pNom,pPrenom,pAdrs);
        // Initialisation du tableau
        // Attribut Tableau des matières : taille maximale = 20 matières
        matieres = new Matiere[20];
        // Attribut compteur de matières
        nombreMatieres=0;  // Au départ un enseignant a 0 matières.
  }
 
  /**
   * Constructeur des objets de classe Enseignant
   */
  public Enseignant() {
      super();  // Exécution du constructeur de la classe Anc^tre (ici PersonnePhysique).
  }
 
  public void ajouter(Matiere prmMatiere) {
        matieres[nombreMatieres] = prmMatiere;
        nombreMatieres++;
  }
 
  public boolean enseigneMatiere(String prmLibMat) {
        boolean res = false;
        int indice =0;
        while ((indice <nombreMatieres) && ( ! prmLibMat.equals(matieres[indice].getLibelle()))){
            indice++;
        }
        if (prmLibMat.equals(matieres[indice].getLibelle())){
            res=true;
        }
        return res;
  }
 
  /**
   * Renvoie un tableau dont la taille est égale au nombre de matières enseignées par la personne.
   */
 
  public Matiere[] getSesMatieres() {
        Matiere[] mats;
        mats = Arrays.copyOf(matieres,nombreMatieres);
        /* Equivalént à
          mats=new Matiere[nombreMatieres];
          for (int i=0; i<nombreMatieres;i++){
              mats[i] = matieres[i];
          }
        */
        return mats;
  }
 
  public int nombreDeMatieres() {
        return nombreMatieres;
  }
 
  private Matiere[] matieres;
 
  private int nombreMatieres;
 
  public String chaineAffichageEnModeTexte() {
      String ch= "" + getNumId()+ " " + getNom() + " " + getPrenom() + " "
              + getAdresse().toString() + " " + getNumTel() + " "
              + getAdresseCourriel() ;
      for (int i=0; i< nombreMatieres; i++){
          ch = ch+ " "+ matieres[i].getLibelle() ;
      }
      return ch;
  }
 
}
  • ouvert_a_tous/slam2/tp4/avecheritage/classe_enseignant.txt
  • Dernière modification : 2022/12/03 07:45
  • de 127.0.0.1