Java Language Tutoriel
Démarrer avec le langage Java
Recherche…
Remarques
Le langage de programmation Java est ...
Usage général : il est conçu pour être utilisé pour l'écriture de logiciels dans une grande variété de domaines d'application, et ne possède pas de fonctionnalités spécialisées pour un domaine spécifique.
Basé sur la classe : sa structure d'objet est définie dans les classes. Les instances de classe ont toujours les champs et les méthodes spécifiés dans leurs définitions de classe (voir Classes et objets ). Cela contraste avec les langages non basés sur des classes tels que JavaScript.
Typiquement : le compilateur vérifie au moment de la compilation que les types de variables sont respectés. Par exemple, si une méthode attend un argument de type
String
, cet argument doit en fait être une chaîne lorsque la méthode est appelée.Orientation objet : la plupart des choses dans un programme Java sont des instances de classe, c'est-à-dire des paquets d'états (champs) et des comportements (méthodes qui fonctionnent sur les données et forment l' interface de l'objet avec le monde extérieur).
Portable : Il peut être compilé sur n'importe quelle plate-forme avec
javac
et les fichiers de classe résultants peuvent s'exécuter sur toute plate-forme dotée d'une machine virtuelle Java.
Java est destiné à permettre aux développeurs d'applications "d'écrire une fois, d'exécuter n'importe où" (WORA), ce qui signifie que le code Java compilé peut s'exécuter sur toutes les plates-formes prenant en charge Java sans avoir besoin de recompiler.
Le code Java est compilé en bytecode (les fichiers .class
) qui à leur tour sont interprétés par la machine virtuelle Java (JVM). En théorie, le bytecode créé par un compilateur Java devrait fonctionner de la même manière sur n'importe quelle machine virtuelle Java, même sur un autre type d'ordinateur. La JVM peut (et dans les programmes réels) choisir de compiler dans les commandes natives de la machine les parties du bytecode qui sont souvent exécutées. C'est ce qu'on appelle la compilation "Just-in-time (JIT)".
Editions et versions Java
Il existe trois "éditions" de Java définies par Sun / Oracle:
- Java Standard Edition (SE) est l'édition conçue pour une utilisation générale.
- Java Enterprise Edition (EE) ajoute une gamme de fonctionnalités pour la création de services «d'entreprise» en Java. Java EE est couvert séparément .
- Java Micro Edition (ME) est basé sur un sous-ensemble de Java SE et est destiné à être utilisé sur de petits périphériques avec des ressources limitées.
Il existe une rubrique distincte sur les éditions Java SE / EE / ME .
Chaque édition a plusieurs versions. Les versions de Java SE sont répertoriées ci-dessous.
Installation de Java
Il existe une rubrique distincte sur l' installation de Java (Standard Edition) .
Compiler et exécuter des programmes Java
Il y a des sujets séparés sur:
- Compilation du code source Java
- Déploiement Java, y compris la création de fichiers JAR
- Exécution d'applications Java
- Le Classpath
Et après?
Voici des liens vers des sujets pour continuer à apprendre et à comprendre le langage de programmation Java. Ces sujets sont les bases de la programmation Java pour vous aider à démarrer.
- Types de données primitifs en Java
- Opérateurs en Java
- Cordes en Java
- Structures de contrôle de base en Java
- Classes et objets en Java
- Tableaux en Java
- Normes de code Java
Essai
Bien que Java ne prenne pas en charge le test dans la bibliothèque standard, il existe des bibliothèques tierces conçues pour prendre en charge les tests. Les deux bibliothèques de tests unitaires les plus populaires sont:
- JUnit ( site officiel )
- TestNG ( Site Officiel )
Autre
- Les modèles de conception pour Java sont traités dans les modèles de conception .
- La programmation pour Android est couverte par Android .
- Les technologies Java Enterprise Edition sont couvertes dans Java EE .
- Les technologies Oracle JavaFX sont couvertes dans JavaFX .
1. Dans la section Versions , la date de fin de vie (gratuite) correspond au moment où Oracle cessera de publier d'autres mises à jour de Java SE sur ses sites de téléchargement publics. Les clients qui ont besoin d'un accès continu aux correctifs critiques, aux correctifs de sécurité et à la maintenance générale de Java SE peuvent bénéficier d'une assistance à long terme via Oracle Java SE Support .
Versions
Version Java SE | Nom de code | Fin de vie (gratuit 1 ) | Date de sortie |
---|---|---|---|
Java SE 9 (accès anticipé) | Aucun | avenir | 2017-07-27 |
Java SE 8 | Araign? e | avenir | 2014-03-18 |
Java SE 7 | Dauphin | 2015-04-14 | 2011-07-28 |
Java SE 6 | Mustang | 2013-04-16 | 2006-12-23 |
Java SE 5 | tigre | 2009-11-04 | 2004-10-04 |
Java SE 1.4 | Merlin | avant 2009-11-04 | 2002-02-06 |
Java SE 1.3 | Crécerelle | avant 2009-11-04 | 2000-05-08 |
Java SE 1.2 | Cour de récréation | avant 2009-11-04 | 1998-12-08 |
Java SE 1.1 | Aucun | avant 2009-11-04 | 1997-02-19 |
Java SE 1.0 | Chêne | avant 2009-11-04 | 1996-01-21 |
Création de votre premier programme Java
Créez un nouveau fichier dans votre éditeur de texte ou IDE nommé HelloWorld.java
. Puis collez ce bloc de code dans le fichier et sauvegardez:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
Remarque: Pour que Java puisse reconnaître cela comme une public class
(et ne pas générer d'erreur de compilation ), le nom du fichier doit être identique à celui de la classe ( HelloWorld
dans cet exemple) avec une extension .java
. Il devrait également y avoir un modificateur d'accès public
avant lui.
Les conventions de dénomination recommandent que les classes Java commencent par un caractère majuscule et soient au format de casse camel (dans lequel la première lettre de chaque mot est en majuscule). Les conventions recommandent les caractères de soulignement ( _
) et les signes dollar ( $
).
Pour compiler, ouvrez une fenêtre de terminal et accédez au répertoire de HelloWorld.java
:
cd /path/to/containing/folder/
Note: cd est la commande du terminal pour changer de répertoire.
Entrez javac
suivi du nom du fichier et de l'extension comme suit:
$ javac HelloWorld.java
Il est assez courant d'obtenir l'erreur 'javac' is not recognized as an internal or external command, operable program or batch file.
même lorsque vous avez installé le JDK
et que vous pouvez exécuter le programme à partir d’ IDE
exemple. eclipse
etc. Comme le chemin n'est pas ajouté à l'environnement par défaut.
Dans le cas où vous obtenez cela sur Windows, pour résoudre, essayez d'abord de naviguer vers votre chemin javac.exe
, il est très probable qu'il se trouve dans votre C:\Program Files\Java\jdk(version number)\bin
. Ensuite, essayez de l'exécuter avec ci-dessous.
$ C:\Program Files\Java\jdk(version number)\bin\javac HelloWorld.java
Auparavant, lorsque nous javac
c'était la même chose que la commande ci-dessus. Seulement dans ce cas, votre OS
savait où se trouvait javac
. Disons-le maintenant, de cette façon, vous n'avez pas à taper tout le chemin à chaque fois. Nous devrions ajouter ceci à notre PATH
Pour modifier la variable d'environnement PATH
dans Windows XP / Vista / 7/8/10:
- Panneau de configuration ⇒ Système ⇒ Paramètres système avancés
- Passer à l'onglet "Avancé" ⇒ Variables d'environnement
- Dans "Variables système", faites défiler pour sélectionner "PATH" ⇒ Modifier
Vous ne pouvez pas défaire ceci alors soyez prudent. Commencez par copier votre chemin existant dans le bloc-notes. Ensuite, pour obtenir le PATH exact sur votre javac
naviguez manuellement dans le dossier où réside javac
, cliquez sur la barre d'adresse, puis copiez-le. Il devrait ressembler à c:\Program Files\Java\jdk1.8.0_xx\bin
Dans le champ "Valeur de la variable", collez-le AVANT de tous les répertoires existants, suivi d'un point-virgule (;). NE SUPPRIMEZ aucune entrée existante.
Variable name : PATH
Variable value : c:\Program Files\Java\jdk1.8.0_xx\bin;[Existing Entries...]
Maintenant ceci devrait résoudre.
Pour les systèmes basés sur Linux, essayez ici .
Remarque: La commande javac
appelle le compilateur Java.
Le compilateur générera alors un fichier de bytecode appelé HelloWorld.class
qui pourra être exécuté dans la machine virtuelle Java (JVM) . Le compilateur de langage de programmation Java, javac
, lit les fichiers source écrits dans le langage de programmation Java et les compile en fichiers de classe bytecode
. En option, le compilateur peut également traiter les annotations trouvées dans les fichiers source et de classe à l'aide de l'API Pluggable
Annotation Processing. Le compilateur est un outil de ligne de commande mais peut également être appelé à l'aide de l'API Java Compiler.
Pour exécuter votre programme, entrez java
suivi du nom de la classe qui contient la méthode main
( HelloWorld
dans notre exemple). Notez que la .class
est omise:
$ java HelloWorld
Remarque: la commande java
exécute une application Java.
Cela va sortir sur votre console:
Bonjour le monde!
Vous avez correctement codé et construit votre tout premier programme Java!
Remarque: pour que les commandes Java ( java
, javac
, etc.) soient reconnues, vous devez vous assurer que:
- Un JDK est installé (par exemple Oracle , OpenJDK et d'autres sources)
- Vos variables d'environnement sont correctement configurées
Vous devrez utiliser un compilateur ( javac
) et un exécuteur ( java
) fournis par votre JVM. Pour savoir quelles versions vous avez installées, entrez java -version
et javac -version
sur la ligne de commande. Le numéro de version de votre programme sera imprimé dans le terminal (par exemple 1.8.0_73
).
Regard sur le programme Hello World
Le programme "Hello World" contient un seul fichier, composé d'une définition de classe HelloWorld
, d'une méthode main
et d'une instruction dans la méthode main
.
public class HelloWorld {
Le mot class
clé class
commence la définition de classe pour une classe nommée HelloWorld
. Chaque application Java contient au moins une définition de classe ( Informations complémentaires sur les classes ).
public static void main(String[] args) {
Il s’agit d’une méthode de point d’entrée (définie par son nom et par la signature de public static void main(String[])
) à partir de laquelle la JVM
peut exécuter votre programme. Chaque programme Java devrait en avoir un. C'est:
-
public
: cela signifie que la méthode peut également être appelée de l'extérieur du programme. Voir Visibilité pour plus d'informations à ce sujet. -
static
: signifiant qu'il existe et peut être exécuté seul (au niveau de la classe sans créer d'objet). -
void
: signifiant qu'il ne renvoie aucune valeur. Note: Ceci est différent de C et C ++ où un code de retour tel queint
est attendu (le chemin de Java estSystem.exit()
).
Cette méthode principale accepte:
- Un tableau (généralement appelé
args
) deString
est transmis en tant qu'argument à la fonction principale (par exemple à partir d' arguments de ligne de commande ).
Presque tout cela est requis pour une méthode de point d’entrée Java.
Pièces non requises:
- Le nom
args
est un nom de variable, il peut donc être appelé tout ce que vous voulez, bien qu'il soit généralement appeléargs
. - Que son type de paramètre soit un tableau (
String[] args
) ou Varargs (String... args
) n'a pas d'importance, car les tableaux peuvent être transmis à varargs.
Remarque: Une seule application peut comporter plusieurs classes contenant une méthode de point d’entrée ( main
). Le point d’entrée de l’application est déterminé par le nom de la classe passé en argument à la commande java
.
A l'intérieur de la méthode principale, nous voyons la déclaration suivante:
System.out.println("Hello, World!");
Décomposons cette déclaration élément par élément:
Élément | Objectif |
---|---|
System | Cela signifie que l'expression suivante fera appel à la classe System , à partir du package java.lang . |
. | c'est un "opérateur de points". Les opérateurs de points vous permettent d'accéder aux membres d'une classe 1 ; c'est-à-dire ses champs (variables) et ses méthodes. Dans ce cas, cet opérateur de points vous permet de référencer le champ out statique dans la classe System . |
out | c'est le nom du champ statique de type PrintStream dans la classe System contenant la fonctionnalité de sortie standard. |
. | c'est un autre opérateur de points. Cet opérateur de point donne accès à la méthode println dans la variable out . |
println | c'est le nom d'une méthode dans la classe PrintStream. Cette méthode en particulier imprime le contenu des paramètres dans la console et insère une nouvelle ligne après. |
( | cette parenthèse indique qu'une méthode est en cours d'accès (et non un champ) et commence les paramètres passés dans la méthode println . |
"Hello, World!" | c'est le littéral String qui est passé en paramètre dans la méthode println . Les guillemets doubles à chaque extrémité délimitent le texte en tant que chaîne. |
) | cette parenthèse signifie la fermeture des paramètres passés dans la méthode println . |
; | ce point-virgule marque la fin de la déclaration. |
Remarque: Chaque instruction en Java doit se terminer par un point-virgule ( ;
).
Le corps de la méthode et le corps de la classe sont alors fermés.
} // end of main function scope
} // end of class HelloWorld scope
Voici un autre exemple démontrant le paradigme OO. Modélisons une équipe de football avec un (oui, un!) Membre. Il peut y en avoir plus, mais nous en discuterons quand nous arriverons aux tableaux.
Tout d'abord, définissons notre classe d' Team
:
public class Team {
Member member;
public Team(Member member) { // who is in this Team?
this.member = member; // one 'member' is in this Team!
}
}
Maintenant, définissons notre classe de Member
:
class Member {
private String name;
private String type;
private int level; // note the data type here
private int rank; // note the data type here as well
public Member(String name, String type, int level, int rank) {
this.name = name;
this.type = type;
this.level = level;
this.rank = rank;
}
}
Pourquoi utilisons-nous private
ici? Eh bien, si quelqu'un voulait connaître votre nom, il devrait vous le demander directement, au lieu d'aller dans votre poche et de retirer votre carte de sécurité sociale. Ce private
fait quelque chose comme ça: il empêche les entités extérieures d'accéder à vos variables. Vous ne pouvez renvoyer que private
membres private
via les fonctions de lecture (présentées ci-dessous).
Après avoir rassemblé le tout et ajouté les méthodes principales et les méthodes décrites ci-dessus, nous avons:
public class Team {
Member member;
public Team(Member member) {
this.member = member;
}
// here's our main method
public static void main(String[] args) {
Member myMember = new Member("Aurieel", "light", 10, 1);
Team myTeam = new Team(myMember);
System.out.println(myTeam.member.getName());
System.out.println(myTeam.member.getType());
System.out.println(myTeam.member.getLevel());
System.out.println(myTeam.member.getRank());
}
}
class Member {
private String name;
private String type;
private int level;
private int rank;
public Member(String name, String type, int level, int rank) {
this.name = name;
this.type = type;
this.level = level;
this.rank = rank;
}
/* let's define our getter functions here */
public String getName() { // what is your name?
return this.name; // my name is ...
}
public String getType() { // what is your type?
return this.type; // my type is ...
}
public int getLevel() { // what is your level?
return this.level; // my level is ...
}
public int getRank() { // what is your rank?
return this.rank; // my rank is
}
}
Sortie:
Aurieel
light
10
1
Encore une fois, la méthode main
dans la classe Test
est le point d’entrée de notre programme. Sans la méthode main
, nous ne pouvons pas dire à la machine virtuelle Java (JVM) où commencer l'exécution du programme.
1 - Comme la classe HelloWorld
a peu de rapport avec la classe System
, elle ne peut accéder qu'aux données public
.