Programmation Orientée Objet avec JAVA TP N°1 Environnement de développement. C
Programmation Orientée Objet avec JAVA TP N°1 Environnement de développement. Compilation et exécution des premières classes. Utilisation de quelques classes de l'API Objectif du TP : ▪ Se familiariser avec l’environnement de développement en langage JAVA o Mode commande o Utilisation de l'IDE Eclipse ▪ Compiler et exécuter une application "standalone" et une applet java ▪ Créer une classe et utiliser les constructeurs, les getters et les setters ▪ Utiliser la méthode toString de la classe Object et en créer une pour sa propre classe ▪ Utiliser quelques classes de l'API : Scanner, JOptionPane, String Organisation du travail : Il est recommandé de créer un répertoire pour contenir tous les fichiers de vos TPs (ex:JAVA/TP). Pour chaque TP, vous créerez un sous répertoire. Par exemple pour le TP1, créez le sous répertoire JAVA/TP/TP1. De même pour chaque exercice vous créerez un sous répertoire (JAVA/TP/TP1/Exo1, JAVA/TP/TP1/Exo2, …etc.). Exercice 1 : compiler et exécuter une application "standalone" a-Lecture d'une donnée au clavier avec la classe Scanner et affichage d'un message avec System.out.println(message) Ecrire une classe BonjourConsole qui utilise la classe java.util.Scanner de l'API pour lire au clavier votre nom, puis affiche "Bonjour " suivi par votre nom sur l’écran de la console. (Voir Annexe 1 pour apprendre à utiliser la classe Scanner) b-Lecture d'une donnée au clavier avec la boite de dialogue JOptionPane Ecrire une classe BonjourBoiteDialogue qui utilise la classe javax.swing.JOptionPane de l'API pour lire au clavier votre nom en utilisant la méthode showInputDialog, puis affiche "Bonjour " suivi par votre nom dans une boite de dialogue avec la méthode showMessageDialogue. (Voir Annexe 2 pour apprendre à utiliser la classe JOptionPane) Rappel : 1. Une application standalone possède au moins une classe qui contient la méthode main ayant exactement la signature « public static void main(String[] args) » 2. Pour compiler, utiliser la commande javac suivi du nom du fichier (javac <nomFichier>). Exemple: • javac BonjourConsole.java • javac BonjourBoiteDialogue.java Attention : vous devez avoir modifié le PATH pour exécuter les commandes java à partir de n'importe quel répertoire. 3. Pour exécuter une application, il faut présenter à la JVM la classe principale (celle qui contient la méthode) en donnant le nom de la classe: java <nomClasse>. Chercher à ne pas respecter ces règles et relevez les erreurs qui se produisent lors de la compilation et lors de l'exécution. (Conseil : créer un ficher word qui contient deux tableaux. Mettez dans le premier tableau les erreurs de compilation et dans le deuxième les erreurs à l'exécution). Exercice 2 : Créer une classe à partir d'un diagramme de classe UML Voici la spécification en UML de la classe Livre : Livre -titre : String -auteur : String -nbPages : int {nbPages > 0} +Livre() +Livre(auteurValue : String, titreValue : String) +Livre(auteurValue : String, titreValue : String, nbPagesValue : int) +getAuteur() : String +getTitre() : String +getNbPages() : int +setAuteur(auteurValue : String) : void +setTitre(titreValue : String) : void +setNbPages(nbPagesValue : int) : void +toString() : String +plusVolumineuxQue(l : Livre ) : boolean +<<static>>plusVolumineuxQue(l1:Livre, l2:Livre) : boolean +aMemeAuteurQue(l : Livre) : boolean +<<static>>aMemeAuteurQue(l1 : Livre, l2 : Livre) : boolean La méthode plusVolumineuxQue(l : Livre ) : méthode d'instance qui compare le nombre de pages du livre courant avec celui du livre passé en argument. La méthode plusVolumineuxQue(l1 : Livre, l2 : Livre ) : méthode de classe qui compare le nombre de pages des deux livres passés en arguments. La méthode aMemeAuteurQue(l : Livre) : méthode d'instance qui teste si le livre courant a le même auteur que celui passé en argument. La méthode aMemeAuteurQue(l1 : Livre, l2 : Livre) : méthode de classe qui teste si les deux livres ont le même auteur. Travail à faire: 1- Créer la classe Livre 2- Créer une classe TestLivre qui utilise chacun des constructeurs pour créer respectivement les trois livres ci-dessous : Livre l1 (Créé par le constructeur par défaut): Titre : Au Cœur de java : Notions Fondamentales Auteur : Horstman NbPages : 820 Livre l2 (Créé par le deuxième constructeur) Titre :Entreprise Java Bean Auteur : Richard Monson-Haefel NbPages : 568 Livre l3 (Créé par le troisième constructeur) Titre : Au Cœur de java : Fonctions Avancées Auteur : Horstman NbPages : 950 3- Transformer votre méthode toString() en commentaire en la délimitant par /* et */, puis exécuter l'instruction System.out.println(l1); 4- Afficher le titre, l'auteur, et le nombre de pages du premier livre en utilisant l'instruction System.out.println(l1); 5- Comparer les nombres de pages des deux premiers livres en utilisant la méthode d'instance 6- Comparer les nombres de pages du 1er et du 3ème livre en utilisant la méthode de classe 7- Tester si Livre1 a le même auteur que Livre2 en utilisant la méthode d'instance 8- Tester si Livre1 a le même auteur que Livre3 en utilisant la méthode de classe 9- Calculer et afficher la somme des nombres de pages des deux premiers livres Exercice 3: Manipulation des chaînes de caractères : Classe java.lang.String Ecrire une classe ManipuleString qui permet d'effectuer les opérations suivantes: A. Créez une variable de type int, affectez-lui une valeur, puis convertissez cette variable en chaîne (Ex: le nombre 123 devient "123") . B. Lire une string au clavier, puis lui enlever les éventuels blancs au début et à la fin, convertir tous ses caractères en majuscules puis afficher le résultat. C. Lire deux chaînes s1 et s2 et tester si elles commencent par le même caractère. D. Lire deux chaînes s1 et s2 et afficher les résultats renvoyés par les expressions « s1 == s2 », « s1.equals(s2) », « s1.compareTo(s2) » et , « s1.compareToIgnoreCase(s2) ». Tester avec s1="abcd" et s2="abcd", puis s1="abcd" et s2= "AbcD". E. Lire deux chaînes s1 et s2 et effectuer les tests suivants: a. «s1 commence-t-elle par s2 ? », b. «s1 finit-elle par s2 ? » c. «s1 contient-elle s2 ? » F. Lire deux chaînes s1 et s2 et si s1 contient s2, renvoyer s1 privée de s2 (s’intéresser à substring), sinon renvoyer s1. G. Si s est une chaîne de caractères, l’expression s.intern() renvoie une chaîne ayant les mêmes caractères que s mais appartenant à une collection de chaînes sans doublons que Java maintient et dont les chaînes figurant dans le programme source font partie d’office. Lire deux chaînes s1 et s2 et constater qu’à la suite des transformations « s1 = s1.intern(); » et « s2 = s2.intern(); » les expressions « s1.equals(s2) » et « s1 == s2 » deviennent équivalentes. POO avec JAVA TP N°1 Larbi Hassouni Annexe 1 : Classe java.util.Scanner public final class Scanner extends Object implements Iterator<String>, Closeable Exemple de programme Pour plus d'imformation consulter l'API import java.util.InputMismatchException; import java.util.Scanner; public class TestScanner03 { public static void main(String[] args) { try{ Scanner stdin = new Scanner(System.in); System.out.print("Donner un entier de type byte(-128 à 127) :"); byte b = stdin.nextByte(); System.out.print("Donner un entier de type short (-32768 à 32767) :"); short h = stdin.nextShort(); System.out.print("Donner un entier de type int (-2^31 à 2^31-1) :"); int n = stdin.nextInt(); System.out.print("Donner un entier de type long (-2^63 à 2^63-1) :"); long l = stdin.nextLong(); System.out.print("Donner un réel de type float (utiliser , pour partie fractionnaire) :"); float f = stdin.nextFloat(); System.out.print("Donner un réel de type double (utiliser , pour partie fractionnaire) :"); double d = stdin.nextDouble(); System.out.println("Donner une suite de tokens séparés par des espaces :"); String s1 = stdin.next(); //lit le premier token String s2 = stdin.nextLine(); //lit tout le reste de la ligne System.out.println("b = " + b + "\th = " + h + "\tn = " + n + "\tl = " + l); System.out.println("f = " + f + "\td = " + d); System.out.println("s1 = " + s1 + "\ts2 = " + s2); stdin.close(); }catch(InputMismatchException e){ System.out.println("Vous avez saisie une valeur erronée " +"\nAttention : utiliser la virguel et non le point pour les nombres décimaux : " + e); } } } Exécution: Donner un entier de type byte(-128 à 127) :10 Donner un entier de type short (-32768 à 32767) :20 Donner un entier de type int (-2^31 à 2^31-1) :30 Donner un entier de type long (-2^63 à 2^63-1) :40 Donner un réel de type float (utiliser , pour partie fractionnaire) :50,25 Donner un réel de type double (utiliser , pour partie fractionnaire) :125,75 Donner une suite de tokens séparés par des espaces : abcd efgh ijklm b = 10 h = 20 n = 30 l = 40 f = 50.25 d = 125.75 s1 = abcd s2 = efgh ijklm POO avec JAVA TP N°1 Larbi Hassouni Annexe 2 : Classe javax.swing.JOptionPane public class JOptionPane extends JComponent implements Accessible Exemple de programme Pour plus d'imformation consulter l'API Classe JOptionPane : Affichage de messages avec la méthode showMessageDialog import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JOptionPane; public class TestShowMessageDialog { public static void main(String[] args){ //default title and icon JOptionPane.showMessageDialog(null, "Message affiché au milieu de la boite."); //custom title, warning icon JOptionPane.showMessageDialog(null, "Message affiché au milieu de la boite.", "barre de titre : Warning Message", uploads/Litterature/ uic-tp1-sujet-correction.pdf
Documents similaires










-
25
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jan 24, 2021
- Catégorie Literature / Litté...
- Langue French
- Taille du fichier 0.8331MB