Académique Documents
Professionnel Documents
Culture Documents
- INTRODUCTION
- LES ÉLÉMENTS
TRADITIONNELS DE
JAVA
La programmation
orientée objet
2
L’approche objet :
Méthode de conception et de production de
logiciels qui vise à améliorer la qualité et la
productivité du logiciel
Elle se caractérise par une modélisation plus
naturelle du monde réel et par l'élaboration de
logiciels souples et réutilisables.
Elle consiste à reproduire des éléments du monde
réel par des données informatiques appelées objets.
Les langages orientés
objets
3
Langages à l’origine de la
programmation par objets:
LISP, SIMULA, ADA
Langages objets :
Purs : SMALLTALK, EIFFEL,JAVA
Hybrides : C++, Objective-C, O-O
Pascal
Historique de Java
4
But :
Faire un langage indépendant de la CPU
Réalisation :
Création du langage Oak par James Gosling
en 1991 chez Sun commercialisé depuis 1995
Depuis plusieurs éditions ont été créées…
Un langage
Langage de programmation orientée objet
Syntaxe proche du C et du C++
Orienté objet :
Java est un langage Objet dit
« pur »
Il possède les qualités de ces
langages orientés objet
Une meilleure modularité
Une maintenance aisée des
applications
Indépendant de la plate-
forme :
Puisque le code Java est compilé en
un ByteCode une application Java
n’est pas liée à une machine ni à un
système d’exploitation particulier.
Quelques
caractéristiques de Java
(suite1)
9
Simple :
Java est beaucoup plus simple que certains
langages utilisés actuellement (interdit la
manipulation de pointeurs, fournit une API
riche, syntaxe plus facile que C++)
Robuste :
Java est un langage fortement typé
Il interdit la manipulation des pointeurs
Sécurisé :
Différentes vérifications faites par le
compilateur et la JVM
Limitation des erreurs par la syntaxe du
langage lui même
Quelques
caractéristiques de Java
(suite2)
10
Multi-threads :
thread : entité d’exécution qui peut
s’exécuter en parallèle de manière
concurrente avec d’autres threads au sein
d’une même application.
Java a la possibilité de fabriquer et de lancer
plusieurs threads en même temps sans
qu’elles ne se bloquent. (ex : gestion de la
souris et d’une impression en parallèle)
Distribué :
Java supporte des mécanismes de
communication à distance au moyen de son
API réseau. (ex: deux applications Java
distantes peuvent s’échanger des
fonctionnalités)
Dynamique :
Les composants d’une application (« .class »)
sont chargés au lancement de l’application
Exécution
d’un programme Java
11
Fichier
source
ASCII(.java)
Compilateur
Fichier
compilé
ByteCode
(.class)
JVM
Programme
Java en
exécution
Application
12
Java Desktop
Application indépendante ou
« standalone » :
Elles’exécute sur une machine
isolée
Elle est formée d’un ensemble de
fichiers de ByteCode « .class » à
interpréter
Pour l’exécuter : une JVM + ses
fichiers « .class » + les fichiers
« .class » de l’API qu’elle utilise
Structure générale
d’une application Java
13
Un exemple simple :
public class Exemple1{
/* Déclaration des données globales dans la
classe */
// Définition des méthodes
public static void main (String [ ] args )
{
// Déclaration des données locales à la fonction
Environnements de développement
Sun JDK 1.1.x (Java Development Kit)
: englobe un compilateur, un
interpréteur, un applet viewer, etc…)
IDE (Integrated Development Environment) :
Visual Age, Visual J++, …
Java-mode emacs
Jbuilder
Eclipse
...
Navigateurs
Sun HotJava
Netscape
Internet Explorer
…
LES ÉLÉMENTS
TRADITIONNELS DE
JAVA
Structure lexicale
17
lignes */
/** Commentaire d’explication utilisée par
javadoc sur une ou plusieurs lignes*/
Un identificateur Java :
désigne tout objet que le programmeur souhaite
manipuler (ex: objet, variable)
commence par une lettre, un trait de
soulignement ‘_’, ou un signe dollar ‘$’, seuls
les caractères suivants peuvent être des chiffres
opère une distinction majuscules/minuscules
n’a pas de longueur maximale
Exemple s:
MaClasse, _Var, $FonctionDeRecherche1
3Var, -MaClasse, Fonction-Recherche
Mots-clés
19
Type Taille
byte 1 octet
short 2 octets
int 4 octets
long 6 octets
Si dans une expression les opérandes sont de
différents types, le résultat de l’opération est
converti vers le type ‘ le plus grand ’
Exemple :
int x =2;
long z, y=4 ;
z = x *y ; // x*y est de type long
Pour l’affectation la donnée à droite est
convertie dans le type de celle de gauche. Si
le type de la destination est plus faible
l’instruction est erronée.
Exemple :
float z = 14.33; // instruction illégale
Conversion de types (suite)
27
Conversion explicite :
Nom_Variable = (Type)
Expression;
Exemple :
float z ;
int x ;
z = (float) 14.33 ;
x = (int)z ; // x contient la valeur 14
La structure alternative
if-else
28
Syntaxe :
if (<expression booléenne>)
{ <instruction ou bloc >}
else
{ <instruction ou bloc>}
Remarques :
Le branchement en Java se fait toujours à
partir d’une expression booléenne (et non
d’une valeur numérique comme en C)
Le partie else est optionnelle (peut être
omise s’il n’y a pas d’actions à effectuer
lorsque la condition est fausse)
Les accolades { } sont obligatoires dès
qu’il y a plus d’une instruction dans le
bloc du if ou du else
La structure alternative
« switch »
29
Syntaxe :
switch (<expression>) {
case <valeur1>:
<bloc1>
break;
case <valeur2 >:
<bloc2>
break;
…
case <valeurn>:
<blocn>
break;
default :
<blocn+1> }
Remarques :
L’expression du « switch » doit être d’un type
compatible avec un entier int (byte, short,
char)
Les spécifications du « break; » sont
nécessaires pour gérer les ruptures de
séquences
La structure itérative
« while »
30
Syntaxe :
while (<expression_ booléenne>)
{
<instruction ou bloc>
}
Syntaxe :
do
{
<instruction ou bloc>
} while (<expression booléenne>);
Exemple :
int Som = 0, i = 1;
do
{ Som += i;
i++;
} while ( i <= 10) ;
La structure itérative
« for»
32
Syntaxe :
for (<initialisation>; <express_ booléenne>;
incrémentation >)
{
<instruction ou bloc>
}
Remarques:
Il est possible déclarer une ou plusieurs variables
dans la partie initialisation de la boucle for.
La visibilité de ces variables est alors limitée au
bloc d’instructions lié à la boucle.
Exemple :
int Som = 0;
for (int i = 1; i <= 10; i++) {
Som+= i;
}
Lecture des données par les
arguments du programme
33
Exemple:
class Somme {
public static void main (String [ ] args) {
int s=0;
System.out.println (″ Ce programme
effectue la somme de 10 éléments passés à
main ″);
for (int i=0; i< 10; i++)
{
S.o.p (″L’élément num+″i+1+″est
= ″ + args[i]);
s+= Integer.parseInt(args [i]);
}
S.o.p (″ La somme = ″ + s);
} //main
}// Somme
Les tableaux
37
Principe général :
En java le type tableau est assimilable
à une classe et un tableau est un objet
de cette classe
Une variable tableau ne représente pas
l’objet lui même mais son adresse
mémoire
Déclarer un tableau revient à réserver
de la place mémoire pour son adresse
Pour créer un tableau il faut lui allouer
de l’espace mémoire
Déclaration d’un tableau à une
dimension
38
Syntaxe :
<Type> <NomduTableau> [ ];
Ou
<Type> [ ] <NomduTableau>; // style plus standard
Exemples:
int tabNotes [ ]; // Un tableau d’entiers
char [ ] tabLettres; // Un tableau de caractères
short t1 [100] ; // instruction illégale
Explication :
int tabNotes [ ];
tabNotes ???????
39
Syntaxe:
<nomduTableau> = new <Type> [<Dimension>];
Exemple :
int [ ] tabNotes ;
tabNotes = new int [100];
ou
int [ ] tabNotes =new int [100];
41
42
Initialisation :
L’initialisation d’un tableau lors de sa déclaration
permet de le créer
Exemple :
int [ ][ ] matrice = {{2, 3},{1}};
int [ ][ ] matrice = new int [2][ ];
matrice [0] = new int [2];
matrice [0][0] = 2;
matrice [0][1] = 3;
matrice [1] = new int [1];
matrice [1][0] = 1;
Utilisation :
Les indices commencent à 0
Le nombre de tableaux éléments peut être obtenu en
utilisant la variable membre « length »
Exemple :
int [ ][ ] matrice = {{2, 3, 4},{1}};
matrice.length vaut 2
matrice[0].length vaut 3
matrice[1].length vaut 1