Prise en main d`Eclipse, ´el´ements de base de java

publicité
TP1 : Prise en main d’Eclipse, éléments de base de
java
[email protected]
R&T 2ème année
Vous avez à votre disposition (sur le répertoire commun) : le cours, les TDs,
et quelques documents provenant d’Internet. Vous devez prendre l’habitude de rechercher l’information dans ces documents et dans le sujet de TP. Chaque question
inutile1 sera notée et aura des conséquences sur la note du TP.
A exercice fini, appelez l’enseignant pour qu’il vérifie le bon fonctionnement de
votre programme.
But du TP :
Prendre en main l’environnement Eclipse - Savoir créer une classe
1 Java en ligne de commande
Java peut être utilisé en ligne de commande. Bien que ce ne soit pas le mode
de développement le plus utilisé, il est toujours utile de savoir compiler et exécuter
une application Java en ligne de commande.
1.1 Edition
Pour éditer du code Java n’importe quel éditeur de texte convient, utilisez par
exemple l’éditeur de texte ou vi. Ces deux éditeurs présentent l’avantage d’avoir
un mode de coloration syntaxique pour Java. Copiez le programme suivant en
remplaçant le nom de la classe par le nom de votre fichier :
public class MaClasse {
public static void main(String[] args) {
System.out.println("Bonjour !");
}
}
1.2 Compilation
Pour compiler votre programme, vous devez utiliser le compilateur Java (javac).
Après compilation, s’il n’y a pas eu d’erreur, un fichier .class a été crée.
1
qui a sa réponse de manière simple dans les fichiers fournis
1
1.3 Execution
Pour exécuter le fichier .class, vous devez appeler l’interpréteur Java à l’aide
de la commande java MaClasse
2 Présentation d’Eclipse
L’utilisation d’un environnement de développement intégré permet de gagner
du temps lors du développement d’application. Eclipse est un environnement de
développement intégré (I.D.E.) crée par IBM, disponible sous la forme de logiciel
libre. Cet environnement, originellement conçu pour Java supporte maintenant de
nombreux langages (nativement ou à l’aide de plugins).
2.1 Lancement d’Eclipse
Eclipse est placé dans le menu Programmation du menu Applications. Au lancement d’Eclipse, une boite de dialogue apparait vous demandant quel espace de
travail (Workspace) choisir. Créez un répertoire Java dans votre répertoire de travail,
placez-y vous et sélectionnez le. Avant de cliquer sur OK, cochez la case Use is a default and do not ask again. Tout vos TPs devront se trouver dans ce répertoire !
La page de bienvenue apparaı̂t, fermez-la en cliquant sur la croix. La fenêtre principale d’Eclipse apparaı̂t alors.
2.2 La fenêtre principale
La fenêtre principale d’Eclipse (fig 1)se décompose en plusieurs parties :
– L’éditeur : C’est dans cette partie que l’on saisit le code Java. Plusieurs onglets
peuvent être ouverts en même temps. L’éditeur vérifie ”à la volée” la validité du
code. Si le code n’est pas valide, une ligne ondulée rouge soulignera la partie
incorrecte. Une correction (ou plusieurs) est souvent proposée(s). Elles sont
visibles en cliquant sur l’icône en forme d’ampoule ( ).
– La sélection de perspective : Eclipse propose plusieurs environnements de
travail (nommé perspectives), par défaut c’est la perspective d’édition du code
Java qui est visible, pour en choisir une autre il suffit de cliquer sur le bouton
pour choisir une autre perspective (Debug,. . .).
– Le panneau d’aperçu : Pour chaque classe, Eclipse affiche les différents attributs et méthodes avec des icônes représentant leurs visibilités.
– L’explorateur de projets : Le projet en cours est représenté avec tous ces fichiers ainsi que les classes contenue.
– Le panneau ”d’états” : Plusieurs onglets permettent d’accéder à différents
éléments. L’onglet Problems renvoie tous les avertissements ainsi que les erreurs. L’onglet Javadoc permet de lire la documentation Javadoc associée à la
classe (si elle a été générée). L’onglet Console affiche une console utilisée lors
de l’exécution des programmes.
– La barre d’outils : Elle comporte des raccourcis vers de nombreux boutons.
Plusieurs seront détaillés dans ce TP.
2
F IG . 1 – L’interface d’Eclipse pour un projet Java
Tous les éléments d’une vue peuvent être modifiés en allant dans le menu Window
2.3 Création d’un nouveau projet
Dans l’explorateur de projet cliquez avec le bouton droit, sélectionnez New puis
Project. Dans l’assistant qui apparaı̂t, choisissez Java Project. La fenêtre de configuration de projet apparaı̂t. Dans cette fenêtre, donnez un nom à votre projet (par
exemple TP1) et cochez le bouton Create separate source and output folder dans le
bloc Project Layout, ne changez pas les autres éléments. En choisissant cette option, les fichiers sources et les fichiers compilés seront placés dans deux répertoires
différents.
2.4 Création de classes
2.4.1
Présentation de l’interface
Un assistant permet de créer les classes en générant le code automatiquement.
Pour créer une nouvelle classe dans le projet ouvert, cliquez sur l’icône
. La
fenêtre de l’assistant apparaı̂t (figure 2).
– Nom de la classe : Saisissez ici le nom de la classe à créer (pensez à respecter
les conventions sinon un avertissement apparaı̂tra).
3
– Emplacement de la classe : Java propose un système de paquets (que nous
étudirons dans un autre TP) pour organiser les classes. C’est ici que l’on choisit dans quel paquet va être placé la classe à créer. Dans le cadre des TPs,
vous utiliserez un paquet portant un nom de la forme login.tpN. Soit pour
l’utilisateur dupont durant le TP1 le paquet sera dupont.tp1. Placez ce nom
dans le champ de saisie.
– Modificateurs : Vous pouvez spécifier ici la visibilité de la classe dans le paquet
ou dans le cas d’une classe interne, vis-à-vis de la classe contenante. Laissez
les valeurs proposées par défaut. Les cases à cocher permettent de créer des
classes abstraites (abstract) ou finales (final).
– Classe mère : Par défaut la classe mère est Object(La classe Object est contenue dans le paquet java.lang, d’où la notation java.lang.Object). Si votre
classe hérite d’une autre classe, vous devez la précisez ici.
– Méthodes à déclarer : Dans ce panneau, vous pouvez préciser les déclarations
de méthodes que vous voulez voir ajouter automatiquement. La première case
à cocher permet d’ajouter une méthode main à votre classe et donc la rend
exécutable. La seconde case à cocher rajoute une déclaration pour chaque
constructeur de la classe mère. Enfin, la dernière case à cocher, déclare les
méthodes abstraites de la classe mère si elles existent (elles doivent être implémentées
si la classe n’est pas abstraite).
Quand vous avez renseigné tous ces champs, cliquez sur le bouton OK pour
générer le fichier. Automatiquement, Eclipse ouvre le fichier dans un nouvel onglet
de l’éditeur.
2.4.2
Travail à faire
Créez une classe ayant une méthode main. Dans cette méthode placez la ligne
suivante : System.out.println("Bonjour"); Pour gagner du temps, tapez simplement sysout puis [CTRL]+[Espace]. Eclipse reconnaı̂t le raccourci et le remplace par l’équivalence. Pour voir la liste des raccourci prédéfinis, allez dans le
menu Window-Preferences puis Java-Editor-Templates. Notez sur une feuille de
papier ceux qui vous semblent les plus utiles pour les TPs (boucles, tests,. . .).
2.5 Exécution d’une classe
L’exécution d’une classe se fait en cliquant sur l’icône en forme de flèche verte
présent dans la barre d’icônes (
bloqué, l’icône d’arrêt (
2.5.1
). Pour arrêter un programme en cours d’exécution
) dans la console est souvent suffisant.
Première exécution d’une classe
Avant d’exécuter une classe pour la première fois, il faut définir une configuration d’exécution. Pour les classes Java exécutables, la configuration par défaut est
utilisable. On la choisit en cliquant sur la flèche orientée vers le bas à droite de
l’icône d’exécution puis en sélectionnant Run as-Java Application.
4
F IG . 2 – L’interface de création de classe
5
F IG . 3 – La fenêtre de débogage
2.5.2
Autres exécution
Pour exécuter de nouveau la classe il suffit de cliquer de nouveau sur l’icône de
lancement sans redéfinir de configuration d’exécution.
2.6 Debogage
Choisissez la perspective de débogage en cliquant sur le bouton
, puis sur
. La vue change pour devenir celle de la figure 3.
le bouton
On retrouve des éléments communs à la perspective d’édition Java : l’éditeur, le
panneau d’aperçu, la sélection de perspective et le panneau ”d’états” qui affiche la
console. Deux élements sont rajoutés :
– L’explorateur de processus : Les processus actifs sont listés ici ainsi qu’une
barre d’outils utilisés lors de l’exécution d’un programme.
– Les variables et les points d’arrêts : Lors d’un débogage, on définit des points
d’arrêts (voir ci-dessous), ils sont listés dans l’onglet point d’arrêts. Les variables actuellement utilisées sont visibles dans l’onglet variables. Pour les
objets, un petit triangle est placé devant leurs noms, si on clique dessous,
tous les attributs membres seront présentés ainsi que leurs valeurs.
6
2.6.1
Débogage d’une application
Les points d’arrêts : Pour placer un point d’arrêt, il faut cliquer avec le bouton
droit dans la barre bleue située dans la partie gauche de l’éditeur de texte. Dans
le menu qui apparaı̂t, il faut choisir Toggle Breakpoint. Un repère ( ) symbolise le
point d’arrêt.
Exécution pas-à-pas : Pour rechercher une erreur dans une application, une
exécution en mode pas-à-pas est souvent nécessaire. Après avoir placé un point
d’arrêt avant la partie de programme qui pose problème, lancez l’exécution en mode
) (son comportement est le même que pour
débogage en cliquant sur l’icône (
l’icône de lancement. Si vous avez déjà exécuté votre programme, un clique sur le
bouton suffit). Le programme est exécuté et s’arrête sur le premier point d’arrêt
rencontré. L’état des variables en cours est alors visible. On utilise ensuite la barre
d’exécution située au dessus de l’explorateur de processus pour modifier l’exécution
du programme. Les différents icônes sont les suivants :
–
permet d’arrêter la session de débogage en cours. Tous les processus associés sont arrêtés.
–
permet de suspendre le débogage en cours, il peut être relancé en cliquant
sur l’icône ci-dessous.
–
permet soit de reprendre le débogage en cours après une pause, soit de
relancer l’éxécution jusqu’au prochain point d’arrêt.
Quand le programme est arrêté sur un point d’arrêt, plusieurs possibilités d’exécution
sont envisageables :
– Reprendre l’exécution du programme jusqu’au prochain point d’arrêt (voir cidessus).
– Exécuter pas-à-pas chaque instruction, en rentrant dans toutes les méthodes :
. A chaque méthode rencontrée, un clic sur ce bouton fait ouvrir le code de
la classe associée sur la méthode correspondante et continuer le programme
pas-à-pas.
– Exécuter pas-à-pas chaque instruction de la classe actuelle sans rentrer dans
les méthodes des autres classes :
truction dans la classe actuelle.
. A chaque clique, on avance d’une ins-
–
permet de sortir de la classe en cours pour retourner vers la classe d’origine.
Ces trois actions peuvent être combinées pour, par exemple, rentrer dans les classes
que l’on a codées sans rentrer dans les classes de l’A.P.I. Java.
2.7 Truc et astuces
Le menu contextuel (accessible via le bouton droit) de l’éditeur Java d’Eclipse
permet d’automatiser de nombreuses taches.
7
Renommer un élément Pour renommer un élément (classe, méthode, attribut)
et propager la modification à tous les éléments liés, cliquez sur l’élément avec le
bouton droit de la souris, choisissez le menu Refactor-Rename. . . L’assistant vous
présente tous les éléments qui vont être modifiés.
Déclarer les assesseurs Eclipse permet de construire automatiquement les assesseurs des attributs. Source-Generate getters and setters vous permet de choisir
les assesseurs que vous voulez implémenter ainsi que leurs visibilités (public la
plupart du temps).
3 Travail à effectuer
3.1 Triangle de Pascal (durée : environ 1h00)
Le triangle de Pascal (voir détails sur http://fr.wikipedia.org/wiki/Triangle
de Pascal) est utilisé pour écrire les développement d’une somme du type (a + b)n
ou n est une puissance quelconque. Les premières valeurs du triangle de Pascal
sont les suivantes :
Ordre
0
1
2
3
4
1
1
1
1
1
1
2
3
4
1
3
6
1
4
1
La valeur de chaque case se calcule de manière aisée à partir des valeurs de la
ligne précédente. Posons P (i, j) la case située sur la ligne i et la colonne j. Sa valeur
est donnée par la formule :
P (i, j) = P (i − 1, j) + P (i − 1, j − 1)
Écrivez un programme (donc une classe ayant une méthode main) qui demande
un ordre à l’utilisateur et affiche de manière complète le triangle de Pascal jusqu’à
cet ordre.
3.2 Suite de Conway (durée : environ 1h00)
L’élément n de la suite de Conway est construite en “lisant” l’élément n − 1.
Généralement, on utilise 1 comme élément initial. On obtient par exemple (tab. 1) :
Proposez un programme pour écrire la suite de Conway en utilisant un tableau
bi-dimensionnel. Vous pouvez vous inspirer du corrigé du contrôle de l’an dernier
(attention à modifier le programme pour utiliser un tableau bi-dimensionnel).
3.3 Classe Vecteur
Le but de cet exercice est de créer une classe représentant un Vecteur (au sens
mathématique).
8
T AB . 1 – Les premiers termes de la suite de
Itération “Lecture”
1
État initial
“Un un”
2
3
“Deux un”
“ Un deux, un un”
4
5
“Un un, un deux, deux un”
“ Trois un, deux deux, un un”
6
...
...
3.3.1
Conway
Valeur
1
11
21
1211
111221
312211
...
Diagramme UML de la classe
Vecteur
- valeurs : entier[]
+ Vecteur()
+ Vecteur(Vecteur unVecteur)
+ Vecteur(entier nb)
+ getTaille() : entier
+ getValeur(entier position) : entier
+ setValeur(entier position, entier uneValeur) :
+ RemplirVecteurAléatoirement() :
+ AfficherVecteur() :
+ CalculSomme(Vecteur unVecteur) : Vecteur
+ isColineaire(Vecteur unVecteur) : booléen
F IG . 4 – Schéma UML de la classe Matrice
3.3.2
Création de la classe
Utilisez l’assistance pour créer une classe Vecteur (sans classe main).
Placez, pour l’instant, les 3 constructeurs sans rien placer dans les accolades.
Complétez seulement le constructeur qui reçoit un entier en paramètre. Il doit
vérifier que l’argument n’est ni nul, ni négatif. Si l’argument est valide, le constructeur doit créer le tableau valeurs à la taille voulue.
3.4 Classe de test
Créez une autre classe ayant une méthode main dans laquelle vous créez un
objet de la classe Vecteur ayant une taille de 5.
9
3.4.1
Méthodes RemplirVecteurAleatoirement et AfficherVecteur
Dans la classe Vecteur ajoutez les méthodes RemplirVecteurAleatoirement
et AfficherVecteur.
La méthode AfficherVecteur Cette méthode doit simplement afficher les coordonnées du vecteur les unes à la suite des autres, simplement séparées par un
espace.
La méthode RemplirVecteurAleatoirement Cette méthode doit remplir un vecteur de valeur aléatoire comprises entre 0 et 10.
Test de ces deux méthodes Dans la classe de test, appelez ces deux méthodes
pour vérifier le bon fonctionnement de votre classe.
3.4.2
Les “assesseurs”
Les méthodes getTaille, getValeur et setValeur permettent d’accéder aux
données. Elles ne peuvent pas être écrite automatiquement par l’assistant d’Eclipse
car elles ne portent pas directement le nom d’un attribut. Vous allez donc devoir les
écrire à la main.
3.4.3
La méthode CalculSomme
Cette méthode reçoit un vecteur et en fait la somme avec l’objet courant. Le
résultat de la somme est renvoyée par la méthode. La somme ne doit être calculée
que si les vecteurs ont la même taille, sinon la méthode renvoit null.
3.4.4
La méthode isColineaire
Cette méthode permet de vérifier qu’un vecteur est colinéaire avec le vecteur
considéré. La valeur est un booléen qui vaut true si les vecteurs sont colinéaire,
false sinon.
10
Téléchargement