0% ont trouvé ce document utile (0 vote)
14 vues14 pages

Cour Java

Cour sur Java pour débutant

Transféré par

Ali Sadiqui
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
14 vues14 pages

Cour Java

Cour sur Java pour débutant

Transféré par

Ali Sadiqui
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Cour Java

Définition
Java est un langage orienté objet développé par la société Sun. La syntaxe générale est
très proche de celle du C, mais Java n'est pas une surcouche du C et la syntaxe est
beaucoup plus claire que celle du C++.
Les avantages :
Les avantages de Java son nombreux. Le byte-code, tout d'abord, qui assure à Java une
portabilité complète vers de très nombreux systèmes. L'importance de l'api de base qui
offre tous les services de base, notamment pour la construction des interfaces
graphiques. La 3ème force de Java, c'est son adaptabilité dans de nombreux domaines,
autant pour le web que pour les systèmes embarqués.

Liste des Système disposant d'une implémentation de Java :


Windows 3.1/95/98/NT4/2000/ME/XP/CE, MacOS, Solaris, Linux, AIX, OS/2, IRIX,
UnixWare, HP/UX, Digital Unix, AmigaOS, BeOS, OpenVMS, FreeBSD, SunOS,
RiscOS
Cette liste n'est pas exhaustive et est donnée à titre d'exemple.

Que sont le JRE, le JDK et le SDK ?

JRE :
Java Runtime Environement, c'est le kit destiné au client pour pouvoir exécuter un programme Java. Il se
compose essentiellement d'une machine virtuelle Java (JVM) capable d'exécuter le byte-code et les
bibliothèques standard de Java.
SDK :
Standard Development Kit, c'est le kit destiné au programmeur. Ce kit est composé d'un JRE, d'un
compilateur et de nombreux programmes utiles, des exemples de programmes Java, les sources de toutes
les classes de l'api.
JDK :
Java Development Kit, c'est l'ancien nom du SDK. Le JDK a été renommé SDK depuis la version 1.2.2.

Premier programme

1- Une Class test qui permet d’afficher « premier programma java »


2- Une class test qui permet de calculer la somme de deux nombre A et B
3- Une class test qui permet de calculer le max de deux nombre A et B
4- Une class qui permet d’afficher les 10 premiers nombre
5- Une class qui permet d’afficher la somme les 10 premiers nombre

Les
TP

 Question 1
Définissez une classe Point permettant de manipuler un point du plan. Cette classe
contiendra :

 un constructeur,
 les méthodes d'accès et de modification des coordonnées,
 une méthode deplacer qui effectue une translation définie par les arguments,
 une méthode afficher qui affiche les coordonnées d'un point,
 une méthode toString qui transforme un point en une chaîne de caractères ``(x,y)''.

On donnera un exemple d'utilisation avec une méthode main

 Question 2
Définissez une classe Individu composée d'un nom, d'une adresse, et d'un numéro de
telephone. Vous écrirez aussi les méthodes constructeur, affectation et consulation des
champs et affichage.

 Question 3
Modifiez la classe Individu pour pouvoir :

 afficher le nombre d'objets créés,


 gérer la liste des individus créés,
 afficher la liste des individus créés,

 Question 4
La classe Mesure modélise des mesures entières (températures par exemple) :

 une mesure a une Valeur de type entier.


 le constructeur de la classe Mesure permet d'instancier un objet de cette classe avec la
valeur entière fournie en paramètre. Si la valeur fournie est en-dehors de l'intervalle [-
100,100] (Min et Max), le message ``mesure hors intervalle'' est affiché et la valeur
n'est pas prise en compte.
 NbMesures, le nombre d'instances de la classe Mesure est géré par la classe ainsi que
SomMesures la somme des valeurs des mesures instanciées.
 la méthode afficherMoyenne calcule et affiche la moyenne de toutes les mesures
instanciées, le nombre de mesures est également affiché. S'il n'y a pas de mesures, le
message ``zéro mesures'' est affiché.

La méthode main de la classe EntrerMesures permet à l'utilisateur d'entrer un nombre


arbitraire de valeurs au clavier. Ces valeurs sont utilisées pour instancier des Mesures. Quand
la valeur 0 est entrée, le programme fait appel à afficherMoyenne avant de terminer
Question 1: Ecrivez un programme qui affiche la décomposition en base 10 d'un entier
entré sur la ligne de commande. Par exemple, le nomre 123 sera affiché sous la forme

