Lancez l'éditeur de texte emacs et ouvrir un nouveau fichier Bonjour.java dans le répertoire $HOME/Info1/src/Td1/. $HOME/ représente la racine de votre répertoire personnel et Info1/src/Td1/ est un répertoire que vous devez avoir créé afin d'y placer les fichiers des exercices de la première séance.
// Un premier programme qui affiche "Bonjour!" sur la sortie standard public class Bonjour { public static void main(String [] args) { System.out.println("Bonjour!"); } }
Afin de séparer les fichiers sources des fichiers contenant le
bytecode des classes, nous voulons maintenant mettre systématiquement
tous les fichiers de classes (bytecode) dans le répertoire
$HOME/Info1/classes/. Créez ce répertoire, puis supprimez le
fichier Bonjour.class du répertoire
$HOME/Info1/src/Td1/. Utilisez maintenant pour compiler le fichier
source la commande:
javac -d $HOME/Info1/classes -classpath $HOME/Info1/classes
Bonjour.java
Vérifiez que le fichier contenant le bytecode a bien été placé dans le
répertoire classes/. Pour exécuter le programme, il faut
maintenant utiliser la commande:
java -classpath $HOME/Info1/classes Bonjour
Afin d'éviter de tapez ces longues commandes à chaque fois, on peut
définir des alias en ajoutant les lignes suivantes au fichier
$HOME/.tcshrc:
alias enpcjavac javac -d $HOME/Info1/classes -classpath $HOME/Info1/classes alias enpcjava java -classpath $HOME/Info1/classesIl suffit ensuite d'utiliser ces commandes pour compiler et exécuter vos programmes.
Le langage Java repose sur des librairies de classes offertes en
standard aux utilisateurs, qui sont organisées en
packages. Ainsi, par exemple, l'instruction dans notre
programme System.out.println("Bonjour!") est un appel à la
méthode println() avec comme argument la chaîne de caractère
(String) "Bonjour!", sur le champ out de la classe
System. Ces classe, champ et méthode font partie de la
librairie standard offerte par Java, que l'on appelle API
(Application Programming Interface). Ces API sont documentées dans un
format standardisé et ces documentations sont accessibles à l'URL
file:///usr/local/jdk1.3/docs/api/index.html
Ouvrez une fenêtre de navigateur (Netscape, par exemple) et
parcourez ces documentations. Sauvegardez cet URL dans vos signets
(bookmarks). En partant de la classe System du package
java.lang, retrouvez la méthode println()
précédemment utilisée.
Par habitude, les identificateurs en Java respectent les règles implicites suivantes:
Un programme plus ambitieux
Récupérez les deux fichiers sources aux URL suivants et les enregistrer
sous le même nom dans votre répertoire Td1:
http://www-igm.univ-mlv.fr/~duris/ENPC/Simulation.java et
http://www-igm.univ-mlv.fr/~duris/ENPC/Cible.java.
Compilez ces fichiers. Sachant que la JVM (lancée par java ou
enpcjava) tente d'exécuter la méthode main,
déterminez quel nom de classe doit être utilisé pour exécuter le
programme; testez-le.
On peut distinguer, dans l'exemple du programme de simulation, les notions de classe, d'instance (ou encore d'objet) de variable d'instance (champ ou encore attribut) et de méthode. Étant donnée une classe, les variables d'instance représentent l'état d'un objet tandis que les méthodes représentent les fonctionnalités d'un objet. Les méthodes statiques représentent les fonctionnalités d'une classe.