Introduction à Java

Transcription

Introduction à Java
I.U.T. Nice-Côte d'Azur
Département R & T.
!
Module I5
2ème Année
TP 1
!
Introduction à Java
(~/I5/TP1/)
!
!
Avant tout, la première chose à faire est de créer dans votre répertoire d’entrée, un répertoire
nommé I5. Les différents exercices d’une feuille de TP seront regroupés dans un répertoire
(un répertoire par feuille de TP) situé dans I5. Le chemin du répertoire associé à chaque
feuille de TP se trouvera sous le titre (~/I5/TP1/ pour cette feuille).
1. Introduction : Outils
a) Les outils à utiliser pour écrire des programmes en langage Java
- javac : le compilateur de code source Java. Produit un fichier <Foo.class> à partir d'un
fichier <Foo.java>.
Syntaxe : javac Foo.java
!
- java : cette commande exécute la classe passée en paramètre.
!
Syntaxe : java Foo (en supposant que le fichier Foo.class existe).
!
La classe exécutée DOIT contenir une méthode ayant la signature suivante :
!
public static void main (String[] args)
!
- La documentation Javadoc : toutes les classes présentes dans l'API (Application
Programmation Interface) java sont consultables :
!
• en local : http://kheops.unice.fr/java/api/
!
• ou sur le Web : http://java.sun.com/j2se/1.5.0/docs/api/index.html
!
b) Informations supplémentaires
!
Si vous souhaitez travailler chez vous :
!
•
!
•
Pour écrire et exécuter du code java, vous aurez besoin du JDK (Java Development
Kit) ~40Mo.
Si vous souhaitez seulement exécuter du code java, vous n'aurez besoin que du JRE
(Java Runtime Environnement) ~15Mo.
Module I5
1!
TP n° 1
I.U.T. Nice-Côte d'Azur
Département R & T.
Module I5
2ème Année
!
Ces deux programmes sont téléchargeables sur : http://java.sun.com/j2se/1.5.0/download.jsp.
L'API java (Javadoc) est aussi disponible à cette adresse ~44Mo.
!
2. Recommandations :
- Au début de chaque fichier pensez à écrire :
/**
* @author Nom et Prénom du binôme
* Groupe
* Date
* Numéro du TD et de l’exercice
* Commentaire sur la classe
*/
- Commenter toujours votre code
3. Exercices
Rappel : Si un fichier java s’appelle Bonjour.java alors le programme doit forcément
commencer par :
public class Bonjour
!
Exercice 1 : Mon premier programme « HelloWorld »
- Ecrire le programme suivant dans le fichier HelloWorld.java
!
public class HelloWorld
{
public static void main (String args[])
{
//Affiche HelloWorld !!!
System.out.println("HelloWorld ") ;
}
}
-
Compiler le programme
-
Exécuter le programme
!
Exercice 2: Un prototype de classe de super-héros (sur papier)
Sur une feuille de papier, commencez par réfléchir à la façon de décrire un super-héros en
répondant aux questions suivantes:
Module I5
2!
TP n° 1
I.U.T. Nice-Côte d'Azur
Département R & T.
Module I5
2ème Année
- Quelles sont les caractéristiques d’un super-héros ? (Cela deviendra les attributs de la
classe)
- Quelles sont les actions qu’un super-héros peut réaliser? (Cela deviendra les méthodes de
la classe)
!
Pour vous aider, voici les réponses aux mêmes questions pour une classe animal:
Les caractéristiques d’un animal -> un nom, une taille, un type (carnivore, herbivore), etc.
Les « actions » d’un animal -> manger, dormir, etc.
!
Exercice 3: Définir les types des attributs (sur papier)
Une fois les attributs définis, il faut leurs donner un type. Voici une liste non-exhaustive des
principaux types de données en Java:
int
String
float
boolean
Représentatio un nombre
n
entier
une chaine de
caractère
un nombre
réel
une valeur
un caractère
binaire (vrai ou
faux)
Exemple
« toto »,
« hello »
3.14, 1.61
true, false
1, 10, 42
char
a’, ‘y’, ‘x’
Pour chaque attributs de votre super-héros, réfléchissez au type de données le plus adéquat.
Par exemple, le nom d’un animal sera une chaine de caractères (ex: « Milou »)
!
Exercice 4: Définir les signatures des méthodes (sur papier)
Une méthode Java permet d’effectuer un traitement. L’exemple ci-dessous représente une
méthode addition, qui, comme son nom l’indique, permet d’additionner deux nombres entiers.
!
!
Module I5
3!
TP n° 1
I.U.T. Nice-Côte d'Azur
Département R & T.
Module I5
2ème Année
Une méthode est constituée de plusieurs parties. La première partie est la signature (première
ligne) qui se décompose de la manière suivante:
La seconde partie d’une méthode est son corps. Le corps permet de décrire le fonctionnement
de la méthode. Dans notre exemple, cela consiste à:
- créer une variable pour stocker le résultat (int resultat;)
- faire l’addition des deux entiers passés en paramètre (resultat = entierA + entierB;)
- retourner le résultat (return résultat;)
!
En fonction de son type de retour, la méthode devra retourner quelque chose. Dans le cas de
notre méthode addition, le mot clé « int » dans la signature montre qu’il faudra retourner un
entier. La dernière ligne de la méthode (return resultat) répond à cette obligation car la
variable ‘resultat' et de type int.
Quand une méthode a un type de retour, la dernière action à effectuer est un return!
!
Cas particuliers
Comme toujours, il y a des cas particuliers…
Cas particulier 1: La méthode ne renvoie rien
Dans le cas d’une méthode qui ne renvoie rien (par exemple, une méthode qui se contenterait
simplement d’afficher un résultat à l’écran), le mot clé à utiliser est « void ».
Module I5
4!
TP n° 1
I.U.T. Nice-Côte d'Azur
Département R & T.
Module I5
2ème Année
L’instruction System.out.println permet d’afficher du texte dans le terminal. Dans cet
exemple, le terminal affichera « l’entier que vous avez passé en paramètre est 10 » si entierA
contient la valeur 10.
!
Cas particulier 2: La méthode ne contient pas de paramètre
Il arrive fréquemment qu’une méthode ne prenne aucun paramètre, la signature suivante est
donc totalement valide (cette méthode renverra constamment la réponse 42):
Sur papier, essayez de réfléchir aux signatures (juste la première ligne donc) des méthodes de
votre classe super-héros. Ainsi, si vous avez décidé que vos super-héros devaient avoir la
capacité d’être bon en calcul mental, ils auront une méthode addition^^.
!
Exercice 5: Objets ou Classes? (sur papier)
En cours, vous avez probablement vu la différence entre une classe et un objet (aussi appelé
instance de classe). Pour vous entrainer, dites si les entités suivantes sont des objets ou des
classes:
- Batman
- Véhicule
- Batmobile
- Aquaman
- Adamantium
- Mjolnir (marteau de Thor)
- MK42 (armure d’Iron Man)
- Arme
- Armure
- Mars
Module I5
5!
TP n° 1
I.U.T. Nice-Côte d'Azur
Département R & T.
Module I5
2ème Année
- Krypton (planète de Superman)
- Metal
- Planète
!
Exercice 6: Le(s) Constructeur(s) (sur papier)
Le constructeur d’une classe permet de créer une instance (un objet) de cette classe. Une
classe peut posséder plusieurs constructeurs, du moment:
- que les constructeurs ont le même nom que la classe
- que leurs signatures est différentes (pas le même nombre de paramètres).
Voici un petit exemple de constructeur pour une classe Planète:
Cherchez sur Internet ce que signifie le mot clé « this » et faites valider par l’enseignant.
Ensuite, essayer de comprendre par vous même les trois lignes à l’intérieur du constructeur.
!
Exercice 7: Accesseurs et mutateurs (get/set) (sur papier)
Un accesseur est une méthode permettant d'accéder aux variables de nos objets en lecture, et
un mutateur nous permettra d'en faire de même en écriture. Grâce aux accesseurs, vous
pourrez afficher les attributs de vos objets, et grâce aux mutateurs, vous pourrez les modifier.
Voici un petit exemple pour notre classe planète:
!
Module I5
6!
TP n° 1
I.U.T. Nice-Côte d'Azur
Département R & T.
Module I5
2ème Année
Sur papier, écrivez les signatures et le corps des méthodes des principaux attributs de votre
classe SuperHeros.
!
Exercice 8: Implémentation (sur machine)
Une fois la validation effectuée au tableau, il faut commencer à implémenter. Ecrivez votre
classe SuperHeros en suivant les recommandations et ce que vous avez fait depuis le début du
TP. Pour vous aider, voici la liste des choses à faire:
- Créer une classe SuperHeros
- Ecrire les attributs validés par l’enseignant
- Ecrire un constructeur qui prend en paramètre la totalité des attributs
- Ecrire la signature des méthodes validées par l’enseignant
- Ecrire le corps des méthodes
- Ecrire les accesseurs (get)
- Ecrire les mutateurs (set)
!
Module I5
7!
TP n° 1