Démarrer avec le langage Java

Téléchargez java eBook

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:

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.

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:

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!");
    }
}
 

Courir en direct sur Ideone

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 que int est attendu (le chemin de Java est System.exit() ).

Cette méthode principale accepte:

  • Un tableau (généralement appelé args ) de String 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
 

Courir sur ideone

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 .

Stats

13735 Contributors: 176
Tuesday, July 18, 2017
Sous licence: CC-BY-SA

Non affilié à Stack Overflow
Rip Tutorial: info@zzzprojects.com

Télécharger le eBook