• Aucun résultat trouvé

Java DUT 1 Feuille TD8 Université Paris-Est Marne-la-Vallée

N/A
N/A
Protected

Academic year: 2022

Partager "Java DUT 1 Feuille TD8 Université Paris-Est Marne-la-Vallée"

Copied!
3
0
0

Texte intégral

(1)

Java DUT 1 Feuille TD8 Université Paris-Est Marne-la-Vallée

On rappelle que l’on doit mettre une seule classe ou interface par fichier.

Exercice 1.—

On définit une classeEmployeepour représenter les salariés d’une entreprise qui comprend les champs suivants :

public class Employee {

private final String firstName;

private final String lastName;

private int salary;

}

Le champsalaryreprésentera le salaire brut annuel.

a) Écrire les accesseurs nécessaires pour cette classe.

b) Écrire un constructeur qui permet de créer un Employee.

public Employee (String firstName, String lastName, int salary) { }

c) Écrire un deuxième constructeur qui permet de créer un Employee dont le salaire n’est pas spécifié. Ce salaire sera provisoirement initialisé à 0.

On utilisera l’appelthis().

public Employee(String firstName, String lastName) { }

d) Écrire une méthodetoStringpour renvoyer une représentation d’un Em- ployee sous forme de chaîne de caractères.

e) Écrire une classe Test avec une méthode main qui teste les méthodes précédentes.

Exercice 2.—

On définit une interface Company pour représenter les salariés d’une en- treprise qui comprend les méthodes suivantes :

interface Company {

// add the Employee e to the Company void add(Employee e);

// remove the Employee e to the Compagny void remove(Employee e);

// returns the number of Employee of the compagny int size();

}

1

(2)

a) Recopiez l’interfaceCompany.

b) Écrire une classe implémentant l’interface Company appelé SetCompany.

Cette classe contiendra un champsetqui permet de stocker les Employee de la compagnie dans unSet. Un Set (voir l’interface Setdu paquetage util) permet de stocker des éléments dans un conteneur en évitant les dou- blons. Chaque Employee figurera donc exactement en un seul exemplaire dans le conteneur.

public class SetCompagny implements Compagny { private final Set<Employee> set;

}

c) Écrire un constructeur pour la classeSetCompagny. Le Set créé sera une instance de la classeHashSet<Employee>.

d) Quelles méthodes de la classe Object doit-on redéfinir dans la classe Employeepour que tout fonctionne correctement ? Pourquoi ? Redéfinis- sez ces méthodes.

e) Implémenter toutes les méthodes de l’interface.

f) Comment peut-on s’assurer qu’une référencenulln’est pas ajoutée dans le Set d’une Company ? Faites les modifications nécessaires. Pensez à la méthode statiqueObjects.requireNonNull(Employee e)de la classe Objects.

g) Ajouter dans l’interface une méthode qui renvoie la masse salariale totale.

interface Company { // ....

int getTotalSalaryMass();

}

g) Implémenter cette méthode. Vous pouvez utiliser une boucle foreach pour parcourir un Set.

Exercice 3.—

a) Modifier la méthode add de l’interface Company et son implémentation dansSetCompanypour qu’elle renvoie un booléen trueoufalse, true si l’ajout a été fait,falsesi l’ajout n’a pas été fait car l’Employee e est déjà dans le Set.

b) Modifier aussi la méthoderemovepour qu’elle renvoienullsi l’Employee n’est pas dans le Set et qu’elle renvoie l’Employee e qui vient d’être sup- primé sinon.

2

(3)

interface Company {

// add the Employee e to the Company boolean add(Employee e);

// remove the Employee e to the Compagny Employee remove(Employee e);

// returns the number of Employee of the compagny int size();

}

Exercice 4.—

a) Ajouter des commentaires pour créer une javadoc pour vos classes.

b) Compiler la javadoc (commandejavadoc -helpsous linux, menu Projet, Generer la javadoc, sous eclipse).

3

Références

Documents relatifs

f) Écrire une méthode contains(Pixel p) qui renvoie true si le point p passé en argument est un des points du polygone. Que doit ajouter dans la classe Pixel pour que cette

Écrire une classe ArrayStack qui implémente l’interface Stack. La classe ArrayStack contiendra un tableau table d’entiers dont la taille maximale est une constante MAX comme

La classe Index sera utilisée par la classe IndexTest suivante public class IndexTest {.. public static

Aide. Les arguments mot1 et mot2 seront les éléments d’indice 0 et 1 du tableau args qui contient des chaînes de caractères. Pour mettre une chaîne de caractères en majuscule,

d) Écrire dans la classe Segment une méthode toString permettant d’afficher les deux points d’un segment. On utilisera la méthode toString de Pixel selon la technique de

pour que le programme lise au clavier une chaîne de caractères puis l’af- fiche en la mettant en majuscule. On trouvera la documentation sur la classe String du packetage java.lang

c) Écrire une classe SegmentTest destinée à tester les classes Segment et Pixel. Elle contiendra une méthode main où on crée un segment s1 avec le premier constructeur et un segment

On définit un classe Polygon qui représente un polygone défini par une suite de points. Les Polygon peuvent avoir un nombre différent de points mais on veut que le nombre maximal