Computing">
Nothing Special   »   [go: up one dir, main page]

TP Java Objet Corrige

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

JAVA : Premiers objets

Exercice 1 : Création et utilisation de crayons

a) Créer un programme Java qui permet à l’utilisateur de saisir la longueur et le diamètre d’un crayon et d’afficher son
volume.
Exemple de résultat à obtenir :
>java Crayon1
Saisir une longueur
8
Saisir un diametre
0.85
Le volume du crayon = 4.5373

public class Crayon1 {


public static void main(String [] args){
System.out.println("Saisir une longueur ");
int longueur = Lire.lireInt();
System.out.println("Saisir un diametre ");
double diametre = Lire.lireDouble();
double rayon = diametre / 2;
double surface = 3.14 * rayon * rayon;
double volume = surface * longueur;
System.out.println("Le volume du crayon = "+volume);
}
}

b) Créer la classe Crayon avec ses 2 propriétés « longueur » et « diamètre ». Pour le moment, les propriétés ne sont pas
privées et la classe Crayon ne dispose pas de méthode.

public class Crayon {


int longueur;
double diametre;
}

c) Créer un programme Java « UtiliseCrayon.java » qui permet à l’utilisateur de créer 2 crayons de longueurs différentes
et d’afficher les propriétés de chacun.

public class UtiliseCrayon {


public static void main(String [] args){
Crayon c1= new Crayon();
c1.longueur=4;
c1.diametre=0.5;
System.out.println("Adresse du crayon:"+c1.toString());
System.out.println("Longueur du crayon:"+c1.longueur);
System.out.println("Diametre du crayon:"+c1.diametre);
}
}

d) Grâce au mot clé « private », indiquez maintenant que les propriétés de « Crayon » sont privées. Que fait votre
programme « UtiliseCrayon » ?

Il y a erreur de compilation car les attributs sont privés.

e) Pour pouvoir créer des crayons avec des propriétés différentes, créer un constructeur « Crayon » qui reçoit 2
paramètres « lg » et « diam ». Grâce à votre programme « UtiliseCrayon », créez 2 crayons différents et afficher leurs
propriétés.
Exemple de résultat à obtenir :
>java UtiliseCrayon

Proprietes du premier crayon:


diametre=0.5
longueur=5

Proprietes du second crayon:


diametre=0.8
longueur=7

Page 1
public Crayon (int longu , double diam) {
this.longueur = longu;
this.diametre = diam;
}

f) Créer la méthode publique « affiche » de la classe « Crayon » et modifiez votre programme « UtiliseCrayon » pour
afficher les propriétés de vos 2 crayons.

public void affiche() {


System.out.println("diametre=" + diametre);
System.out.println("longueur=" + longueur);
}

Essayez de définir la méthode « affiche » privée. Que se passe t-il quand vous essayez d’utiliser vos crayons ?
On en peut plus utiliser la méthode affiche() car elle est privée : Erreur de compil

g) Créer la méthode privée « donneVolume » de la classe « Crayon » et apportez les modifications nécessaires pour
qu’un appel de la méthode « affiche() » affiche maintenant à la fois la longueur, le diamètre et le volume du crayon.

private void affiche(){


System.out.println("diametre=" + diametre);
System.out.println("longueur=" + longueur);
System.out.println("volume=" + donneVolume());
}

private double donneVolume() {


double pi = 3.14;
double r = diametre/2;
double volume = pi*r*r*longueur;
return volume;
}

h) Votre crayon est usé ! Il faut donc le tailler ! Tailler un crayon consiste à diminuer sa longueur de quelques
millimètres. Créer la méthode publique « taille » qui reçoit en argument le nombre de millimètres à tailler.
Avec votre programme « UtiliseCrayon », tailler vos crayons et afficher les nouvelles caractéristiques de vos crayons.

Exemple
…/…
leCrayon.taille(10); // Taille le crayon d’un centimètre
leCrayon.affiche(); // La longueur du crayon va être 1 cm plus
courte
…/…

public void taille(int longueur) {


this.longueur = this.longueur - longueur;
}

i) Modifiez votre méthode « taille » pour interdire d’avoir des crayons de longueur négative. Forcez dans ce cas la
longueur à zéro.

public void taille(int longueur) {


this.longueur = this.longueur - longueur;
if (this.longueur < 0){
this.longueur = 0;
}
}

Page 2
Exercice 2 : un objet « Telecarte50 »
Telecarte50
Voici la classe Telecarte50 : - unites : int
+ getUnites () : int
+ debiterUnites (int n) : void

Une instance de cette classe sera un objet : une carte téléphonique de 50 unités.
Le nombre d’unité restantes est contenu dans la propriété unites. A la création de l’objet, cette propriété a pour valeur 50.
La méthode « getUnites » retourne le nombre d’untiés restantes.
La méthode « debiterUnites » debite la carte du nombre d’unités passées en paramètres.

a) Créer la classe Telecarte50.

b) Créer un programme Java « UtiliseTelecarte.java » qui :


• Crée une télécarte
• Affiche le nombre d’unités de la télécarte
• Demande à l’utilisateur s’il veut téléphoner
• S’il répond « OUI », demande à l’utilisateur le nombre d’unités consommées
• Débite le nombre d’unités de la télécarte si cela est possible sinon affiche un message d’erreur
• Affiche le nombre d’unités restantes.
public class Telecarte50 {
private int unites = 50;

public int getUnites() {


return unites;
}

public void debiterUnites(int n) {


unites = unites - n;
}

public class UtiliseTelecarte {


public static void main(String args[]){
Telecarte50 laTelecarte = new Telecarte50();
System.out.println("La telecarte dispose de " + laTelecarte.getUnites() + " unites");
System.out.println("Voulez-vous telephoner ?");
char rep = Lire.lireChar();
if (rep == 'O'){
System.out.println("Nb unites consommees:");
int nb = Lire.lireInt();
if ((laTelecarte.getUnites() - nb) >= 0){
laTelecarte.debiterUnites(nb);
}
else{
System.out.println("Solde insuffisant");
}
}
System.out.println("Il vous reste " + laTelecarte.getUnites() + " unites");
}
}

Page 3

Vous aimerez peut-être aussi