« Programmation Java/Paquetages » : différence entre les versions

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
DannyS712 (discussion | contributions)
m <source> -> <syntaxhighlight> (phab:T237267)
Ligne 12 :
 
pour inclure la classe Toto dans l'extension '<code>mesPackages.sousPackage1</code>', écrire au début du fichier '''Toto.java''' :
<sourcesyntaxhighlight lang="java">
package mesPackages.sousPackage1;
// ne pas oublier le point-virgule en fin de ligne
</syntaxhighlight>
</source>
 
La structure des répertoires doit suivre le nom de l'extension, c'est-à-dire que le fichier '''Toto.java''' doit se situer dans un sous-répertoire '''mesPackages/sousPackage1/Toto.java'''.
 
Lorsqu'ensuite on désire utiliser la classe Toto depuis une autre classe, il faudra au préalable écrire :
<sourcesyntaxhighlight lang="java">
import mesPackages.sousPackage1.Toto;
</syntaxhighlight>
</source>
ou
<sourcesyntaxhighlight lang="java">
import mesPackages.sousPackage1.*;
// importation de toutes les classes
// de l'extension mesPackage.sousPackage1
</syntaxhighlight>
</source>
ou utiliser directement une référence à l'extension :
<sourcesyntaxhighlight lang="java">
mesPackages.sousPackage1.Toto toto
= new mesPackages.sousPackage1.Toto();
</syntaxhighlight>
</source>
 
== Remarques ==
Ligne 40 :
 
Les bibliothèques Java destinées à être distribuées regroupent leurs classes dans une ou plusieurs extensions dont le nom est normalement précédé par un nom de domaine (dans l'ordre inverse), par exemple :
<sourcesyntaxhighlight lang="java">
package org.wikibooks.exemple;
</syntaxhighlight>
</source>
 
== Compilation ==
Ligne 49 :
 
Par exemple, le fichier <code>Toto.java</code> définit la classe <code>Toto</code> de l'extension <code>org.wikibooks.exemple</code> débute par :
<sourcesyntaxhighlight lang="java">
package org.wikibooks.exemple;
 
class Toto ...
</syntaxhighlight>
</source>
et '''doit''' se situer dans le répertoire <code>org/wikibooks/exemple</code>.
 
Ligne 67 :
 
Exemple 1 :
<sourcesyntaxhighlight lang="java">
double r = Math.cos(Math.PI * theta);
</syntaxhighlight>
</source>
 
L'import statique permet d'importer les membres statiques d'une classe afin de ne pas nommer la classe en question.
 
Exemple 1 :
<sourcesyntaxhighlight lang="java">
// importer le membre statique PI seulement
import static java.lang.Math.PI;
...
double r = Math.cos(PI * theta);
</syntaxhighlight>
</source>
 
Exemple 2 :
<sourcesyntaxhighlight lang="java">
// importer tous les membres statiques de la classe java.lang.Math
import static java.lang.Math.*;
...
double r = cos(PI * theta);
</syntaxhighlight>
</source>
 
L'abus d'import statique n'est pas conseillé car le code ne contient plus de référence à la classe définissant le membre statique utilisé. Il ne faut l'utiliser que si les membres statiques d'un petit nombre de classes sont utilisés fréquemment.
Ligne 96 :
Par exemple, pour compiler et lancer une classe d'un projet du dossier parent (contenant deux répertoires : <code>/source</code> et <code>/libraries</code>) compiler :
 
<sourcesyntaxhighlight lang=dos>
$ javac -classpath libraries/lib.jar source/MainClass.java
</syntaxhighlight>
</source>
 
Puis le lancer :
 
<sourcesyntaxhighlight lang=dos>
$ java -classpath libraries/lib.jar source/MainClass
</syntaxhighlight>
</source>
 
Cela nécessite que <code>MainClass</code> soit le package par défaut, ou un package appelé <code>source</code>, ce qui n'est pas très explicite.