Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
java
Enseignante: Mme Manel BEN SALAH
Email: manel.bensalah@yahoo.fr
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é
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.
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.
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
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
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