TP1 : Initiation à Java

publicité
UCLB
Lyon 1
P O LY T E C H
3A 2015-2016
TP1 : Initiation À Java
Programmation Orienté Objet
Salima HASSAS, Laëtitia MATIGNON, Antoine GRÉA
☘ Compétences À Acquérir
✔
Savoir mettre en place un projet Java avec NetBeans ou Eclipse (création
projet, définition d’un main, exécution paramétrée ou non)
✔
Savoir se documenter, utiliser les APIs de java, utiliser les fonctions de
documentation de NetBeans
i
Création d’un projet NetBeans :
1 File ❭ New Project
2 Sélectionner dans la catégorie Java un projet de type Java Application
3 Choisir le nom de la classe contenant la fonction main
1 Fibonacci
La suite de Fibonacci est une suite mathématique classique. Elle commence par 0 puis 1
et chaque terme suivant est la somme des deux termes précédant. Voici ses premiers
termes :
ℱ
0
144
1
233
1
377
2
610
3
987
5
8
13
21
34
55
1597 2584 4181 6765 10946
89
…
1.1 Solution Itérative
?
i
Écrire une méthode public int fibonacciIt(int n) qui retourne le
énième élément de la suite de Fibonacci en itérant par chaque terme
intermédiaire
Vous pouvez implémenter ceci avec une boucle for ou bien par récursivité si
vous connaissez déjà la notion.
Page
1 sur 4
1.2 Solution Fonctionnelle
?
Écrire une méthode public int fibonacciFonc(int n) qui retourne
le énième élément de la suite de Fibonacci en utilisant la formule suivante :
ℱ n=
i
1 n
1
1+ 5
(ϕ −ϕ' n) avec ϕ= √ et ϕ '=− ϕ
2
√5
La classe Math de Java contient les opérations puissance (pow) et racine carré
(sqrt). Ces opérations donnent des résultats en double. Une conversion vers
le type int est possible avec le code suivant :
Double d = 5.25 ;
Integer i = Math.round(d) ; // i deviens 5
2 Vieux Motard Que Jamais !
On souhaite modéliser un simulateur de moto
rudimentaire. Une moto est composée d’un moteur, d’un
phare et de deux roues (la plupart du temps).
2.1 Diagramme De Classe UML
?
i
Proposez un diagramme de classes pour ce
projet Java. Validez celui-ci avec l’enseignant.
Pour cette partie il est fortement recommandé d’utiliser Netbeans et
d’installer le package easyUML. Celui-ci vous permet de créer des diagrammes
UML et de générer du code Java depuis ceux-ci (et vice-versa). Pour l’installer :
1 Tools ❭ Plugins
2 Sélectionner l’onglet Available Plugins et cherchez « UML »
3 Cochez la case correspondante et cliquez sur Install
4 Suivez les étapes et redémarrez Netbeans.
Créez un projet de diagramme UML et ajoutez un nouveau diagramme de classes.
2.2 Implémentation De Base
Développer uniquement le constructeur de chaque classe dans un premier temps.
i
Utilisez plutôt easyUML afin de créer le squelette de votre application. Pour se
faire faite un clique droit sur votre diagramme dans l’explorateur de projet et
sélectionnez easyUML generate code.
Programmation Orienté Objet ❭ TP1
: Initiation à Java
Page
2 sur 4
2.3 Toujours Plus De Fonctionnalités
Un moteur peut être dans un état démarré ou éteint (par défaut). Les phares peuvent
aussi être éteints ou allumés.
Une moto peut accélérer. Pour cela, lorsque l’on demande l’exécution de la fonction
accélérer de la classe Moto, l’ordinateur de bord de la moto vérifie que le moteur est
disponible (allumé) et que les phares sont allumés avant d’appeler la fonction
d’accélération propre à l’objet Moteur.
?
Proposer les fonctions permettant de faire varier ces états depuis un objet
(ou une instance) de la classe Moto.
2.4 Les Logs Du Capitaine
Afin de partir du bon pied, vous aller ajouter un système de gestion de traces dans votre
projet.
Dans Spiral vous trouverez un fichier Log.jar. Ajoutez le dans le dossier lib de votre
projet. Dans Netbeans importez celui-ci comme dépendance en cliquant droit sur le
dossier Libraries de votre projet et en sélectionnant add JAR/Folder.
i
À chaque fois qu’un des objets du modèle effectue une action, il l’affiche grâce
à la fonction Log.i(“message”) ;
2.5 Tester Et Encore Tester
?
Développer un scénario dans une fonction main permettant de tester le bon
fonctionnement de votre programme.
2.6 Une Construction Hasardeuse
2.6.1 C’est Bien De Copier…
?
Dans le code suivant, myMoto et myMoto2 sont-il différents ?
Pourquoi ?
Moto myMoto = new Moto(…) ;
Moto myMoto2 = myMoto ;
2.6.2 Mais Pas Trop
?
Comment pourrions-nous créer une copie indépendante de maMoto avec
copie en cascade des phares, du moteur, etc.
Implémentez votre proposition et testez.
Programmation Orienté Objet ❭ TP1
: Initiation à Java
Page
3 sur 4
3 Manipulation IDE
Utiliser l’exercice précédent pour les manipulations ci-dessous.
3.1 Renommer Automatiquement
?
Trouver comment modifier le nom d’un package/classe/fonction/etc dans
tout le projet.
3.2 Complétion Intelligente
?
Trouver le raccourci permettant d’afficher les différentes fonctions
disponibles pour un objet (lorsque le curseur est sur l’objet).
3.3 Référence Rapide
?
Trouver comment accéder rapidement au code d’une fonction appelée.
3.4 Insertion Intelligente
?
Netbeans est capable de générer vos constructeurs, accesseurs, fonctions
utiles, etc. Votre IDE peut aussi compléter vos boucles, et ajouter du code
pour réparer des erreurs. Tentez de trouver le plus de mécanismes utiles possible.
Bonus Pour Aller Plus Loin
✔
Familiarisez-vous avec la fonction de débogage
✔
Trouvez où est définie la JDK utilisé.
Programmation Orienté Objet ❭ TP1
: Initiation à Java
Page
4 sur 4
Téléchargement