public class Personne {
protected String nom;
protected int age;
protected java.util.Scanner input = new java.util.Scanner(System.in);
public Personne(){}
public Personne(Personne p) {
this.nom = p.nom;
this.age = p.age;
}
public Personne(String unNom, int unAge) {
this.nom = new String(unNom);
this.age = unAge;
}
public String getNom() {
return nom;
}
public int getAge() {
return age;
}
/*
* initialise interactivement la Personne courante
*/
public void init(){
System.out.println("Entrez le nom de la personne : ");
nom = input.nextLine();
System.out.println("Entrez l'age de la personne : ");
age = input.nextInt();
}
public String toString() {
return "Nom : " + nom + " Age : " + age;
}
public boolean equals(Object o) {
if (o instanceof Personne) { // vérifie si la variable référence une instance de Personne
Personne p = (Personne) o; // transtypage
return this.nom.equals(p.nom) && this.age == p.age; // Vérifie l'égalité des attributs
}
return false;
}
}
public class Etudiant extends Personne {
String numeroEtudiant;
String fac;
public Etudiant(){}
public Etudiant(Etudiant e) {
this.nom = e.nom;
this.age = e.age;
this.numeroEtudiant = e.numeroEtudiant;
this.fac = e.fac;
}
public Etudiant(String unNom, int unAge, String numeroEtudiant, String uneFac) {
this.nom = new String(unNom);
this.age = unAge;
this.numeroEtudiant = new String(numeroEtudiant);
this.fac = new String(uneFac);
}
public void setNumeroEtudiant(String numeroEtudiant) {
this.numeroEtudiant = numeroEtudiant;
}
public void setFac(String fac) {
this.fac = fac;
}
public String getNumeroEtudiant() {
return numeroEtudiant;
}
public String getFac() {
return fac;
}
public void init(){
super.init();
System.out.println("Entrez le numero étudiant : ");
numeroEtudiant = input.nextLine();
System.out.println("Entrez la fac : ");
fac = input.nextLine();
}
public String toString(){
return super.toString() + " Numero étudiant : " + numeroEtudiant + " Fac : " + fac;
}
public boolean equals(Object o){
if (o instanceof Etudiant){
Etudiant e = (Etudiant) o;
return super.equals(o) && e.numeroEtudiant.equals(numeroEtudiant) && e.fac.equals(fac);
}
return false;
}
}
public class Salarie extends Personne{
String numeroSecu;
String employeur;
public Salarie(){}
public Salarie(Salarie s) {
super(s);
this.numeroSecu = s.numeroSecu;
this.employeur = s.employeur;
}
public Salarie(String unNom, int unAge, String numeroSecu, String employeur) {
super(unNom, unAge);
this.numeroSecu = new String(numeroSecu);
this.employeur = new String(employeur);
}
public String getNumeroSecu() {
return numeroSecu;
}
public String getEmployeur() {
return employeur;
}
public void init(){
super.init();
System.out.println("Entrez le numero de securite sociale : ");
numeroSecu = input.nextLine();
System.out.println("Entrez l'employeur : ");
employeur = input.nextLine();
}
public String toString() {
return super.toString() + " Numero de securite sociale : " + numeroSecu + " Employeur : " + employeur;
}
public boolean equals(Object o) {
if (o instanceof Salarie) {
Salarie s = (Salarie) o;
return super.equals(o) && this.numeroSecu.equals(s.numeroSecu) && this.employeur.equals(employeur);
}
return false;
}
}
public class Main {
public static void main(String[] args){
Personne p1 = new Personne("toto", 20);
Personne p2 = new Personne("titi", 22);
System.out.println(p1);
System.out.println(p2);
// Personne p3 = new Personne();
// p3.init();
// System.out.println(p3);
Salarie s1 = new Salarie("tata", 25, "123456789", "IBM");
Salarie s2 = new Salarie("tutu", 27, "987654321", "Microsoft");
System.out.println(s1);
System.out.println(s2);
// Salarie s3 = new Salarie();
// s3.init();
// System.out.println(s3);
Personne p1b = new Personne(p1);
System.out.println(p1.equals(p1b));
System.out.println(p1.equals(p2));
Salarie s1b = new Salarie(s1);
System.out.println(s1.equals(s1b));
System.out.println(s1.equals(s2));
Etudiant e1 = new Etudiant("tete", 27, "12345349", "bm");
Etudiant e1b = new Etudiant(e1);
Etudiant e2 = new Etudiant();
System.out.println(e1.equals(e1b));
System.out.println(e1.equals(e2));
}
}
import java.util.Arrays;
public class Club {
protected static java.util.Scanner input = new java.util.Scanner(System.in);
String nom;
Personne[] adherents;
/* Constructeurs */
public Club(){};
public Club(Club c) {
this.nom = c.nom;
this.adherents = c.adherents;
}
public Club(String nom, Personne[] adherents) {
this.nom = nom;
this.adherents = adherents;
}
/* Getters */
public Personne[] getAdherents() {
return adherents;
}
public String getNomClub() {
return nom;
}
/* Setters */
public void setAdherents(Personne[] adherents) {
this.adherents = adherents;
}
public void setNomClub(String nom) {
this.nom = nom;
}
/* Méthodes */
public void init() {
System.out.println("Entrez le nom du club : ");
nom = input.nextLine();
System.out.println("Entrez le nombre d'adhérents : ");
int nb = input.nextInt();
Personne[] tab = new Personne[nb];
for (int i = 0; i < nb; i++) {
System.out.println("1=Salarié ; 2=Étudiant ; 3=None");
int choice = input.nextInt();
switch(choice){
case 1:
Salarie s = new Salarie();
s.init();
tab[i] = s;
break;
case 2:
Etudiant e = new Etudiant();
e.init();
tab[i] = e;
break;
default: // = 3
Personne p = new Personne();
p.init();
tab[i] = p;
}
}
adherents = tab;
}
@Override
public boolean equals(Object o){
if (o instanceof Club){
Club c = (Club) o;
return this.nom.equals(c.nom) && Arrays.equals(c.adherents,this.adherents);
}
return false;
}
public String toString() {
return "Nom du club : " + nom + " Adherents : " + Arrays.toString(adherents);
}
}