Les Interfaces Java

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 4

Matière : POO2

Filière : L2SIL
Enseignant : Ben Rkaya Moez

Interface
Exercice1
On vous demande d’écrire :
1. Une interface nommé Homme possédant une seul méthode : void identite () dont le
rôle est d’afficher les informations concernant un homme
2. Une classe Personne implémentant cette interface et possédant deux attributs privés
nom, prenom de type String et un constructeur paramétré.
3. Une classe Client héritant de la classe Personne et implémentant l’interface Homme
avec un attribut privé numero de type entier et un constructeur paramétré en
conséquence.
4. Une classe Peuple contenant deux attributs privés : un tableau d’Homme nommés
pays de capacité 100 et un entier nbHommes représentant le nombre d’hommes d’un
pays.
Cette classe contient également deux méthodes
- void naissance (Homme h) : permet d’ajouter un homme dans pays.
- void explorer () : affiche l’identité de tous les hommes dans pays.
Tester les méthodes naissance et explorer après avoir placé dans pays des personnes et
des clients
Solution

- Interface Homme

package com.interf.exercice;
public interface Homme {
void identite();
}

- class Personne

package com.interf.exercice ;
public class Personne implements Homme {
private String nom,prenom;
Personne(String nom,String prenom){
this.nom=nom;this.prenom=prenom;
}
// Méthode identite : affiche les infos concernant une personne
@Override

Page | 1
Matière : POO2
Filière : L2SIL
Enseignant : Ben Rkaya Moez

public void identite(){


System.out.println("Prenom : " + prenom+" Nom : "+nom);
}
}

- class Client

package com.interf.exercice;
public class Client extends Personne implements Homme{
private int numero;
Client(String nom,String prenom,int numero){
super(nom,prenom);
this.numero=numero;
}
public void identite(){
super.identite();
System.out.println("Numero: " + numero);
}
}

- class Peuple

package com.interf.exercice;
public class Peuple {
//attribut
private Homme pays[]=new Homme[100];
private int nbHommes;
void naissance(Homme h){
pays[nbHommes++]=h;
}
void explorer(){
for(int i=0;i<nbHommes;i++)
pays[i].identite();
}
}

- class Test

package com.interf.exercice;
public class Test {
public static void main(String[] args){
Peuple p = new Peuple();
p.naissance(new Personne("Moez","Rkik"));

Page | 2
Matière : POO2
Filière : L2SIL
Enseignant : Ben Rkaya Moez

p.naissance(new Client("Moez","Farhani",25632));
p.explorer();
}
}

Exercice2 : A rendre avant le 19/04/2020


Complétez les classes nécessaires à l’exécution de ce programme tout en sachant que
la classe Cylindre dérive de la classe Cercle qui est une sous classe de Point
public class Test {
public static void main(String[] args){
int n = Integer.parseInt(args[0]); //lire un entier à partir de la ligne de commande
Forme f;
switch(n)
{
case 1:
f= new Point(1,2);
break;
case 2:
f= new Cercle(5,2,3);
break;
case 3:
f= new Cylindre(5,2,3,10);
break;
default:
f= new Point(0,0);
}
f.affiche();
}
}

Résultat du programme
Si n=1 on obtient à l’écran : Je suis un point de coordonnées 1,2
Si n=2 on obtient à l’écran : Je suis un cercle de surface 28.26
Si n=3 on obtient à l’écran : Je suis un cylindre de surface 244.92
Autrement on obtient à l’écran : Je suis un point de coordonnées 0.0
Rappel
- Surface d’un cercle = 3,14*rayon*rayon
- Surface d’un cylindre = 2*surface cercle + 2*314*rayon*hauteur

Page | 3
Matière : POO2
Filière : L2SIL
Enseignant : Ben Rkaya Moez

Indication
Comment peut-on déduire que Forme est une interface
D’après notre programme on a :
Forme f ;
f= new Point (...)
f= new Cercle (...)
f= new Cylindre (...)
Ceci nous amène à faire les deux hypothèses suivantes :
1/ Forme est une classe et les classes Point, Cercle et Cylindre héritent de Forme
2/ Forme est une interface et les classes Point, Cercle et Cylindre implémentent cette
interface
Vu que Cercle hérite de Point et que l’héritage multiple n’est pas autorisé en Java, donc
Cercle ne peut pas hériter de Forme → la deuxième hypothèse est confortée.

Page | 4

Vous aimerez peut-être aussi