Question 2: Ecrivez un programme qui calcule et affiche la moyenne des entiers entrés en
ligne de commande.

Question 3: Ecrivez un programme qui calcule la valeur de la suite de Fibonacci ( est passé
en paramètre sur la ligne de commande) :

Un-1 = Un-2 = 1
Un = Un-1 + Un-2

Exercice 1 : compiler et exécuter une application


Voici le source de l'application HelloWorld :
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Compilez cette classe à l'aide de la commande : javac HelloWorld.java

Exécuter la classe HelloWorld à l'aide de la commande : java HelloWorld

Exercice 3 : une première "vraie" classe


Voici le source de la classe Livre :
public class Livre {
// Variables
private String titre, auteur;
private int nbPages

// Constructeur
public Livre(String unAuteur, String unTitre) {
auteur = unAuteur;
titre = unTitre;
}

// Accesseur
public String getAuteur() {
return auteur;
}

// Modificateur
public void setNbPages(int n) {
nbPages = nb;
}
Corrigez quelques petites erreurs et ajoutez une méthode main() pour
 Créer 2 livres,
 Faire afficher les auteurs de ces 2 livres.

Correction :

Classe Livre

Exercice 4 : accesseurs et modificateurs


Modifiez la classe Livre :

 Ajoutez un accesseur pour la variable titre et la variable nbPages.


