Java : introduction
Mohammed OUANAN
m.ouanan@umi.ac.ma
Mohammed OUANAN
Plan
1 Introduction
2 Architecture
3 Installation
JDK
IDE : Eclipse
4 Avant de commencer
5 Premier projet Java
6 Commentaires
7 Documentation
Mohammed OUANAN
Introduction
Java
Java
langage de programmation
orienté objet
fortement typé
présenté officiellement en 1995 par Sun Microsystems (racheté par Oracle
Corporation le 20 avril 2009)
syntaxe très proche du C (procédural) et C++ (procédural, orienté objet)
Mohammed OUANAN 3 / 38
Introduction
Java
Java
langage de programmation
orienté objet
fortement typé
présenté officiellement en 1995 par Sun Microsystems (racheté par Oracle
Corporation le 20 avril 2009)
syntaxe très proche du C (procédural) et C++ (procédural, orienté objet)
Attention
Java ̸= JavaScript
Mohammed OUANAN 3 / 38
Introduction
Java, pourquoi ?
Langage de haut niveau (pas de gestion de mémoire, pas d’allocation
dynamique, pas de pointeur... comme en C et C++)
Disposant d’une bonne documentation, des supports vidéos, plusieurs exemples
sur internet
E´norme communauté : un des langages les plus utilisés dans le monde
(https://www.tiobe.com/tiobe-index/)
Permettant de développer des programmes :
robustes
sécurisés et fiables
bien structurés et maintenables
portables : Windows, Mac OS, Linux (Write once, run everywhere ou
E´crire une fois, exécuter partout)
...
Mohammed OUANAN 4 / 38
Introduction
Java
Trois plateformes d’exécution
Java Standard Edition (J2SE ou Java SE ou JSE)
applications consoles
applications du bureau ou Desktop
Java Enterprise Edition (J2EE ou Java EE ou JEE)
applications web
services web
Java Micro Edition (J2ME ou Java ME ou JME)
applications mobiles
applications embarquées
jeux
Mohammed OUANAN
Introduction
Différentes versions de Java
Java 1 (1995) Java 11 (Septembre 2018) : simplifier l’exécution d’un
programme en ligne de commande
Java 1.2 (1998, nommée Playground) : Swing,
collection... Java 12 (Mars 2019) : simplification de switch et
String multi-lignes
Java 1.3 (2000, nommée Kestrel) : JNDI...
Java 13 (Septembre 2019) : -> dans switch
Java 1.4 (2002, nommée Merlin) : JAXP...
Java 14 (Mars 2020) : Text Blocks
Java 5.0 ou 1.5 (2004, nommée Tiger) : généricité,
annotation, énumération, plus besoin de convertir les Java 15 (Septembre 2020) : Record,
types wrappers en primitifs (et inversement) Stream.toList, classes cachées...
Java 6.0 ou 1.6 (2006, nommée Mustang) : JAX-WS Java 16 (Mars 2021) : Intégration du langage C++
Java 7 ou 1.7 (2011, nommée Dolphin) : String
Java 17 (Septembre 2021) : Classes scellées
dans switch
Java 8 ou 1.8 (Mars 2014, nommée Spider) : interface Java 18 (Mars 2022) : UTF-8 par défaut
fonctionnelle, méthode par défaut, expression Lambda
Java 19 (Septembre 2022) : Threads virtuels
Java 9 (Septembre 2017, nommée Umbrella) : JSON Java 20 (Mars 2023) : Imbrication des Record
et HTTP/2
Java 21 (Septembre 2023) : Simplification du main
Java 10 (Mars 2018) : mot-clévar
rouge : version non supportée, bleu : LTS (Long time support) version.
Mohammed OUANAN
Introduction
Java
Remarque
Depuis Java 17, une version LTS sera proposée tous les deux ans.
Mohammed OUANAN
Architecture
Java
Comment ça fonctionne ?
On écrit un programme dans un fichier .java
Ensuite, le compilateur génère un fichier .class du même nom
(contenant du bytecode)
Puis, la machine virtuelle exécute le bytecode.
compiler JVM
MyClass.java MyClass.class MyClass
Mohammed OUANAN
Architecture
Java
De quoi on a besoin (le minimum)?
Un éditeur de texte (Bloc-notes, Notepad++, Sublime Text...)
Un kit de développement (JDK : Java Development Kit) contenant :
Java Runtime Environment (JRE, incluant la machine virtuelle de Java (JVM))
JSE, JEE, JME
Des commandes permettant la création, la compilation et l’exécution d’un
programme Java
javac : pour compiler
java : pour exécuter
javadoc : pour générer une documentation
jar : pour archiver
Mohammed OUANAN
Architecture
Java
JDK OpenJDK
Développé par Oracle. Développé par Oracle.
Partiellement open-source. Entièrement open-source.
Nouvelle version disponible six mois plus
Nouvelle version disponible
tard.
immédiatement.
Mohammed OUANAN
Architecture
Java
JCP : Java Community Process
Organisation communautaire ouverte ayant comme rôle : définir et/ou améliorer les
spécifications des technologies Java.
Mohammed OUANAN 11 / 38
Architecture
Java
JCP : Java Community Process
Organisation communautaire ouverte ayant comme rôle : définir et/ou améliorer les
spécifications des technologies Java.
JSR : Java Specification Request
Document utilisé par JCP pour décrire une proposition d’amélioration du langage
Java et ses environnements.
Mohammed OUANAN 11 / 38
Architecture
Java
JCP : Java Community Process
Organisation communautaire ouverte ayant comme rôle : définir et/ou améliorer les
spécifications des technologies Java.
JSR : Java Specification Request
Document utilisé par JCP pour décrire une proposition d’amélioration du langage
Java et ses environnements.
JEP : JDK Enhancement Process
Document utilisé pour décrire les nouveaux changement à OpenJDK.
Mohammed OUANAN 11 / 38
Installation JDK
Java
JDK 11 : téléchargement
https://www.oracle.com/java/technologies/javase/jdk11-archive-downloads.html
JDK 17 : téléchargement
https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html
JDK 21 : téléchargement
https://www.oracle.com/java/technologies/javase/jdk21-archive-downloads.html
Mohammed OUANAN
Installation JDK
Java
Remarque
Pour lancer un programme en ligne de commande, il faut :
aller dans Panneau de configuration, chercher Système et
cliquer sur Paramètres systèmes avancés
choisir Variables d’environnement puis dans la zone
Variables utilisateur sélectionner Path et cliquer sur
Modifier
cliquer sur Nouveau puis saisir le chemin vers la JDK dans la
zone de saisie qui a apparu
valider
Mohammed OUANAN
Installation JDK
Java
Créons une classe MyClass dans un fichier MyClass.java
public class MyClass {
public static void main(String[] args) {
System.out.print("Hello world from console");
}
}
compiler JVM
MyClass.java MyClass.class MyClass
Mohammed OUANAN 14 / 38
Installation JDK
Java
Créons une classe MyClass dans un fichier MyClass.java
public class MyClass {
public static void main(String[] args) {
System.out.print("Hello world from console");
}
}
compiler JVM
MyClass.java MyClass.class MyClass
javac MyClass.java
Mohammed OUANAN 14 / 38
Installation JDK
Java
Créons une classe MyClass dans un fichier MyClass.java
public class MyClass {
public static void main(String[] args) {
System.out.print("Hello world from console");
}
}
compiler JVM
MyClass.java MyClass.class MyClass
javac MyClass.java java MyClass.class
Mohammed OUANAN 14 / 38
Installation JDK
Java
Créons une classe MyClass dans un fichier MyClass.java
public class MyClass {
public static void main(String[] args) {
System.out.print("Hello world from console");
}
}
compiler JVM
MyClass.java MyClass.class MyClass
javac MyClass.java java MyClass.class
java MyClass.java [depuis Java 11]
Mohammed OUANAN 14 / 38
Installation JDK
Java
Pour compiler
javac MyClass.java
Mohammed OUANAN 15 / 38
Installation JDK
Java
Pour compiler
javac MyClass.java
S’il existe plusieurs versions de JDK sur la machine
javac -target 8 -version 8 MyClass.java
Mohammed OUANAN 15 / 38
Installation JDK
Java
Pour compiler
javac MyClass.java
S’il existe plusieurs versions de JDK sur la machine
javac -target 8 -version 8 MyClass.java
Pour exécuter (affiche Hello world from console)
java MyClass
Mohammed OUANAN 15 / 38
Installation IDE : Eclipse
Java
On peut aussi utiliser un IDE (Environnement de développement i n t é g ré)
pour éviter d’utiliser la console et les commandes
car un IDE intègre un compilateur lancé même pendant l’écriture du
code
pour profiter de la coloration syntaxique, l’auto-complétion, l’indentation
automatique...
pour avoir une bonne structuration du projet
Mohammed OUANAN
Installation IDE : Eclipse
Java
Exemple d’IDE pour Java
Eclipse
Netbeans
JDeveloper
IntelliJ IDEA
JBuilder
JCreator...
...
Mohammed OUANAN
Installation IDE : Eclipse
Java
Eclipse, pourquoi ?
open-source
écrit en Java
multi-langage : Java, C++, PHP, Cobol, C#, JavaScript...
multi-OS : Windows, Linux, Mac...
Mohammed OUANAN
Installation IDE : Eclipse
Java
Eclipse : teléchargement
https://www.eclipse.org/downloads/download.php?file=
/oomph/epp/2023-09/R/eclipse-inst-jre-win64.exe
Mohammed OUANAN
Installation IDE : Eclipse
Java
Editeur Java en ligne
https://www.jdoodle.com/online-java-compiler/
Mohammed OUANAN
Installation IDE : Eclipse
Java
Mohammed OUANAN 21 / 38
Installation IDE : Eclipse
Java
Mohammed OUANAN 21 / 38
Installation IDE : Eclipse
Java
Quelques raccourcis Eclipse
Ctrl + Shift + : : commenter/décommenter le code
Ctrl + Shift + f : formater le code
Ctrl + Alt + ↓ ou Ctrl + Alt + 𝛙 : dupliquer la ligne sélectionnée
Ctrl + Shift + o : gérer les importer
Ctrl + Alt + l : afficher la liste des raccourcis
Alt + Shift + R : faire une séection multiple
Shift + K : aller àl’occurrence suivante
Ctrl + Shift + K : aller à l’occurrence précédente
Mohammed OUANAN
Avant de commencer
Java
Réglesde nommage en Java
Pour les classes et les fichiers : Pascal case
Pour les variables, les objets et les méthodes : Camel case
Pour les constantes : Screaming snake case
Pour les noms de projets : Kebab case
Mohammed OUANAN 23 / 38
Régles de nommage en Java
Mohammed OUANAN
Avant de commencer
Java
Régles de nommage en Java
Pour les classes et les fichiers : Pascal case
Pour les variables, les objets et les méthodes : Camel case
Pour les constantes : Screaming snake case
Pour les noms de projets : Kebab case
Pour plus de detailś
https://en.wikipedia.org/wiki/Naming_convention_(programming)
Mohammed OUANAN 23 / 38
Avant de commencer
Java
Instructions
Chaque instruction se termine par ;
Il est possible d’écrire plusieurs instructions sur une même ligne
(mais ce n’est pas une bonne pratique)
Mohammed OUANAN
Avant de commencer
Java
Comment organiser un projet Java ?
Une classe par fichier
Organiser les classes par package selon la sémantique
Une classe ne peut être définie dans plusieurs fichiers (pas de
classe partielle en Java)
Il est possible de créer deux classes avec le même nom dans
deux packages différents
Mohammed OUANAN
Premier projet Java
Java
Comment créer un projet sous Eclipse
?
Aller dans File > New > Java Project
Remplir le champ Project name: avec cours-introduction puis cliquer sur Next
Décocher la case Create module-info.java file puis cliquer sur Finish
Mohammed OUANAN 26 / 38
Premier projet Java
Java
Comment créer un projet sous Eclipse
?
Aller dans File > New > Java Project
Remplir le champ Project name: avec cours-introduction puis cliquer sur Next
Décocher la case Create module-info.java file puis cliquer sur Finish
Que contient ce projet ?
JRE System Library : l’ensemble de .jar indispensable pour le lancement du projet
src : le répertoire qui contiendra les fichiers sources (les classes)
Mohammed OUANAN 26 / 38
Premier projet Java
Java
Comment créer une classe ?
Aller dans File > New > Class
Dans Package, saisir org.eclipse.classes
Dans Class, saisir FirstClass
Cocher la case public static void main (String[] args)
Cliquer sur Finish
Mohammed OUANAN 27 / 38
Premier projet Java
Java
Comment créer une classe
?
Aller dans File > New > Class
Dans Package, saisir org.eclipse.classes
Dans Class, saisir FirstClass
Cocher la case public static void main (String[] args)
Cliquer sur Finish
Remarque
Si on a un package, on peut le sélectionner au moment de la création de la classe
Mohammed OUANAN 27 / 38
Premier projet Java
Java
Comment créer un package ?
Aller dans File > New > Package
Saisir le nom du package et valider
Mohammed OUANAN
Premier projet Java
Java
Contenu de la classe FirstClass
package org.eclipse.classes;
public class FirstClass {
public static void main(String[] args) {
// TODO Auto-generated method stub
Mohammed OUANAN
Premier projet Java
Java
Explication
En Java, et contrairement à plusieurs langages OO comme C++, Python,
PHP..., on ne peut écrire une instruction en dehors d’une (méthode de) classe.
En Java, un fichier contient une seule classe et une classe ne peut être déclarée
dans plusieurs fichiers (contrairement a` C#)
La première ligne package org.eclipse.classes nous informe que la
classe actuelle se situe dans src/org/eclipse/classes dans un répertoire
cours-introduction situé dans le workspace d’Eclipse
Dans un projet Java, il faut qu’au moins une classe contienne la méthode
public static void main(String[] args) : point d’entrée du projet
Mohammed OUANAN
Premier projet Java
Pour afficher Hello World, on modifie la classe FirstClass
package org.eclipse.classes;
public class FirstClass {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Java est un langage 100% (ou presque) orienté objet
Pour afficher un message, il faut utiliser la classe System
La classe System a deux objets pour l’entrée/sortie (in/out)
L’objet out a plusieurs méthodes d’affichage comme print() et println()
Mohammed OUANAN
Premier projet Java
Java
Comment executér le programme ? (voir le resultat)´
Soit en faisant clic droit sur cours-introduction dans Package
Explorer et aller dans Run As > Java Application
Soit en faisant clic droit sur la classe contenant puclic static void
main() (ici FirstClass) dans le panneau central et aller dans Run
As > Java Application
Soit en cliquant sur le triangle vert dans la liste de raccourci
Mohammed OUANAN
Premier projet Java
Java
Ou voir le résultat?
Dans la console Eclipse
Si la console n’est pas visible, aller dans Window > Show View
> Other..., saisir console et la sélectionner puis valider.
Mohammed OUANAN 33 / 38
Premier projet Java
Java
Ou` voir le résultat ?
Dans la console Eclipse
Si la console n’est pas visible, aller dans Window > Show View
> Other..., saisir console et la sélectionner puis valider.
Ou sont les .class générés?
Dans le work-space, aller voir dans le répertoire portant le nom
du projet (ici cours-introduction)
Dans org/eclipse/classes, un fichier FirstClass.class
a été gé né ré .
Mohammed OUANAN 33 / 38
Commentaires
Java
Commentaires
Instructions ignorées par le compilateur
Mohammed OUANAN 34 / 38
Commentaires
Java
Commentaires
Instructions ignorées par le compilateur
Trois types de commentaire en Java
Mohammed OUANAN 34 / 38
Commentaires
Java
Commentaire sur une seule ligne
// commentaire
Mohammed OUANAN 35 / 38
Commentaires
Java
Commentaire sur une seule ligne
// commentaire
Raccourci Eclipse
Pour commenter ou décommenter : Ctrl + Shift + : ou
Ctrl + Shift + c
Mohammed OUANAN 35 / 38
Commentaires
Java
Commentaire sur une plusieurs lignes (Raccourci VS : )
/* le commentaire
la suite
et encore la suite
*/
Mohammed OUANAN 36 / 38
Commentaires
Java
Commentaire sur une plusieurs lignes (Raccourci VS : )
/* le commentaire
la suite
et encore la suite
*/
Raccourci Eclipse
Pour commenter ou dé-commenter : Ctrl + \
Mohammed OUANAN 36 / 38
Commentaires
Java
Commentaire pour la documentation
/**
* @author Mohammed OUANAN
*/
Mohammed OUANAN 37 / 38
Commentaires
Java
Commentaire pour la documentation
/**
* @author Achref El Mouelhi
*/
Raccourci Eclipse
Alt + Shift + j
Mohammed OUANAN 37 / 38
Documentation
Java
Documentation
https://docs.oracle.com/javase/tutorial/java/
nutsandbolts/index.html
Mohammed OUANAN 38 / 38