Correction TP5

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

Correction TP5 : 2022-2023

Exercice 1:
package String;

import java.util.ArrayList;
import java.util.List;

public class EX2 {

public static void main(String[] args)


{
String s1="abc",
s2="",
s3="un \" guillemet",
s4=" et hop \n une nouvelle ligne ",
s5 = "1.2563556e-3" ;
List<Integer> l = new ArrayList<Integer> ();
l.add(2);
l.add(100);
l.add(60);
l.add(8655);
String s=s1 + s2 + s3 + s4;
System.out.println("s : \""+s+"\"");

System.out.println("s1 : \""+s1+"\"");
System.out.println("s1.length() = "+s1.length());
System.out.println("s1.toUpperCase() : \""
+s1.toUpperCase()+"\"");
System.out.println("s1.equals(\"def\") = "
+s1.equals("def"));
System.out.println("s1.equals(\"abc\") = "
+s1.equals("abc"));
System.out.println("s1.compareTo(\"agc3 monde\") = "
+s1.compareTo("agc3 monde"));
System.out.println("s1.charAt(1) = "+s1.charAt(1));
System.out.println("s1.replace(\"a d\") = "+s1.replace("a", "d"));
System.out.println("s1.indexOf(\"c\") = "+s1.indexOf("c"));
System.out.println("s3.concat(\"s4\") = "+s3.concat(s4));
System.out.println("Double.parseDouble(\"s5\") =
"+Double.parseDouble(s5)); //ou bien
System.out.println("Double.valueOf(\"s5\") = "+Double.valueOf(s5));
System.out.println("La valeur maximale de la classe Short =
"+Short.MAX_VALUE);
System.out.println("La valeur minimale de la classe Byte =
"+Byte.MIN_VALUE);
System.out.println("Liste l = "+l);
}

classe String

• Valeur littérale chaîne de caractères :


o suite de caractères Unicode (16 bits) encadrée par des guillemets
o le caractère \ introduit une de-spécialisation :
▪ \" est le caractère guillemet,
▪ \n le passage au début de la ligne suivant
▪ \uxyzw où x, y, z et w sont des chiffres hexadécimaux, est un
caractère codé en Unicode, \u0031 est le chiffre 1
o "" est la chaîne vide
• String définit un objet chaîne de caractères constant (inchangeable).
Même si certaines méthodes renvoient une chaîne distincte, la chaîne initiale
est inchangée.
• + est opérateur de concaténation de String
• les caractères d'une chaîne sont numérotés à partir de la position 0.
• Méthodes d'instance :
c'est à dire s'appliquant sur un objet String
o length() renvoie le nombre entier de caractères
o toUpperCase() donne une chaîne avec les minuscules converties en
majuscule
o toLowercase() ...
o equals(String autreChaine) renvoie true si la chaine est égale caractère
à caractère à l'autreChaine
▪ (s1 == s2) où s1 et s2 sont des String, n'est qu'une
comparaison des références et non de leur contenu !
o compareTo(String autreChaine) renvoie une valeur :
▪ positive si la chaine est supérieure à l'autreChaine selon l'ordre
des caractères Unicode,
▪ négative si la chaine est inférieure à l'autreChaine,
▪ 0 si la chaine est égale à l'autreChaine.
o charAt(int position) donne le caractère à la position indiquée
o String replace (char c1, char c2); crée une nouvelle chaîne en
remplaçant le caractère c1 par c2
o int indexOf (char c); fournit l’indice du caractère c dans la chaîne
o String concat(String s); concatène la chaîne de l’objet et la chaîne s

Exercice 2:
Classe Article
package Vector;

public class Article implements Exportable {

private int code;


protected String nom;
protected double prixHT;

private static int comp;

public int getCode() { // le code de l'article est en lecture seule


return code;
}

public Article(String nom, double prixHT) {


this.code = ++comp; // Le code doit être unique pour chaque article
this.nom = nom;
this.prixHT = prixHT;
}

public double prixTransport() {


return prixHT * 0.05; // 5% du Prix Hors Taxes de l'article
}

public String toString() {


return this.code + " " + this.nom;
}
// méthodes de l’interface
public double droitsDouane() {
return 0.1 * prixHT;
}

public String paysDestination() {


return "France";
}

}
Classe Fragile
package Vector;

public class Fragile extends Article {


protected String emballage;
public Fragile(String nom, double prixHT) {
super(nom, prixHT);
}

public Fragile(String emballage, String nom, double prixHT) {


super(nom, prixHT);
this.emballage = emballage;
}
public double prixTransport() {
return 2 * super.prixTransport();
}

La relation entre Article et Magasin est une relation d'association avec navigation
dans un seul sens.

On doit ajouter une liste d'articles dans la classe Magasin :

1. public class Magasin {


2. private Vector<Article> articles;
3.
4. }

Classe Magasin
package Vector;

import java.util.Enumeration;
import java.util.Vector;

public class Magasin {

private Vector<Article> articles;

public Magasin() {
articles = new Vector<>();
}

public void add(Article a) {


articles.addElement(a);
}

public boolean contains(Article a) {


if (articles.contains(a)) {
return true; }
else {
return false; }}

public void delete(int position) {


if (articles.get(position) != null) {
System.out.println ("L'article ayant le code " +position+ " a été
supprimé");
articles.remove(position);
}
}
}
// 1ère méthode
public void tousLesArticles() {
//Parcourir les éléments en utilisant Enumeration
Enumeration en = articles.elements();
while(en.hasMoreElements()){
System.out.println (en.nextElement());
}

}
// 2ème méthode
public void tousLesArticles() {
// for (Article article : articles) {
// System.out.println(articles);
// }
// 3ème méthode
// for (int i = 0; i < articles.size(); i++) {
// System.out.println(articles.get(i));
// }

}
Classe Test
package Vector;

import java.util.Vector;
public class Test {
public static void main(String[] args)
{
// Création des articles fragiles
Article tv = new Fragile ("LG", 7000.00);
Article machinealaver = new Fragile ("Beko", 6500.00);
Article refregerateur = new Fragile ("SAMSUNG", 5800.00);
Article microondes = new Fragile ("WHIRPOOL", 1800.00);

// afficher le prix de transport du tv


System.out.println ("Le prix de transport de l'article tv est : "
+tv.prixTransport());

// Création d'un magasin


Magasin Graiet = new Magasin ();

// Ajouter des objets dans le vecteur


Graiet.add(tv);
Graiet.add(machinealaver);
Graiet.add(refregerateur);
Graiet.add(microondes);

// Afficher la liste de tous les articles


System.out.println ("\n************* Liste de tous les articles :
*************");
Graiet.tousLesArticles();

// Tester si un article est dans le magasin ou pas


System.out.println ("\nTest si un article est dans le magasin ou pas : "
+Graiet.contains(refregerateur));

// Supprimer un article
Graiet.delete(1);

// Afficher la liste des articles restants


System.out.println ("\n************* Liste des articles restants :
*************");
Graiet.tousLesArticles();
}
}

Pour rendre un article exportable, la classe Article doit implémenter l'interface Exportable. Ensuite, on
doit redéfinir les deux méthodes de l'interface pour :

• spécifier le pays de destination.


• régler les droits de douane.

Interface Exportable
public interface Exportable {
public double droitsDouane();

public String paysDestination();


}

Vous aimerez peut-être aussi