 Ajouter un modificateur pour les variables auteur et titre.
 Changez le modificateur de nbPages : il ne devra changer le nombre de pages que si
on lui passe en paramètre un nombre positif, et ne rien faire sinon, en affichant un
message d'erreur. On remarquera l'intérêt des variables private : on peut contrôler
leur modification dans les éventuelles méthodes qui permettent de les modifier.
 Dans la méthode main(),
o donnez le nombre de pages de chacun des 2 livres,
o faites afficher ces nombres de pages,
o calculez le nombre de pages total de ces 2 livres et affichez-le.

Correction :

Classe Livre

Exercice 5 : 2 classes dans 2 fichiers source pour une


application
Ecrivez une classe TestLivre dans un fichier TestLivre.java. Cette classe a une seule
méthode main() qui fait ce que fait la méthode main() de la classe Livre.

Faites exécuter la méthode main() de la classe TestLivre.

Correction :

Classe TestLivre

Exercice 6 : 2 classes dans un seul fichier source


Supprimez le fichier TestLivre.class.

Insérez la classe TestLivre dans le fichier Livre.java et supprimez la méthode main() de


la classe Livre (si ce n'est déjà fait).
Compilez le fichier Livre.java. Vérifiez que le compilateur a créé 2 fichiers ".class" et
faites exécuter la méthode main() de la classe TestLivre.

Correction :

Fichier Livre.java

En général il vaut mieux avoir un fichier .java par classe. Vous terminerez donc ce TP
avec les 2 classes Livre et TestLivre dans 2 fichiers séparés.

Exercice 7 : méthode toString()


1. Dans la classe Livre, ajoutez une méthode afficheToi() qui affiche une description
du livre (auteur, titre et nombre de pages). Utilisez afficheToi() dans la méthode
main() de TestLivre.
2. Ajoutez l'instruction System.out.println(livre) où livre désigne un des livres
que vous avez créés. Vous essaierez de comprendre ce qui est affiché après avoir fait
les 2 questions suivantes.
3. Ajoutez une méthode toString() qui renvoie une chaîne de caractères qui décrit le
livre. Donnez à la méthode toString() le même profil que la méthode de même nom
de la classe java.lang.Object (cherchez dans les API du JDK). Exécutez à nouveau
la classe TestLivre. Voyez ce qui est affiché maintenant par l'instruction
System.out.println(livre). Miracle ! println() utilise automatiquement la
méthode toString() de la classe de l'objet qu'il a à imprimer. Essayez de trouver une
explication rationnelle en faisant la question suivante.
4. Il faut savoir chercher dans la documentation de l'API (javadoc). En partant de la
classe java.lang.System et en cliquant sur les liens, retrouvez dans la
documentation que System.out.println(objet) affiche ce que retourne la
méthode toString de la classe de objet.
5. Modifiez la méthode afficheToi() pour utiliser toString().

Correction :

Fichier Livre.java
Fichier TestLivre.java
Recherche dans la javadoc du JDK

Exercice 8 : les constructeurs


1. Enlevez (provisoirement) le seul constructeur de la classe Livre. Sans ajouter de
nouveau constructeur, peut-on quand même créer un nouveau livre dans la méthode
main ? Si c'est possible, créez un livre écrit par Victor Hugo et faites afficher son titre
et son auteur.
2. Remettez le constructeur que vous avez enlevé. Est-ce que le code de la méthode
main de la question précédente fonctionne toujours (testez) ?
3. Ajoutez 2 constructeurs pour avoir 3 constructeurs dans la classe :
o un constructeur qui n'a pas de paramètre,
o un qui prend en paramètre l'auteur et le titre du livre,
o et l'autre qui prend en plus le nombre de pages.

Utilisez les 3 constructeurs (et éventuellement d'autres méthodes) pour créer 3 livres
de 300 pages dans la méthode main de TestLivre.

Exercice Swing

Il s'agit d'écrire en JAVA une application de conversion de sommes exprimées en francs vers
des sommes exprimées en Euros. La figure 1 ci-dessous présente l'interface graphique de la
fenêtre principale de cette application.

Celle-ci est constituée de :

 une "étiquette" (JLabel) valeur en Francs :,


 un champ de saisie (JTextField) dans lequel l'utilisateur donne la valeur à convertir
(exprimée en francs),
 un bouton (JButton) qui déclenche la conversion,
 une "étiquette" (JLabel) valeur en Euros :,
 un champ de texte (JTextField non éditable par l'utilisateur) où la valeur convertie
(exprimée en euro) est affichée,
 une "étiquette" (JLabel) taux de conversion: 0.33, qui affiche le taux appliqué lors des
conversions.

1. Création de la fenêtre principale de l'application.

Nous allons dans un premier temps écrire une classe Convertisseur qui étend la classe
JFrame (package javax.swing) et qui correspond à la fenêtre principale de l'application.
Dans cette fenêtre on placera les composants suivants :

 un JLabel pour étiqueter le champ de saisie de la valeur à convertir


 un JTextField pour saisir la valeur en francs
 un JButton pour déclencher l'action de conversion
 un second JLabel pour étiqueter le champ d'affichage de la valeur convertie
 un second JTextField pour afficher la valeur convertie (pour empêcher son édition par
l'utisateur on lui fixera sa propriété editable à false).
 un dernier JLabel pour afficher le taux de conversion.

Pour placer ces composants dans la fenêtre (en fait dans le contentPane de cette fenêtre), on
remplacera le layout par défaut du contentPane (un BorderLayout) par un FlowLayout.
L'ajout des composant se fera donc par la méthode add avec comme seul paramètre la
référence du composant à ajouter. Les composants sont placés en ligne les uns après les autres
dans l'ordre où ils sont ajoutés à la fenêtre.

Une fois les composants placés dans la fenêtre de l'application, on demandera à cette dernière
de s'afficher (méthode setVisible) mais au préalable on demandera à la fenêtre d'ajuster
automatiquement sa taille (méthode pack) en fonction des composants qu'elle contient et des
"gestionnaires de mise en place" (layout managers) utilisés.

1. Ecrire, compiler et tester la classe Convertisseur en respectant les indications


précédentes. Vous constaterez que un clic sur la case de fermeture de la fenêtre a pour effet
de masquer celle-ci mais ne termine pas l'application. Pour arrêter celle-ci il faudra utiliser le
bouton approprié dans la barre d'outils de Kawa.
2. Observer le rôle de la méthode pack. Mettre l'appel de celle-ci en commentaire, recompiler
la classe Convertisseur, relancer l'exécution et observer le résultat obtenu.

2. Gestion de l'interaction sur la fenêtre de conversion

Dans cette version primitive de l'application la gestion de l'interaction va consister à :

 traiter les événements de type WindowEvent (package java.awt.event) pour faire en


sorte que l'exécution se termine suite à un clic sur la case de fermeture de la fenêtre,
 traiter les événements de type ActionEvent (package java.awt.event) générés lors
d'un clic sur le bouton.

a) fermeture de la fenêtre.

L'objet Convertisseur (un JFrame)est source d'événements de type WindowEvent lorsque


des interactions ont lieu avec celui-ci : déplacement de la fenêtre, redimensionnement de la
fenêtre, fermeture de la fenêtre... L'arrêt de l'application doit être provoqué suite à un
événement de fermeture (WINDOW_CLOSING). Pour cela il faut implémenter la méthode
adéquate de l'interface WindowListener. Une solution est de définir cette méthode dans la
classe Convertisseur, et d'enregister l'objet Convertisseur comme étant à l'écoute
de lui même pour les événements de type WindowEvent (méthode
addWindowListener de JFrame). L'opération pour terminer l'application consiste à
effectuer un appel à la méthode exit de la classe System (package java.lang).

Modifier la classe Convertisseur pour gérer la fermeture de la fenêtre. Compiler et


tester la classe ainsi modifiée.

b) gestion de la conversion

Lorsque l'utilisateur clique sur le bouton convertir, la valeur exprimée en francs et contenue
dans le premier JTextField doit être convertie en Euros, et la valeur convertie doit être
affichée dans la deuxième JTextField. Pour cette conversion, on appliquera dans un
premier temps le taux fixe suivant : 1 Euro = 6,55 FF.

De la même manière que précédemment on pourra modifier la classe Convertisseur afin


de gérer les ActionEvent générés lors d'un clic sur le bouton (la source des événements est
le bouton). La récupération de la valeur contenue dans un JTextField s'effectue sous la
forme d'une chaîne de caractères (String). Pour faire la conversion, il faudra dans un
premier temps convertir cette chaîne en réel (double); pour cela on pourra utiliser la méthode
parseDouble de la classe Double (package java.lang). En cas d'erreur lors de cette
conversion d'une chaîne vers un double (par exemple la valeur entrée contient des caractères
autres que des chiffres) on se contentera dans un un premier temps d'afficher un message sur
la console (System.out).

Modifier la classe Convertisseur pour gérer la conversion des Francs vers les Euros.
Compiler et tester la classe ainsi modifiée.

c) gestion des erreurs de saisie

