Vous êtes sur la page 1sur 38

Chapitre 2: Les concepts de base du langage

java
Enseignante: Mme Manel BEN SALAH
Email: manel.bensalah@yahoo.fr

Année universitaire: 2021-2022


Plan du chapitre

➢Présentation du langage Java

➢Syntaxe du langage Java

2
Présentation du langage JAVA

3
Rapide Histoire de Java
• Origine
• Créé par Sun Microsystems
• Cible : les systèmes embarqués (véhicules, électroménager, etc)
utilisant des langages dédiés incompatibles entre eux
• Java fondé sur une syntaxe très proche de C++ & concept de
machine virtuelle (Pascal)
• Traduire un programme source, non pas directement en langage
machine, mais dans un pseudo langage universel

4
Rapide Histoire de Java
• Dates clés
– 1991 : Introduction du langage « Oak » par James Gosling
– 1993 : Montée en puissance du Web grâce à Mosaic (l’idée
d’adapter Java au Web fait son chemin)
– 1995 : Réalisation du logiciel HotJava en Java permettant
d’exécuter des applets
– 1996 : NetscapeTM Navigator 2 incorpore une machine virtuelle
Java 1.0 en version « beta »
– 1997 : Un premier pas vers une version industrielle Java 1.1
– 1999 : Version industrielle de Java
– 2009: La société Oracle racheta la société Sun en 2009
5
Évolution des version de Java au fil des années

6
Qu’est-ce que Java ?
• Java est un langage de programmation
– Un programme Java est compilé et interprété

• Java est une plateforme


– La plateforme Java, uniquement software, est exécutée sur la plateforme du
système d’exploitation
– La « Java Platform » est constituée de :
• La « Java Virtual Machine » (JVM)
• Des interfaces de programmation d’application (Java API)

7
Java comme langage de programmation
Java est un langage de programmation particulier qui possède des caractéristiques avantageuses:
– Simplicité et productivité:
• Intégration complète de l’OO
• Gestion mémoire (« Garbage collector »)
– Robustesse, fiabilité et sécurité
• Moyen: typage fort, pas de pointeurs, gestionnaire de cellules ou ramasse-miettes, vérifications de validité
d’accès.)
– Portabilité
• Indépendance par rapport aux plateformes
– Ouverture
• Support intégré d’Internet
• Connexion intégrée aux bases de données (JDBC)
• Support des caractères internationaux
– Distribution et aspects dynamiques
– Performance

8
Java comme langage de programmation
Neutre architecturalement
• Il existe une grande diversité de MyProgram.java
systèmes d’exploitation
• Le compilateur Java génère un
bytecode, c’est à dire un format Java Compiler
intermédiaire, neutre
architecturalement, conçu pour faire
transiter efficacement le code vers des
MyProgram.class
hardware différents et/ou plateformes = bytecode
différentes
• Le bytecode ne peut-être interprété
JVM JVM JVM
que par le processeur de la JVM
Mac Windows Unix

9
Java comme Plateforme
• Plateforme = environnement hardware ou software sur lequel
le programme est exécuté.
• La Java « Platform » se compose de:
– la Java Virtual Machine (Java VM)
– la Java Application Programming Interface (Java API)

10
Java comme Plateforme
Java Application Programming Interface (API)
• L’API Java est structuré en libraires (packages). Les packages comprennent des
ensembles fonctionnels de composants (classes)..
• Le noyau (core) de l’API Java (incluse dans toute implémentation complète
de la plateforme Java) comprend notamment :
– java.lang contient les classes de base (chaînes de caractères, mathématiques, tâches,
exceptions ...)
– java.util contient des classes comme vecteurs, piles, files, tables ...
– java.io contient les classes liées aux entrées/sorties texte et fichier
– javafx contient les classes pour les interfaces (fenêtres, boutons, menus, graphique,
événements ...)
– java.net contient les classes relatives à internet (sockets, URL ...)…..

