Beruflich Dokumente
Kultur Dokumente
Licence MI
TD : Compilation dexercices et
dextraits dexamens
1. Classes et visibilit
a. Parmi les appels suivant indiquez ceux qui sont corrects et ceux qui ne le sont pas
public class A {
public int i ;
private int a;
protected int b;
public void afficher()
}
public class B extends A {
public void afficher()
}
public class D {
Public A a = new A();
Public void afficher()
}
public class E {
Public B b = new B();
Public void afficher()
}
public class F {
Public B b = new B();
Public void afficher()
}
{ System.out.println(i+a+b); }
{ System.out.println(i+a+b); }
{ b.afficher();}
Licence MI
Public class D { void test() {B b =new B(); A a = new A(b); A a2 = new A(b); }
2011-2012
Licence MI
2011-2012
Licence MI
b. Public void ouvrir() : ouvre la poupe si elle nest pas dj ouverte et si elle ne se
trouve pas lintrieur dune autre poupe
c. Public void fermer() : ferme la poupe si elle nest pas dj ferme et si elle ne se
trouve pas lintrieur dune autre poupe
d. Public void placerDans(PoupeeRusse p) : place la poupe courante dans la poupe p
si elle nest pas dj dans une autre et si la poupe p ne contient aucune autre
poupe et si la poupe courante est ferme et la poupe p est ouverte et plus grande
e. Public void sortirDe(PoupeeRusse p) : sort la poupe courante de la poupe p si elle
est dans p et si p est ouverte
2011-2012
Licence MI
B.java
public class A {
public int i ;
public int k ;
private int j;
void afficher() {
void afficher(){
System.out.println(i+ j+k);}
System.out.println(i+ j) ; }
public int getI() { return i;}
public int getJ() { return j;}
public void setI(int i) {this.i=i;}
public void setJ(int j) {this.j=j;}
}
Test.java
2011-2012
Licence MI
2011-2012
Licence MI
Public PolygoneSegment(Point[] t)
{
segments = new Segment[t.length];
for (int i=0; i<segments.length; i++)
{
segments[i]
new
Segment(t[i],
t[(i+1)
t.length]);
}
}
Commentez le plus prcisment possible le code (type de mthode, type des variables,
fonctionnement, rle des appels de fonction, ).
Indiquez comment doit tre dclar lobjet segments .
2011-2012
Licence MI
Ce bouton est associ une figure qui sera dfinie lors de son instanciation.
On suppose dfinie dans la classe figure une mthode saisie() qui affiche une interface graphique
permettant la saisie des attributs de la figure.
Lorsque lon clique sur le bouton celui-ci demande la saisie des attributs de la figure, puis demande
un raffichage du composant.
1.
2.
3.
4.
5.
2011-2012
Licence MI
2. En utilisant les exceptions (et sans utiliser instance of), coder la mme mthode. On
rappelle que lorsquun appel est fait sur une mthode qui nest pas prsente dans une
classe, lexception NoSuchMethodException est leve.
2011-2012
Licence MI
2. Le serveur possde une liste des clients connects, donner la dclaration et linstanciation de
cette structure de donnes.
3. Initialisation
a. Le serveur cr et initialise une collection ( dfinir) de figures puis attend les
demandes de connexion des clients.
b. Lapplication cliente tablit une connexion avec le serveur.
c. Donner le code correspondant chacune de ces tapes.
4. Echange des donnes
a. Le serveur lit les figures ajoutes par chacun des clients puis constitue un nouvel
ensemble quil envoie vers chacun des clients.
b. Le client envoie sa propre liste de figures vers le serveur puis rcupre la liste
complte depuis le serveur et laffiche.
c. Donner le code correspondant chacune de ces tapes
2011-2012
Licence MI
Les documents sont tous caractriss par un titre et un auteur. Du point de vue programmation, un
document est caractris par linterface ci-dessous :
import Auteur;
public interface Document {
/** @return lauteur de ce document */
public Auteur getAuteur();
/** @return le titre de ce document */
public String getTitre();
/** @return une chane de caractres reprsentant ce document */
public String toString();
/** @param lobjet tester
* @return true si le paramtre est un document identique this */
public boolean equals(Object o);
/** indique si le document est emprunte ou non
* @return true ssi le document est emprunt
*/
public boolean estEmprunte();
/** permet de marquer comme emprunt ou non un document
* @param b true si le document est emprunt, false si il est disponible
*/
public boolean setEmprunte(boolean b);
}
1. (3 points) La classe Auteur permet de reprsenter les auteurs des documents. Un auteur est
dfini par son nom, de type chane de caractres, ses dates de naissance et de dcs de type Date.
La valeur de la date de dcs est null si lauteur est encore vivant. On veut pouvoir accder aux
diffrentes informations sur un auteur et tester si deux objets auteurs sont gaux (mmes nom et
dates de naissance/dcs).
La classe Date est dfinie en annexe.
Donnez un code java complet pour la classe Auteur.
2. (2 points) Le type Mois est une numration. Quest-ce que cela signifie ? Dfinir le type Mois.
2011-2012
Licence MI
3. (5 points) Dfinir une classe BaseDocumentaire comportant une liste de Documents (utiliser la
version gnrique des listes). Cette classe permet de rechercher des documents dans la liste par leur
titre ou leur auteur (mthode recherche), permettant de connatre les documents emprunts ou non
emprunts (mthodes rechercheEmprunte et rechercheNonEmprunte).
Coder chacune des mthodes (penser au type de donne renvoy par les mthodes).
5. (5 points) On veut dfinir plusieurs types de documents (livre, vido (avec ou sans sous titres),
enregistrement audio, photo, ). Dfinir le diagramme de ces classes.
Ces documents peuvent tre lus, regards ou couts. Comment dfinir ces proprits sans utiliser
dattributs ? Complter le daigramme.
- jour : int
- mois : Mois
- annee : int
+ Date(j : int, mois : Mois, annee : int)
+ toString() : String
+ equals(o : Object) : boolean
+ getJour() : int
+ getMois() : Mois
+ getAnnee() : int
+ compareTo(o : Object):int
+ differenceEnJours(d : Date):int
+ static aujourdhui():Date
2011-2012