En cas d'erreur dans la saisie de la valeur à convertir plutôt qu'un simple affichage sur la
console on préférera afficher un panneau d'alerte (figure 2). La construction et l'affichage d'un
tel panneau est une opération simple grâce à la méthode statique showMessageDialog de
la classe JOptionPane.

Modifier la classe Convertisseur pour signaler les erreurs de saisie avec un paneau
d'alerte. Compiler et tester la classe ainsi modifiée.
3. Ajout d'un menu à la fenêtre de conversion

Il s'agit d'ajouter une barre de menu à l'application. Pour cela on pourra procéder comme dans
l'exemple développé en cours. On écrira une classe MenuConvertisseur sous classe de
JMenuBar, classe dont le constructeur comporte la création de 2 menus (JMenu) :

 le premier contient deux items (JMenuItem) :


o configurer qui permettra de fixer le taux de change,
o quitter qui permettra de quitter l'application.
 le deuxième contient un seul item
o à propos qui permettra d'afficher un panneau d'information au sujet de l'application.

1. Ecrire la classe MenuConvertisseur (sans prendre en compte l'interaction), compiler.


2. Modifier la classe Conversion afin d'intégrer l'objet Menuconvertisseur. Compiler
et tester la classe ainsi modifiée.

4. Gestion de l'interaction liée au menu

Lorsque l'utilisateur selectionne un item dans un menu, l'objet JMenuItem correspondant est
source d'un événement de type ActionEvent. On va gérer les événements liés aux menus
dans la classe MenuConvertisseur elle même.

1. Ecrire dans la classe MenuConvertisseur le code nécessaire à la gestion des


événements liés aux menus :
1. L'objet MenuConvertisseur s'enregistre auprès de chacun des menus item
comme étant à l'écoute des ActionEvents qu'ils peuvent générer.
2. Réalisation dans la classe MenuConvertisseur de la méthode actionPerformed
de gestion des ActionEvents définie dans l'interface ActionListener. Dans
un premier temps on se contentera de traiter les événements issus des items quitter
et à propos. Pour les événements issus du premier (quitter) on procédera comme vu
au paragaphe 2.a. Pour les événements issus du second (à propos) on affichera un
panneau d'information sur le lequel vous pourrez faire par exemple figurer vos
coordonnées (voir, comme pour le panneau d'alerte étudié au paragraphe 2.c, les
méthodes statiques de la classe JOptionPane).

5. Mise en place d'une fenêtre pour fixer le taux de conversion

La selection de l'item configurer du menu doit provoquer l'affichage en premier plan d'une
fenêtre permettant de fixer le taux de conversion. L'interaction avec cette fenêtre doit être
modale. Cela signifie que lorsque cette fenêtre est affichée, elle est la seule fenêtre de
l'application avec laquelle l'utilisateur peut interagir (il n'est ainsi plus possible d'utiliser la
fenêtre principale de l'application). Pour définir une telle fenêtre on utilisera les
fonctionnalités de la classe JDialog.
1. Ecrire une classe DialogConfiguration qui étend la classe JDialog. Le constructeur
pour DialogueConfiguration définira un dialogue (JDialog) modal dont le contenu
sera constitué des composants indiqués sur la figure précédente (un JLabel, un
JTextField, deux JButton). Dans un premier temps, comme pour la fenêtre principale
de l'application, on utilisera un layout de type FlowLayout.
2. Modifier la classe MenuConvertisseur afin d'ajouter au code de son constructeur des
instructions pour l'instanciation de cette fenêtre de dialogue et à son code de gestion des
événements les instructions pour l'affichage de cette fenêtre de dialogue.
3. Recompiler et tester à nouveau l'application. Vérifier que la fenêtre de dialogue est bien
affichée lorsque l'utilisateur selectionne l'item configurer dans le menu de l'application.

6. Modification du taux de conversion

Il s'agit maintenant de gérer l'interaction associée à la fenêtre de dialogue précédente. Pour


cela il faut traiter les ActionEvents issus des deux boutons (Valider et Annuler) contenus
dans cette fenêtre.

Pour les événements issus du bouton Valider il faudra modifier le taux de conversion utilisé
par l'objet Convertisseur, en lui affectant la valeur contenue dans le JTextField
dédié à la saisie de ce taux. Ensuite, il faudra rendre invisible la fenêtre de dialogue ayant
permis de fixer le taux.

Pour les événements issus du bouton Annuler il suffira de rendre invisible la fenêtre de
dialogue.

1. Modifier la classe DialogConfirmation pour gérer la modification du taux de


conversion en s'inspirant de ce qui a été fait pour le bouton Convertir de la classe
Convertisseur.
2. Recompiler et tester à nouveau l'application. Vérifier qu'après modification le nouveau taux
de conversion fixé avec la fenêtre de dialogue prévue à cet effet est bien appliqué lors des
conversions.

7. Finaliser l'application.

Une fois tous les composants de l'application mis en place et la gestion de l'interaction
correctement prise en compte, on pourra modifier celle-ci afin de mieux gérer l'apparence de
son interface graphique.
1-La programmation Objet :Les classes
TP 1:

Partie 1
Créer une class employé « employe.java » avec :

Propriétés

- matricule
- nom
- age
- codeSecteur

Constructeur

- Constructeur 1 (Matricule, Nom, Age, codeSecteur)


- Constructeur 2 (Matricule, Nom, Age)

Méthode

- get et set

Partit 2

Créer une class « testEmploye.java » qui permet de

a- Créez trois employés emp1, emp2 et emp3.


b- Créer une liste de 10 employés
c- Afficher le plus petit employé
d- Afficher le plus grand employé

TP 2:

Partie1
Créer une class note avec :

Les Propriétés

- note1
- note2
- note3

Les méthodes

- get et set
- moyenne : qui permet de calculer la moyenne
Un constructeur

Créer une class Parents avec :

Les Propriétés

- nomDePere
- nomDeMere
- Ville

Les méthodes

- get et set

Un constructeur

Créer une class Stagiaire avec :


Les Propriétés
- numéro
- nom
- filière
- notes
- parents

Constructeur

- Constructeur 1 (Numéro, Nom, Filière, Notes, Parents)


- Constructeur 2 (Numéro Nom, Age, Notes, Parents)

Méthode

-get et set

Partit 2

e- Dans le programme principal créez trois Stagiaire Stg1, Stg2 et Stg3.


f- Créer une liste de 10 stagiaires
g- Afficher le plus petit stagiaire
h- Afficher le plus grand stagiaire
i- Afficher la moyenne des stagiaires
j- Afficher les stagiaires de Meknes

Partie 3

Créer une class noteCoefficient qui étend la class note avec :


Les Propriétés

- coefficent1
- coefficent2
- coefficent3

Les méthodes

- get et set
- moyenne : qui permet de calculer la moyenne

Un constructeur

2- Les interfaces graphiques :


TP1 :

TP2

TP3
TP4

TP5

Vous aimerez peut-être aussi