11
Java Platform Standard Edition 8
(https://docs.oracle.com/javase/8/docs/)
Java: un langage et une plateforme
➢ Dans la technologie Java, on a donc besoin
➢ Du langage de programmation et du compilateur
➢ Et plein de commandes bien utiles: jar, javap, javadoc, etc
➢ De la JVM et des APIs (Application Programming Interfaces) regroupées dans une «
plateforme »:
➢ Java SE (Java Platform, Standard Edition): Java SE pour applications classiques, desktop
➢ Java EE (Java Platform, Enterprise Edition): Java EE pour développer et déployer des
applications serveur, Web services, etc.
➢ Java ME (Java Platform, Micro Edition): J2ME pour les applications embarquées, PDA,
téléphones, etc.

➢Si on veut juste exécuter, il suffit du JRE (Java Runtime


Execution) par opposition au JDK (Java Developpement Kit)
13
Les Plateformes Java
• Java SE : Java Standard Edition est une plateforme
qui contient les libraires nécessaires pour créer une
application Java basique (java.io, java.lang, java.sql,
….)
• Java ME : Java Micro Edition permet de développer
des applications pour Mobile, et pour dispositifs
Embarqués.
• Java Card: un système d'exploitation pour carte à
puce qui fournit essentiellement un environnement
d'exécution pour un sous- ensemble du langage
Java spécifiquement destiné aux applications pour
carte à puce.
• JavaEE (J2EE puis Java EE / JEE puis Jakarta EE) :
Java Enterprise Edition contient JavaSE, et d’autres
librairies pour créer des applications d’Entreprises
(EJB, JPA, JSF, Servlets, …).
Mon premier programme en Java

ISETSF 2020-2021 DSI2 --- Programmation Objet Avancée 15


Mon premier programme en Java
◼ Créer un fichier texte : HelloWorld.java
◼ Règle de bonne pratique : 1 classe par fichier et 1 fichier par classe (même
nom)
◼ Nom de la classe commence par Majuscule, nom de la fonction en
minuscule
La première ligne du programme doit être
la déclaration de la classe

Tout programme doit contenir une


méthode main qui porte la signature ci-
contre

Écrire à l’écran “Hello World”

Fermer les accolades

16
Mon premier programme en Java

◼ Le mot class veut dire que nous allons définir une nouvelle classe
Java, suivi du nom de cette classe.
◼ En Java, les majuscules et les minuscules sont considérés comme
des caractères différents.
◼ Les caractères « { » et « } » marquent le début et la fin du bloc d’instructions à
réaliser par la classe.

◼ Le mot main indique que cette méthode est la méthode principale


de la classe.
◼ Un interpréteur Java à pour fonction d’exécuter les instructions de
la méthode principale main, du programme qu’on lui soumet.

17
Mon premier programme en Java
◼ Une méthode peut prendre des paramètres de types précis et
renvoie éventuellement une valeur de type tout aussi précis.
◼ le mot void signifie que la méthode main ne renvoie aucune valeur.
◼ args[ ] est le paramètre d’entrée de type String de la méthode main.
◼ les mots public et static décrivent chacun une caractéristique de la
méthode (public : méthode visible, static : spécifique à la classe et non
aux objets)
◼ System.out.println est une commande permettant d’afficher la chaîne
de caractère « Hello the World» sur la sortie standard de la machine
qui est l’écran
Structure d’une application Java
◼ Parmi les classes définies dans le
fichier CCC.java il ne peut y avoir Fichier «CCC.java »
qu’une seule classe publique et ayant
le même nom CCC que le fichier. Définition d’une classe AAA

Définition d’une classe BBB


◼ Elle contient généralement la
méthode main() Définition d’une classe CCC
Méthode main ( )

19
Comment développer une application?
Deux façons d’écrire des programmes Java:
1. En écrivant le code dans un simple éditeur de texte
Compilation et exécution du code en ligne de commande DOS

2. En utilisant un environnement de développement (IDE)


– Eclipse (http://www.eclipse.org/ )
– Netbeans (http://www.netbeans.org )
– IntelliJ Idea(www.jetbrains.com/idea/ )
– Oracle Jdeveloper (https://www.oracle.com/technetwork/developer-
tools/jdev/overview/index.html )
– DrJava (http://www.drjava.org/)
– MyEclipse (https://www.genuitec.com/products/myeclipse/)

20
Syntaxe du langage Java

21
Le langage Java
▪ Les variables, les opérateurs, les expressions, instructions, blocs, contrôle de flot
sont très proches de ceux du C
➢ Les exceptions sont une nouveauté
➢ Les types primitifs ont une taille et une représentation normée
▪ S'y ajoutent des spécificités syntaxiques liées à la programmation objet, aux classes,
à l'héritage...
▪ Un style de nommage (très fortement) conseillé
➢ Style « chameau » (CamelCase) pour les identificateurs
➢ Première majuscule pour les classes (class HelloWorld)
➢ Première minuscule pour les variables/champs et les fonctions/ méthodes (radius, getRadius())
➢ Tout en majuscule pour les constantes (MAX_SIZE)

22
Commentaires
Instructions, Variables
Les Variables
Les Types Primitifs
Les Opérateurs
Incrémentation et affectation
Les instructions conditionnelles if
Les instructions conditionnelles switch
Les boucles while et do/ while
Les boucles for
Les tableaux (Array)
• Un tableau est utilisé pour stocker une collection de variables de même
type
• On peut créer des tableaux de types primitifs ou de types de références
(cf. argument de la fonction main : String[] args)
• Un tableau doit être
– Déclaré
– Créé
– Ses variables initialisées
int[] nombres; // déclaration
nombres = new int[10]; // création
int[] nombres = new int[10]; // déclaration et création
nombres[0] = 28;

33
Les tableaux (Array) (2)
• On peut construire des tableaux à plusieurs dimensions
• Des tableaux à plusieurs dimensions sont en fait des tableaux
de tableaux

34
Les fonctions d’entrée/sortie
▪ La sortie standard (System.out) : permet d’écrire dans la console, cet objet
représente une destination vers laquelle nous pouvons envoyer un résultat.
▪ System.out.print est une fonction de sortie standard utilisée dans Java.
▪ La méthode print est similaire à la méthode println, cependant elle ne fait pas de
retour a la ligne.La méthodes font partie de l’objet System.out.
▪ Grâce à System.out.print on peut afficher plusieurs chose sur la même ligne grâce à
System.out.println("") on peut sauter une ligne blanche.
Exemple:
double prixTotal=12.6;
System.out.print("Prix total: ");
System.out.print(prixTotal);
System.out.println(" euros");
Affichage :
Prix total : 12.6 euros

35
Les fonctions d’entrée/sortie (2)
La classe Scanner permet l’entrée facile de types primitifs et de String au
clavier.
1) il est nécessaire d'importer la classe Scanner :
import java.util.Scanner;
2) Il suffit de créer un objet Scanner avec en argument le flux à lire,
Scanner sc = new Scanner(System.in);
3) puis d’appeler une méthode nextXXX() selon le type primitif XXX à lire :int
i = sc.nextInt(); //la prise d’un entier sur (au clavier)

36
Les fonctions d’entrée/sortie (3)
▪ .next() : renvoie la prochaine chaîne de caractères ; par défaut, les séparateurs des
chaînes de caractères sont les caractères d'espacement (espace, saut de ligne,
tabulation...).
▪ .nextInt() : pour que cet appel fonctionne, il est nécessaire que la prochaine donnée
corresponde à un entier, que la méthode renvoie ; sinon la méthode lancera une
exception.
▪ .nextLine(); : renvoie la prochaine ligne ou la fin de la ligne courante ; ici, on utilise
cette instruction pour ignorer la fin de la ligne ayant servi à donner l'âge, cette fin
ligne ne contiendra sans doute à l'exécution que le caractère de fin de ligne.
▪ boolean hasNext(): Cette méthode renvoie true si ce scanner a un autre entité en
entrée.

37
Exemple
import java.util.Scanner;
class SaisieClavierBis {
public static void main (String[] arg)
{
Scanner sc = new Scanner(System.in);
System.out.println("Donnez votre prénom et votre nom");
String prenom = sc.next();
String nom = sc.next();
System.out.println("Donnez votre âge");
int age = sc.nextInt();
sc.nextLine();
System.out.println("Ecrire votre phrase");
String phrase = sc.nextLine();
System.out.println(prenom + " " + nom + ", " + age + " ans, dit : " + phrase);
}
} 38

Vous aimerez peut-être aussi