Universit´e Lille 1 – Licence 2 Informatique 2016–2017
UE Programmation Orient´ee Objet
TP 3 - Travail pr´eliminaire
Le but de cette premi`ere partie est :
Bde d´ecouvrir les outils javac et java
Bde d´ecouvir la “javadoc”1et la structure de la documentation d’une classe
A partir de ce TP on abandonne BlueJ.
Utilisez un ´editeur adapt´e `a la programmation (Emacs, Atom ou SciTe de pr´ef´erence car ils ont l’avantage de disposer
d’un “mode java” avec coloration syntaxique et facilitant le travail d’indentation).
Exercice 1 : Premi`
eres compilation et ex´
ecution
Nous allons travailler dans cet exercice avec la classe Stock du TP de la semaine pass´ee (une version est disponible
sur le portail).
N´ecessairement le code source de cette classe se trouve dans un fichier qui s’appelle Stock.java. En Java il y a
toujours correspondance entre le nom du fichier et le nom de la classe qu’il d´efinit, et l’extension est n´ecessairement
.java.
Q 1 . Dans un terminal, placez-vous dans le r´epertoire contenant votre fichier Stock.java. Effacez le fichier
Stock.class qui s’y trouve probablement.
Pour compiler votre fichier, il faut ex´ecuter la commande :
javac Stock.java
Nous verrons dans une prochaine s´eance de TP que les choses sont parfois un peu plus complexes pour la
compilation.
Faites le. S’il n’y a pas eu d’erreur de compilation, votre r´epertoire contient maintenant le fichier Stock.class
g´en´er´e par la compilation. C’est ce fichier qui contient le bytecode Java utilis´e par la machine virtuelle.
Q 2 . Ex´ecuter un programme Java consiste `a ex´ecuter le corps d’une m´ethode particuli`ere plac´ee dans une classe.
Cette m´ethode a obligatoirement et rigoureusement la signature :
public static void main(String[] args)
Il peut y avoir (au plus) une m´ethode avec cette signature par fichier (d´efinissant une classe). L’ex´ecution d’une
telle m´ethode contenue dans une classe SomeClass est provoqu´ee par la commande (il faut que vous soyez dans
le r´epertoire contenant le fichier SomeClass.class) :
java SomeClass
A nouveau, les choses seront nuanc´ees dans le prochain TP.
Cette commande “lance” une machine virtuelle Java (JVM) qui ex´ecute les lignes de code contenues dans la
m´ethode main de la classe pass´ee en argument (ici SomeClass). Le param`etre args de cette m´ethode contient
le tableau des ´eventuels autres2arguments ajout´es `a la ligne de commande.
Notez qu’il n’y a pas de “.java”, ici on ex´ecute une classe alors qu’avec javac on compile un fichier (qui permet
de d´efinir une classe). Pour cette commande, il est donc n´ecessaire de disposer du fichier SomeClass.class,
mais pas n´ecessairement du source (.java).
Ajoutez donc `a votre fichier Stock.java la d´efinition :
public static void main(String[] args) {
Stock someStock = new Stock();
someStock.add(10);
System.out.println(someStock.getQuantity());
}
Sauvez, compilez la classe Stock puis ex´ecutez-en la m´ethode main.
1La documentation des API java, s’appelle la “javadoc” du nom de l’outil qui sert `a les g´en´erer et que nous aborderons une autre fois.
2A la diff´erence de python o`u le nom du script est repris dans la liste sys.argv, le nom de la classe lui n’est pas repris dans ce tableau
en java.