You are on page 1of 44

Programmation Orientée

Objet en Java
Intervenant:
Pape Modou Ndiaye
Ingénieur en Sécurité Informatique
Analyste-Programmeur
77 363 55 56
modupap@gmail.com

2
Organisation du cours

CONDITIONS DE TRAVAIL EVALUATION

 Environnemet de travail disponible avant la  Controle


prochaine séance  TP
 Respecter la durée de la pause  Participation
 Prévenir en cas d’absence  Comportement
 Justifier les absences
 Faire les TD.

3
Bibliographie et Webographie

 <<Programmer en Java>>, C. Delannoy,Eyrolles 2014


 <<Penser en Java>>, B. Eckel, http://pensezenjava.free.fr/
 API Java Standard Edition 8,
http://docs.oracle.com/javase/8/docs/api/

4
Plan

 Introduction au langage java


 Les bases
 Programmation Orientée Objet
 Les chaines de caractères
 Polymorphisme: héritage et interface
 Exceptions
 Collections
 Interface Graphique (Swing) 5
Plan

 Java DataBase Connectivity


 Sécurité en Java
 Projets

6
Exercices de révision

Mise en place de l’environnement de travail

7
1
JAVA c’est quoi ?

8
Java c’est quoi ?

Une techonologie développée par SUN Microsystems (James Gosling et


Patrick Naughton) lancée en 1995, rachetée par Oracle en 2009
 Un langage de programmation
 Une plateforme, environnement logiciel dans lequel les programmes java
s’exécutent.
 Sa syntaxe est très proche du C.
 Ses caractéristiques ainsi que la richesse de son écosystème et de sa
communauté lui ont permis d’être très largement utilisé pour le
développement d’applications de grande envergure.

9
Java c’est quoi ?

Parts de marché: Classement Tiobe Novembre 2017

10
Java c’est quoi ?

Parts de marché: Classement Tiobe Novembre 2017

11
2
Caractéristiques de Java

12
Caractérisiques de Java

▰Un langage interprété: Le code source est compilé en pseudo code ou byte code
puis exécuté par un interpréteur Java: la JVM (Java Virtual Machine). Ce concept
est à la base du slogan WORA ( Write Once, Run Anywhere).
Le byte code, s’il ne contient pas de code spécifique à une plateforme particulière
peut être exécuté et quasiment obtenir les mêmes résultats sur toutes les
machines disposant d’une JVM.
▰Des applications portables

13
Caractérisiques de Java

▰Java est orienté objet: Reflète plus finement les objets du monde réel.
Chaque fichier source contient la définition d’une ou plusieurs classes qui sont
utilisées les unes avec les autres pour former une application.
▰Objet: Etudiant, Enseignant, Mouton,
▰Java est fortement typé: toutes les variables sont typées.

14
3
Historique

15
Historique

Mai 1995: premier lancement commercial (JDK 1.0)


Janvier 1996: sortie du JDK 1.0.1
2006: Java SE 6.0
Janvier 2010: rachat de Sun par Oracle Mars 2014: Java SE 8
Mars 2017: Java SE 9

16
Techniques de base du langage

Sun fournit gratuitement un ensemble d’outils et d’API pour permettre le


développement de programmes avec Java. Ce kit, nommé JDK, est librement
téléchargeable.
Le JRE (Java Runtime Environment) contient uniquement l’environnement
d’exécution des programmes. Le JDK contient lui-même le JRE. Le JRE seul doit
être installé sur les machines où des applications Java doivent être exécutées.

17
Compilation et Execution

Un programme Java est composé d’un ou plus généralement de plusieurs fichiers


sources. N’importe quelle éditeur de texte peut être utilisé pour éditer un fichier
source Java.
Ces fichiers sources possèdent l’extension .java. Ils peuvent contenir une ou
plusieurs classes ou interfaces mais il ne peut y avoir qu’une seule classe ou
interface déclarée publique par fichier. Le nom de ce fichier source doit
obligatoirement correspondre à la casse près au nom de cette entité publique
suivi de l’extension .java.
Il est nécessaire de compiler le source pour le transformer en J-code ou byte-code
Java qui sera lui exécuté par la JVM.

