Académique Documents
Professionnel Documents
Culture Documents
Java 1
Java 1
Prrequis
Vous devez tre un familier de la programmation:
Que un programme est un ensemble d'instructions, ce que signifie un sous-programme, une fonction, une macro-instruction, un ordre de contrle tel que if ainsi qu'une structure de boucle telle que while , etc.
Gnralits
Le Concept orient objet
matriel informatique sont passs de machines de la taille d'un hangar des ordinateurs portables lgers bass sur de minuscules microprocesseurs. Au cours des mmes annes, les dveloppeurs de logiciels sont passs de l'criture de programmes en assembleur l'criture de programmes encore plus grands en C et C++. On pourra parler de progrs (bien que cela soit discutable), mais il est clair que le monde du logiciel ne progresse pas aussi vite que celui du matriel. Qu'ont donc les dveloppeurs de matriel que les dveloppeurs de logiciels n'ont pas ?
4
en matriel lectronique devaient partir d'un tas de sable chaque fois qu'ils conoivent un nouveau dispositif, si leur premire tape devait toujours consister extraire le silicium pour fabriquer des circuits intgrs, ils ne progresseraient pas bien vite. Or, un concepteur de matriel construit toujours un systme partir de composants prpars, chacun charg d'une fonction particulire et fournissant un ensemble de services travers des interfaces dfinies. La tche des concepteurs de matriel est considrablement simplifie par le travail de leurs prdcesseurs.
5
meilleurs logiciels. Aujourd'hui encore, les dveloppeurs de logiciels en sont toujours partir d'une certaine forme de sable et suivre les mmes tapes que les centaines de programmeurs qui les ont prcds. Le rsultat est souvent excellent, mais il pourrait tre amlior. La cration de nouvelles applications partir de composants existants, dj tests, a toutes chances de produire un code plus fiable. De plus, elle peut se rvler nettement plus rapide et plus conomique, ce qui n'est pas moins important." Cest le but du nouveau concept de programmation: lorient objet
6
programmation objet consiste crer une reprsentation informatique des lments du monde rel auxquels on s'intresse, sans se proccuper de l'implmentation. Cette reprsentation est appele un objet .
du monde physique, comme une voiture, une personne ou encore un livre. Chaque objet est la concrtisation d'une structure abstraite (sa classe); la classe voiture, livre, personne
7
Le type de base est la forme gomtrique , et chaque forme a une taille, une couleur, une position, etc (caractristiques)... Chaque forme peut tre dessine, efface, dplace, peinte, etc.(comportement)..
la classe forme gomtrique
cercle de rayon 1, couleur rouge dont le centre est lorigine du repre. Un carr de largeur 1, couleur vert, centre est un le point (1,2), etc.
Des objet de type forme
8
une variable amliore : il stocke des donnes, mais on peut effectuer des requtes sur cet objet, lui demander de faire des oprations sur lui-mme. En thorie, on peut prendre n'importe quel composant conceptuel du problme qu'on essaye de rsoudre (un chien, un immeuble, un service administratif, etc...) et le reprsenter en tant qu'objet dans le programme.
les uns aux autres quoi faire en s'envoyant des messages. Pour qu'un objet effectue une requte, on envoie un message cet objet. Plus concrtement, on peut penser un message comme un appel de fonction appartenant un objet particulier.
10
compos d'autres objets. Dit d'une autre manire, on cre un nouveau type d'objet en crant un paquetage contenant des objets dj existants. Ainsi, la complexit d'un programme est cache par la simplicit des objets mis en oeuvre.
11
POO, chaque objet est une instance d'une classe, o classe est synonyme de type (Forme gomtrique). La plus importante caractristique distinctive d'une classe est : Quels messages peut-on lui envoyer ? (les mthodefonctions ou procdure- comme dans le jargon de la programmation).
12
recevoir le mme message. C'est une caractristique lourde de signification, on la verra plusieurs reprises dans le cours. Les message sont des appels de mthodes.
13
Gnralits
Introduction au langage Java
14
Historique
Java fut dvelopp par Sun Microsystems en 1991.
dveloppement de systmes embarqus : des tlviseurs
interactifs, des grille-pains interactifs, des systmes d'clairage intelligents, etc. Java a le mrite d'tre un langage peu encombrant, performant et facile porter pour un large ventail d'appareils. HotJava, un navigateur Web capable de faire fonctionner des applets Java, fut dvelopp par Sun en 1994.
Java a alors attir lattention de la communaut du Web.
15
l'autorisant l'utiliser Java. Premire confrence Java0ne de mai 1996 ddi ce langage. Peu aprs dans la mme anne, la sortie de la premire version publique du langage.
t supprims
Pointeurs Surcharge des oprateurs
17
machine) lors de son excution Etre compact en moyenne, une instruction byte code = 1,8 octet, RISC = 4 octets Etre vrifiable
Le byte code est excut par un logiciel : la Machine virtuelle
18
SandBox . Il vrifie que la classe charge nen crase pas une autre en mmoire
Le SecurityManager contrle les oprations dentre/sortie
locales et sur le rseau (Applet uniquement) La portabilit de Java permet de dplacer dynamiquement du code Java sur un rseau
19
Introduction Java
Le JDK
Le JDK = Java Development Kit
Ancienne version : 1.0.2 Version actuelle : 1.2
Il contient :
Un ensemble de classes de base regroupes en packages
diteur volu (couleur, autocorrection, prsentation) Assistance syntaxique Gnrateur de code Dbugage Environnement dexcution
Loffre actuelle
Eclipse Jbuilder 4 (Inprise) Visual J++ (Microsoft)
21
Introduction Java
Entre-sortie
Fichier, Pipe, accs direct
Classes de base
date, Chane de caractres
JDBC
Accs aux bases de donnes relationnelles
22
Scurit
Cryptage, identification, signature
source dans un ou plusieurs fichiers ayant l'extension .java (ex: monProg.java) Le compilateur s'appelle JAVAC.EXE On compile un fichier en l'excutant dans une fentre ou console du systme d'exploitation. on tape la commande : javac monProg.java Des fichiers .class sont gnrs dans le mme rpertoire, exactement un fichier pour chacune des classes dfinies dans le fichier source.
23
monProg.java s'appelle MaClasse, l'un des fichiers gnrs par la compilation portera forcment le nom MaClasse.class
Onlance l'interprteur dans une fentre ou par la ligne de
commande : java MaClasse (sans l'extension .class). Pour tre excute, la classe MaClasse doit possder la mthode public static void main(String arg[ ]) Cette mthode est le point d'entre obligatoire dans toute application, et est automatiquement recherche
24
classes. En effet, aucune partie de code ne peut tre crite en dehors d'une classe !
cette hypothse, une seule doit contenir le qualificatif public dans sa dclaration. doit tre le mme que celui de la classe suivi de l'extension .java, sinon le compilateur signalera l'erreur. qui est dclare public donne son nom au fichier source .java
Si l'une des classes est dclare public, alors le nom du fichier source
En rsum
26
27
Quelques commentaires :
public class Bonjour est la signature de la classe public static void main (String args[]) est la signature de
la mthode main() public signifie que la classe Bonjour n'est pas protge, elle pourrait tre utilise par une classe d'un autre paquetage. void signifie que la mthode main() ne renvoie pas de valeur. String args[] est un paramtre de type tableau qui permet de rcuprer des arguments de lignes de commandes.
28
29
java AffichePersonne Toto 25 rose initialise automatiquement le tableau args[] avec les valeurs : args[0]="Toto" args[1]="25" args[2]= " rose" Son nombre d'lments est 3 et peut tre obtenu dans le progarmme par args.length.
30
La syntaxe
du langage Java
31
La syntaxe
mthodes
Package Classe Attributs Mthodes
32
La syntaxe
constituent la classe
33
valeur
class Test { int calculer (int taux, float delta) { < corps de la mthode > } }
34
Bloc dinstructions
Un bloc dinstructions est dlimit par des accolades Il contient un ensemble dinstructions Toute instruction est termine par un point virgule Un bloc dinstructions peut contenir dautres blocs
La syntaxe
dinstructions
{ int i = 0; if (i==0) System.out.println ("Valeur de i : " + i); }
35
Instructions possibles
Dclaration dune variable Appel de mthode Affectation Instruction de boucle (while, for) Instruction de test (if, switch)
La syntaxe
36
La syntaxe
lappelant de la mthode Il doit renvoyer une valeur du mme type que le type de retour de la mthode
class Test { int calculer (int taux, int delta) { return taux * delta; } }
37
La syntaxe
dclaration
{ int compteur; int indice = 0; Voiture golf; Voiture twingo = new Voiture(); }
38
La syntaxe
39
Point dentre
Une application possde un point dentre fourni par la
La syntaxe
41
Type caractre
char 16 Bits 1 bit non sign UNICODE2
Type boolen
42
boolean
La syntaxe
String
Ce nest pas un type de base Il se manipule comme un type de base Ce nest pas quivalent un tableaux de caractres
String s = "Hello World"
43
Laffectation
Loprateur = permet daffecter la valeur de
La syntaxe
44
La syntaxe
45
Oprateurs unaires
Sappliquent un seul oprande de type entier ou rel
-, --, +, ++
La syntaxe
int x, y; x = 3; y = -x ; y = ++x ; y = x-- ; //y vaut -3 //y vaut 4, x vaut 4 //y vaut 4, x vaut 3
Oprateurs de comparaison
Sappliquent sur des entiers, boolens, rels
La syntaxe
==, !=, <=, >, >= Ces oprateurs retournent une valeur du type boolean
47
Oprateurs logiques
Sappliquent au type boolean
! (not) , && (and) , || (or) &, |
La syntaxe
Retournent un type boolean & renvoie true si les deux expressions renvoient true && a le mme comportement mais nvalue pas le seconde
expression si la premire est false renvoie true si lune des deux expressions renvoie true || a le mme comportement mais nvalue pas le seconde expression si la premire est true
48
La syntaxe
49
La syntaxe
// appel de la mthode int obj.m(int i) obj.m(s); // short int (appel de mthode) // division dun entier et dun flottant : lentier i est // converti en flottant, puis la division flottante est calcule f = i / (double)j; // f vaut 0.3333
50
Test conditionnel
class Test { public static void main (String args[]) { int compteur = 0; boolean debut; if (compteur == 0) { debut = true; System.out.println("Dbut de la partie"); } else if (compteur ==10) System.out.println("Fin de la partie"); else System.out.println("Partie en cours"); } }
51
La syntaxe
Boucles while
class Test { public static void main (String args[]) { int i; do { System.out.println("Entrez un nombre < 10"); c= lireUnInt(); } while (c>10); } while (c>0) afficher (c--);
La syntaxe
52
Boucles for
class Test { public static void main (String args[]) { int i; for (i=0 ; i <=5 ; i++) { System.out.println (i); } for (j=0 ; j <=5 , j++) { System.out.println (i); } // i est accessible // j nest pas accessible
La syntaxe
}
53
Switch
class Test { public static void main (String args[]) { char c = (char)System.in.read(); switch(c) { case o : case O : System.out.println("Oui"); break; case n : case N : System.out.println("Non"); break; default : System.out.println("Mauvaise rponse"); break; }
La syntaxe
Commentaires (1/2)
Lutilisation de commentaires est fortement recommand /*ceci est un commentaire
La syntaxe
//ceci est un commentaire sur une ligne Commentaires destins au gnrateur de documentation
55
La syntaxe
tableaux
56
La syntaxe
57
La syntaxe
Initialisation dynamique :
int[] param = new int[10]; for (int i = 0; i < param.lenght ; i++) param[i]= i;
58
59
des valeurs Comportement : dfini par des mthodes (procdures) qui modifient des tats Identit : permet de distinguer un objet dun autre objet (nom)
60
Principe POO
Les objets communiquent entre eux par des messages Un objet peut recevoir un message qui dclenche
une mthode qui modifie son tat et / ou une mthode qui envoie un message un autre objet
Voiture
dmarre
Moteur
61
63
64
- 65 -
- 66 -
- 68 -
Aprs pour utiliser la mthode initialise de lobjet co1, on procde comme on le voit dans l'instruction : co1.initialise (1234,1000); On excute la mthode initialise crite dans la classe Compte.
- 70 -
Reprsentation mmoire
co1
co2
numero solde
numero solde
- 71 -
Reprsentation mmoire
co1 et co2 contiennent l'adresse des zones mmoires alloues par l'oprateur new pour stocker les informations relatives ces objets. co1 et co2 sont des rfrences. La rfrence dun objet est utilise pour accder aux donnes et fonctions membres de lobjet. Quand un objet nest plus utilis (aucune variable du programme ne contient une rfrence sur cet objet), il est automatiquement dtruit et la mmoire rcupre (garbage collector).
- 72 -
visible partout
} }}
74
75
Trans 19 42
76