18
Compilation et Execution

Un compilateur Java, par exemple l’outil javac (Java Compiler) fourni avec le JDK
est utilisé pour compiler chaque fichier en fichier de classe possédant l’extension
.class.

Cette compilation génère pour chaque fichier source un ou plusieurs fichiers


.class qui contiennent du byte-code.

19
Un premier exemple

public class MaClasse{


public static void main (String args[]){
System.out.println("Bonjour le monde ");
}
}

20
Compilation et Execution

Un code source ne peut être exécuté directement par un ordinateur.


Il faut traduire ce code source dans un langage que l’ordinateur peut comprendre.
Un compilateur est un programme qui effectue cette traduction(compilation).

21
Compilation et Execution

En java, le code source n’est pas traduit directement dans le langage de


l’ordinateur. Il est d’abord traduit dans un langage appelé « bytecode », langage
d’une machine virtuelle ( JVM; Java Virtual Machine) définie par Oracle.
Ce langage est indépendant de l’ordinateur qui va exécuter le programme.

22
Compilation et Execution

Un compilateur Java, par exemple l’outil javac (Java Compiler) fourni avec le JDK
est utilisé pour compiler chaque fichier en fichier de classe possédant l’extension
.class.

Cette compilation génère pour chaque fichier source un ou plusieurs fichiers


.class qui contiennent du byte-code.

23
Compilation et Execution

Oracle fournit le programme java qui simule une JVM.


Java exécute le bytecode de la méthode main de la classe MaClasse

24
Compilation et Execution

Compilation (génération du byte-code MaClasse.class)


javac MaClasse.java
Exécution ( du byte-code)
java MaClasse
Le compilateur génère autant de fichier .class que de classes et interfaces
définies dans le fichier source.

25
Compilation et Execution
▰public class MaClasse {
public static void main(String[] args) {
System.out.println("Bonjour le monde");
}
}
class MonAutreClasse {
public static void afficher(String message) {
System.out.println(message);
}
26
}
Compilation et Execution

Question: Après compilation du source MaClasse.java combien de fichier .class


allons nous obtenir ?

27
Compilation et Execution

Réponse: MaClasse.class et MonAutreClasse.class

28
Les Packages

Les fichiers sources peuvent être organisés en packages. Les packages


définissent une hiérarchie de noms, chaque nom étant séparé par le caractère
point. Le nom d'un package est lié à une arborescence de sous répertoire
correspondant à ce nom.
Le nom d’un package doit respecter les conventions suivantes:
 Tout en minuscule.

 Utiliser seulement [a-z], [0-9] et le point '.': Ne pas utiliser de tiret '-', d'underscore '_', d'espace, ou d'autres caractères
($, *, accents, ...).

 La convention de Sun indique que tout package doit avoir comme root un des packages suivant: com, edu, gov, mil, net,
org ou les deux lettres identifiants un pays (ISO Standard 3166, 1981).

29
Les Packages

Le package est précisé dans le fichier source grâce à l'instruction package.

Le fichier doit donc dans ce cas être stocké dans une arborescence de répertoires qui correspond au nom du package.

Exemple:

package sn.ucad.lacgaa.l3tdsi;

public class MaClasseTest {

public static void main(String t[]) {

System.out.println("Bonjour");

30
4
Règles de base?

31
Règles de base

▰ Java est sensible à la casse.


▰ Les blocs de code sont encadrés par des accolades. Chaque instruction se
termine par un caractère ';' (point virgule).
▰ Une instruction peut tenir sur plusieurs lignes.

L'indentation est ignorée du compilateur mais elle permet une meilleure


compréhension du code par le programmeur.

32
Commentaires

Les commentaires facilitent la lecture et la compréhension du source. Ils ne sont


pas pris en compte par le compilateur et ne sont donc pas inclus dans le byte-
code. Il existe deux types de commentaires en lignes.

//Commentaire sur une ligne


/*Ceci est un commentaire
Sur deux lignes*/

33
Commentaires

Un bon commentaire permet d’utiliser une fonction sans même consulter le code.
▰Il indique à l’aide d’une phrase le rôle de la fonction en faisant intervenir le nom
de tous les paramètres.
▰Il précise le rôle de chaque paramètre
▰Il indique la signification du résultat retourné
▰Commenter si nécessaire des fragments de codes difficiles.
▰Eviter les commentaires inutiles du genre x = 3 ;// x prend la valeur 3

34
Les variables, les identificateurs et types primitifs

Les variables informatiques = zone de la mémoire.


 Nom: identifiant unique (dans l’espace de nommage)
 Type: détermine le domaine des valeurs possibles
 Valeur: peut varier à chaque pas de l’exécution du programme

35
Les variables, les identificateurs et types primitifs

Chaque objet, classe, programme ou variable est associé à un nom :


l'identificateur qui peut se composer de tous les caractères alphanumériques et
des caractères _ et $. Le premier caractère doit être une lettre, le caractère de
soulignement ou le signe dollar.
▰Rappel : Java est sensible à la casse.

36
Les variables et types primitifs

Java dispose d’un certain nombre de types de base dits primitifs, permettant de
manipuler des entiers, des flottants, des caractères et des booléens.
Ce sont les seuls types du langage qui ne sont pas des classes. Les types
primitifs(au nombre de 8) se répartissent en quatre grandes catégories selon la
nature des informations qu’ils permettent de manipuler:
▰Les entiers
▰Les flottants
▰Les caractères
▰Les booléens
37
Les variables et types primitifs

▰Les types entiers: Ils servent à représenter les nombres entiers relatifs, ils sont
au nombre de 4:

 byte (8 bits) : [-128; 127]


 short (16 bits) : [−2^16 ; 2^16 - 1]
 int (32 bits) : [−2^32 ; 2^32 - 1]
 long (64 bits): [−2^64 ; 2^64 - 1]

38
Les variables et types primitifs

▰Les types flottants: Ils permettent de représenter, de manière approchée, une


partie des nombres réels. Il existe deux types de flottants en Java:
float (32 bits)
double (64 bits)
▰Exemple :
float pi = 3.141f; //suffixe f obligatoire
double valeur = 3d; // suffixe d non obligatoire

39
Les variables et types primitifs

Les caractères:
Une variable de type caractère se déclare:
char c1, c2 ; // c1 et c2 sont des variables de types
//caractères
Booléen: Ce type sert à représenter une valeur logique du type vrai/faux. Il ne peut
donc prendre que deux valeurs (true ou false).
En Java, un booléen se déclare:
boolean ok = false ;
40
Initialisation des variables

Exemple:
▰int nombre ; // Déclaration de la variable nombre
nombre = 100 ; // initialisation de la variable
▰int nombre1 = 150 ; // déclaration et initialisation //de la variable nombre1
Remarque:
▰Une variable manipulée dans une méthode (variable locale) ou un bloc devra
toujours être initialisée avant toute utilisation.
▰La déclaration d’une variable réserve de la mémoire pour stocker sa valeur.
41
Initialisation des variables

En Java, toute variable appartenant à un objet (définie comme étant un attribut de


l’objet) est initialisée avec une valeur par défaut en accord avec son type au
moment de sa création.
Type Valeur par défaut

boolean false

byte,short,int,long 0

float,double 0,0

char \u0000

Objet null

42
Les opérateurs arithmétiques usuels

public class Operateurs {


public static void main (String []args ){
int a = 89, b = 4;
System.out.println("a + b = "+(a + b ));
System.out.println("a - b = "+(a – b ));
System.out.println("a * b = "+(a * b ));
System.out.println("a / b = "+(a / b ));
}
} 43
Opérateurs de comparaison

44

You might also like