Академический Документы
Профессиональный Документы
Культура Документы
Plan du formation(1/3)
JOUR 1 1. Introduction: A propos de Java
Le langage de programmation Java La plateforme Java
Plan du formation(2/3)
JOUR 2 4. Programmation oriente objets en Java
Concepts de lOO Reprsentations UML Les variables: Dclaration et porte Les mthodes: Dclaration, interface et surcharge La cration dobjets: Constructeurs et mot-cl new Lencapsulation: public , private et protected Utilisation de lhritage: this et super Polymorphisme
Plan du formation(3/3)
JOUR 3 5. Interfaces graphiques et Gestion des vnements
La philosophie Model-View-Control Interfaces graphiques: lAWT
Objectifs de la formation
y Dcrire les lments-cl de la plate-forme Java y Compiler et excuter une application Java y Dcrire la syntaxe du langage y Comprendre le paradigme Orient Objet y Utiliser Java pour mettre en uvre le paradigme OO y Dvelopper une interface graphique y Dvelopper un programme utilisant 1 interface graphique y Comprendre la gestion des vnements y Comprendre un diagramme de classes (UML) y Comprendre les bases du multithreading
Rfrences Web
y The Java Tutorial from Sun http://java.sun.com/docs/books/tutorial/ y The Java Developer Connection http://developer.java.sun.com/developer/index.html y Gamelan http://www.gamelan.com y Java Applet Rating Services http://www.jars.com
JOUR 1
I. Introduction et historique
Survol du chapitre
y Quest-ce que Java ? y Java comme langage de programmation y La plateforme Java
La Java Virtual Machine Les interfaces de programmation dapplication (API)
Java Compiler
Compiler
MyProgram.o
010110
Compiler
MyProgram.class
Chaque fois que le programme est excut
Interpreter
010110
JOUR 1
II. Premire application en Java
EX 2.1
La premire ligne du programme doit tre la dclaration de la classe Tout programme doit contenir une mthode main qui porte la signature ci-contre crire lcran Hello the World Fermer les accolades
y Compiler le programme : javac HelloWorld.java y Le compilateur gnre le bytecode dans le fichier : HelloWorld.class y Excuter lapplication : java HelloWorld y Hello the World saffiche lcran
Introduction la POO INFO 114
JOUR 1
III. Syntaxe du langage Java
Survol du chapitre
y Conventions dcriture y Commentaires dans le code source y Identificateurs y Mots-cl y Types primitifs et types de rfrences y La classe String y Arithmtique et oprateurs y Instructions de contrle
If, then, else For While Do While Break et Continue
Conventions dcriture
Classes class BankAccount class RacingBike Interfaces interface Account Mthodes deposit() getName() Packages package coursTechnofutur3.bank ; Variables int accountNumber Constantes MAXIMUM_SIZE
Les textes entre /** et */ sont utiliss pour crer des commentaires que lexcutable JAVADOC pourra traiter afin de produire une documentation (cf. documentation de lAPI Java)
/** Commentaires destins la documentation */
Identificateurs
y Un identificateur (identifier) permet de dsigner une classe, une mthode, une variable y On ne peut utiliser ce que lon veut :
Interdiction dutiliser les mots-cls Commencent par :
Une lettre Un $ Un _ (underscore)
Mots-cl
abstract boolean break byte case catch char class const * continue default do double else extends final finally float for goto * if implements import instanceof int interface long native new package private protected public return short static strictfp ** super switch synchronized this throw throws transient try void volatile while
Rfrence:
Adresse
Integral byte 8bits -128 to 127 short 16bits -32768 to 32767 int 32bits -2^31 to 2^31-1 long 64 bits -2^63 to 2^63-1 Textual char 16bits 0 to 65535
y Dclaration et initialisation :
int short long byte double float char boolean int x=12; short x= 32; (short x=33000; // Hors limite) long x= 200L; // Nombre accol un L byte x=012; // Nombre commenant avec un 0 double x=23.2323; float x= 23.233F; // Nombre accol un F char c=a; char c=\u0061; char c=(char)97; boolean b=true;
a=8
b=8
Rfrence:
Adresse
La classe String
y String nest pas un type primitif, cest une classe y Dclaration de deux String: String s1, s2; y Initialisation : s1 = "Hello"; s2 = "le monde"; y Dclaration et initialisation : String s3 = "Hello"; y Concatnation : String s4 = s1 + " " + s2;
StringBuffer/StringBuilder
yLes Points communes
La classe StringBuilder/StringBuffer peut contenir des chanes qui peuvent tre modifies. Il s'agit d'une structure de donnes dynamique: la taille de la chane est augmente automatiquement La taille initiale peut tre prcise dans le constructeur (16 par dfaut). mthodes insert, append, delete
yDiffrence
StringBuilder nest pas Thred-safe or que StringBuilder est une classe threadsafe
Arithmtique et oprateurs
Arithmtique lmentaire
y Quelle est la valeur de : 5+3*4+(12/4+1) y Rgles de prcdences sur les oprateurs:
Niveau 1 2 Symbole Signification () * / % 3 + Parenthse Produit Division Modulo Addition ou concatnation Soustraction
Arithmtique et oprateurs
Oprateurs de comparaison
y Pour comparer deux valeurs:
Oprateur > >= < <= == != Exemple v1 > v2 v1 >= v2 v1 < v2 v1 <= v2 v1 == v2 v1 != v2 Renvoie TRUE si v1 plus grand que v2 Plus grand ou gal Plus petit que Plus petit ou gal gal diffrent
y Oprateurs logiques:
Oprateur && & || | ! != Usage expr1 && expr2 expr1 & expr2 expr1 || expr2 expr1 | expr2 ! expr1 expr1 != expr2 Renvoie TRUE si expr1 et expr2 sont vraies Idem mais value toujours les 2 expressions Expr1 ou expr2, ou les deux sont vraies idem mais value toujours les 2 expressions expr1 est fausse si expr1 est diffrent de expr2
Arithmtique et oprateurs
Oprateurs dassignation (daffectation)
y Loprateur de base est = y Il existe des oprateurs dassignation qui ralisent la fois
une opration arithmtique, logique, ou bit bit et lassignation proprement dite
Oprateur += -= *= /= %= Exemple expr1 += expr2 expr1 -= expr2 expr1 *= expr2 expr1 /= expr2 expr1 %= expr2 quivalent expr1 = expr1 + expr2 expr1 = expr1 expr2 expr1 = expr1 * expr2 expr1 = expr1 / expr2 expr1 = expr1 % expr2
y Un bloc
Est une suite dinstructions entre accolades { et } Dlimite la porte des variables qui y sont dclares
y Une dclaration
Constitue la signature dun lment (classe, variable ou mthode) Annonce la dfinition de cet lment Est (normalement) toujours suivie dun bloc dinstructions
break outer; // if i=7, you jump outside the loop and continue ,+j);
Exercices
y Ding Ding Bottle
Ecrire un programme qui compte de 1 100 Affiche ces nombres lcran Remplace les multiples de 5 par Bottle Remplace les multiples de 7 par Ding Ding Remplace les multiples de 5 et 7 par Ding Ding Bottle
EX 3.1
y Calcul de factorielle
Ecrire un programme qui calcule la factorielle dun nombre Essayer doptimiser le code en gardant en mmoire les factorielles dj calcules et en utilisant la mthode rcursive Sassurer que la factorielle calcule ne dpasse pas 20 (limite de capacit des entiers de type LONG)
EX 3.2
Autre exemple
Exemple de test
1/10
Exemple de test
2/10
Exemple de test
3/10
Exemple de test
4/10
Exemple de test
5/10
Exemple de test
6/10
Exemple de test
7/10
Exemple de test
8/10
Exemple de test
9/10
Exemple de test
10/10
JOUR 2
IV. Premiers concepts orients objets
Gnralits
y Java est un langage compltement orient objet
Contrairement au C++, un programme Java n'est constitu que de classes pas de fonctions ou de procdures isoles parfois on invente artificiellement une classe :
Notion de classe
y La notion de classe est un enrichissement de la notion usuelle de TYPE
TYPE : utilis en programmation CLASSE
y Regroupe un ensemble de donnes (= champs reprsentant ltat de lobjet voluant au cours de lexcution
ex. la position dune fentre sur un cran, si elle est active ou pas)
y et de comportements
Ex. safficher, sagrandir, se dtruire
Notion dobjet
y Un objet est une instance de classe y La notion dobjet est plus riche que la simple valeur dun type
VALEUR : int n=12; // 12 est une valeur
pas un objet identifiable (rfrenable)
Le type class
y Permet de dfinir une classe au sens de la POO
modifAcces class nomClasse [..]{ modifAcces type attribut1; modifAcces type attribut2; ... modifAcces typeRetourne methode1(type param){} modifAcces typeRetourne methode2(type param){} }
...
y Le ; la fin de la dfinition est facultatif en Java y Toutes les classes drivent de la mme mta-classe appele Object y Toutes les instances seront cres dynamiquement
EXEMPLE
public class Client { // variables d'instance String nomClient; String codePostalClient; float soldeClient; // mthodes d'instance float getSolde (String cli) { } }
Dclaration
Variable d'instance
Mthode d'instance
Client String nomClient int codePostalClient float soldeClient float getSolde (String)
y Trois modificateurs de classe : public classA { } public abstract classB { } final classC { }
abstract final
public
private
protected
final : classe finale de la branche dhritage, elle ne peut plus tre drive par dfaut, si on ne prcise pas de niveau daccs
une classe n'est visible que pour les classes du package
Exemple
Dclaration de la classe Variables dinstance ou champs Dfinition du constructeur Mthodes daccs
import java.lang.*; public class BankAccount {
Class Body
private String name ; private int solde ; private int interest ; public BankAccount(String n,int s,int i) { name=n ; solde=s; interest=i; } public String getName() { return name; } public void setName (String n) {name= n;} public void deposit (int amount) { solde += amount ; } public void withdrawal (int amount ){ solde-=amount ; }
y Par consquent :
toutes les mthodes (prives et publiques) d'un objet ont accs bien sr aux membres de cet objet MAIS aussi aux membres -mme privs- d'un autre objet de la mme classe
Si laccs la classe le permet
nomObjet = null;
film1
null
film1
OU
Film film1 = new Film();
film1
film1
y Lexpditeur du message na donc jamais besoin de connatre limplmentation ou corps de la mthode y On a donc:
Dclaration = Signature = Message de la mthode Bloc dinstruction = Corps = Implmentation de la mthode
Lencapsulation
Accs aux membres dune classe
y En java, les modificateurs daccs sont utiliss pour protger laccessibilit des variables et des mthodes. y Les accs sont contrls en respectant le tableau suivant:
Mot-cl private protected public [aucun] Une classe a toujours accs ses membres. classe Y Y Y Y Y Y Y Y Y Y Seul les membres publics sont visibles depuis le monde extrieur. package sous classe world
Les classes dun mme package protgent uniquement leurs membres privs ( lintrieur du package)
Une classe fille (ou drive) na accs quaux membres publics et protected de la classe mre.
Exercices
y Cration dun compte en banque
Quelles sont les variables dtats accessibles et non accessibles? Quelles sont les fonctionnalits offertes lutilisateur? Quelles sont les fonctionnalits caches lutilisateur? EX 4.1
new
BankAccount ba1, ba2; ba1 = new BankAccount("Bersini", 10.000, 7); ba2 = new BankAccount("Bersini");
Exercices
EX 4.1
Compte en banque
Compte courant Compte pargne
parent
Exercices
y Cration dune hirarchie de compte
Quelles sont les variables dtats accessibles et non accessibles? Quelles sont les fonctionnalits offertes lutilisateur? Quelles sont les fonctionnalits caches lutilisateur? Quelle hirarchie de classes pourrait-on proposer? EX 4.1
Utilisation de lhritage
Redfinition de mthodes
y La redfinition nest pas obligatoire !! Mais elle permet dadapter un comportement et de le spcifier pour la sous-classe.
class BankAccount { public void computeInterest(){ solde+=300; }} class NormalAccount extends BankAccount { public void computeInterest(){ super.computeInterest();//call the overriden method solde*=1.07; }} //annual increase //annual gift
y Obligation de redfinir les mthodes dclares comme abstraites (abstract) y Interdiction de redfinir les mthode dclares comme finales (final)
Polymorphisme (1/2)
Dfinition
y Concept bas sur la notion de redfinition de mthodes y Consiste permettre une classe de sadresser une autre en sollicitant un service gnrique qui sappliquera diffremment au niveau de chaque sous-classe du destinataire du message y En dautres termes, permet de changer le comportement dune classe de base sans la modifier Deux objets peuvent ragir diffremment au mme appel de mthode y Uniquement possible entre classes relies par un lien dhritage et suppose un cast vers le haut des objets des classes enfants
class Bank{ BankAccount[] theAccounts = new BankAccount[10]; public static void main(String[] args){ theAccounts[0] = new NormalAccount("Joe",10000); theAccounts[0].computeInterest(); }} Introduction la POO INFO 114
Polymorphisme (2/2)
Utilisation du polymorphisme sur des collections htrognes
BankAccount[] ba=new BankAccount[5]; ba[0] = new NormalAccount("Joe",10000); ba[1] = new NormalAccount("John",11000); ba[2] = new SpecialAccount("Jef",12000); ba[3] = new SpecialAccount("Jack",13000); ba[4] = new SpecialAccount("Jim",14000); for(int i=0;i<ba.length();i++) { ba[i].computeInterest(); }
Introduction la POO INFO 114
Exercices
y La personne possde deux types de Comptes
EX 4.2
Exercice
BankAccount
- String owner - String number - int solde - double interst deposit(int):int withdraw(int):int addALoan(Loan l):void payYourLoans():void calculInterest():int isReimbursed(int):void
EX 5.7
MyProgram
Bank
Person
- String nom - . Person(String n,) addCompte(Compte c):void
NormalAccount
calculInterest():int
SparingAccount
calculInterest():int
Comment?
Design View
Implementation View
Use cases
Components
Active classes
Nodes
Cest tout cela que le diagramme de classes reprsente Lencapsulation est reprsente par:
- (private), + (public), # (protected)
Nom Classe
Attributs Mthodes()
y Les classes dfinissent les comportements possibles de leurs objets y Les classes sont organises en une structure arborescente racine unique : la hirarchie dhritage y Tout le code des programmes de trouve entirement et exclusivement dans le corps des classes y A lexception toutefois de deux instructions:
package import dfinit lensemble auquel la classe appartient permet lutilisation de classes extrieures au package
JOUR 3
V. Dveloppement dune animation graphique (AWT Swing)
y Java 2: SWING
Nouveau package Composants graphiques lgers , en pur Java Tous les composants sont dtachs de lOS Look & Feel indpendant de lOS
y Les
Containers
Sont destins accueillir des composants Grent laffichage des composants Ex: Frame, Panel, Window
y Les
Components
Constituent diffrents lments de laffichage (boutons, barres de menus, etc.) Ex: Button, Canvas, Label, Scrollbar, Checkbox
y Les
LayoutManagers
Container 1
LayoutManager
Panel
y La classe
Frame
Composant du plus haut niveau La fentre dune application est une instance de cette classe Le Frame contient les diffrents composants graphiques de lapplication Ne peut tre intgr dans un autre conteneur
y Les classes
Panel ,
Window ,
ScrollPane , etc.
y Types principaux:
BorderLayout: divise le conteneur en 5 zones FlowLayout: rajoute les composants au fur et mesure GridLayout: applique une grille au conteneur pour aligner les composants CardLayout: pour un conteneur qui contient plusieurs cartes GridBagLayout: grille de cellules lmentaires
y Rpartition
La largeur lemporte pour le Nord et le Sud La hauteur lemporte pour lEst et lOuest Le centre occupe tout ce qui reste
NORTH
WEST CENTER EAST
y Utilisation
add(unBouton, BorderLayout.NORTH) new BorderLayout(int, int)
Intervalles horizontal et vertical entre les lments
SOUTH
y Utilisation
new FlowLayout (int alignment)
alignment: LEFT, CENTER, RIGHT
Exercice
Une premire application graphique (1/2)
Crer une classe Fenetre hritant de Frame Construire la fentre dapplication en ajoutant:
Au Nord: un Label Au Centre: un Panel Contenant lui-mme trois Button A placer dans un vecteur Au Sud: un Button
EX 7.1a
JOUR 3
VI. Les vnements
Gestion dvnements
Mcanismes et structure (1/4)
y Une source dvnements
Gnre des objets vnements Les fait couter par un ensemble dcouteurs dvnements En gnral: un composant ou conteneur graphique
Gestion dvnements
Mcanismes et structure (2/4)
1. Un vnement se produit 2. La source dvnement dans laquelle il se produit gnre un objet de type vnement 3. La source transmet lvnement son (ses) couteur(s) 4. Lcouteur appelle la mthode correspondant au type dvnement et lui passe en argument lobjet vnement 5. La mthode en question spcifie les traitements raliser lorsquun vnement du type correspondant se produit 6. Dans ses traitements, la mthodes peut examiner les caractristiques de lvnement (position du curseur de la souris, code de la touche presse au clavier) et adapter son comportement en fonction de ces caractristiques
Gestion dvnements
Mcanismes et structure (3/4)
y Evnements
ActionEvent, AdjustmentEvent, ComponentEvent, ContainerEvent, FocusEvent, ItemEvent, KeyEvent, MouseEvent, TextEvent, WindowEvent
Gestion dvnements
Mcanismes et structure (4/4)
XXXListener Component 1 addXXXListener * J VM
XXXEvent Exemples : public void actionPerformed (ActionEvent e) public void windowClosing (WindowEvent e) Contrle public void mouseClicked (MouseEvent e)
XXXAdapter
contrle
MyXXXListener
OS Souris
Clavier
Introduction la POO INFO 114
Gestion dvnements
Mise en uvre
y Par implmentation de linterface
Usage
public class MaClasse implements ActionListener
Avantages et inconvnients
Meilleur sur le plan orient objet La classe peut hriter dune autre classe Consistance
Gestion dvnements
Mise en uvre Evnements de fentre
class MonFrame extends Frame implements WindowListener { public MonFrame() { addWindowListener(this); } public public public public public public public }
Introduction la POO INFO 114
Exercice
class MyGame extends Jframe implements ActionListener { JButton quit; public MyGame () { addActionListener(this); } public void actionPerformed(ActionEvent e) { if(e.getSource().equals(quit)) { System.exit(0); } } }
y Implmenter linterface
quelle provoque la fermeture de la fentre et la sortie de lapplication lorsque lutilisateur clique sur la croix de fermeture
y LAireDeJeu en mme temps quelle se dessine peut dessiner dautres objets en utilisant lobjet Graphic
Faite apparatre un rond, un carre, un palmier
Graphisme 2D
Fonctionnement
y Tout ce qui est ncessaire aux graphismes en 2D est fourni par la classe Graphics y Chaque composant est toujours dot dun objet de ce type
Graphics g
g , toutes les
Graphisme 2D
Classe java.awt.Rectangle
y Classe fournie dans le package java.awt y Idale pour servir de squelette la plupart des objets graphiques
On peut inscrire toutes les formes dans un rectangle
y Attributs publics:
int x,y, width, height
y Mthodes publiques
contains(int x, int y): boolean
Renvoie true si les coordonnes (x,y) sont contenues dans le rectangle
Exercice
Balle
- Rectangle rect - Color color - int dx,dy //movement Balle (Rect r,Color c) Balle (int x,int y,int w,int h,Color c) Balle (int x,int y,int w,int h,Color c,int dx,int dy) dessineToi(Graphics g):void bougeToi():void changeCouleur(Color c):void
Gestion dvnements
Mise en uvre Clics de souris
class AireDeJeu extends JPanel implements MouseListener { public AireDeJeu () { addMouseListener(this); } public void mousePressed(MouseEvent e) {} public void mouseClicked(MouseEvent e) { } public void mouseReleased(MouseEvent e) {} public void mouseEntered(MouseEvent e) {} public void mouseExited{MouseEvent e) {} } //tous les tests sont possibles a ce niveau if(e.getX()>50 && e.getY()<100){...}
Gestion dvnements
Mise en uvre Dplacements de souris
class AireDeJeu extends JPanel implements MouseMotionListener { public AireDeJeu () { addMouseMotionListener(this); } public void mouseDragged(MouseEvent e) {} public void mouseMoved(MouseEvent e) { if(e.getX()>50 && e.getY()<100){...} } }
Gestion dvnements
Mise en uvre Clavier
class AireDeJeu extends JPanel implements KeyListener { public AireDeJeu () { addKeyListener(this); } public void keyPressed(KeyEvent e) {} public void keyTyped(KeyEvent e) { if(e.getKeyCode()==KeyEvent.VK_Q){System.exit(0)} } public void keyReleased(KeyEvent e) {} }
Exercice
Gestion des venements: lorsquon clique sur la Balle, elle change de couleur implementer un addMouseListener dans la classe AireDeJeu
JOUR 3
VII. Les collections
Introduction
Quest-ce quun collection?
y Collection
Un objet utilis afin de reprsenter un groupe dobjets
y Utilis pour:
Stocker, retrouver et manipuler des donnes Transmettre des donnes dune mthode une autre
y Reprsente des units de donnes formant un groupe logique ou naturel, par exemple:
Une main de poker (collection de cartes) Un dossier demails (collection de messages) Un rpertoire tlphonique (collection de correspondances NOM N)
Interfaces
Collection
Trois variantes principales: y Set
Duplicats interdits Sans ordre spcifique
y List
Duplicats permis Contient un ordre spcifique intrinsque Parfois appel Squences Permet 2 mthodes daccs particulires:
Positional Access: manipulation base sur lindex numrique des lments Search: recherche dun objet en particulier dans la liste et renvoi de son numro dindex (sa position dans la liste)
y SortedSet
Duplicats interdits Contient un ordre spcifique intrinsque Introduction la POO INFO 114
Implmentations
Lists (1/2)
y ArrayList (et Vector)
La plus couramment utilise Offre un accs positionnel vitesse constante Particulirement rapide
Implmentations
Lists (2/2)
Oprations spcifiques aux listes: y Obtenir la position dun objet
indexOf(Object o): int lastIndexOf(Object o): int
y Ajouter un objet:
add(Object o)
Exercice
LAireDeJeu possde une ArrayList de Balle Quand on clique sur lun des boutons, cela rajoute une balle dans larray list et donc a lcran
EX 8.1
Exercice
Faire dplacer les balles lcran appeler en boucle la mthode dplaceToi (ou bougeToi)
EX 8.1
JOUR 3
VIII. Multithreading
Survol du chapitre
y Introduction
Dfinition Raison dtre
y Cration de Thread
Par implmentation Par hritage
y Gestion de Thread
Mthodes de gestion Diagrammes dtat
Introduction la POO INFO 114
Introduction
Quest-ce quun Thread?
y Un ordinateur qui excute un programme :
Possde un CPU Stocke le programme excuter Possde une mmoire manipule par le programme Multitasking gr par lOS
Introduction
Pourquoi le multithreading?
y Un programme moderne est compos de
Une interface graphique Quelques composantes pouvant agir de manire autonome
y Sans multithreading
Les composantes ne pourraient agir que lorsque linterface est suspendue
Cration de Thread
Mise en uvre (1/3)
y Par implmentation de linterface
Usage
public void MaClasse implements Runnable
Avantages et inconvnients
Meilleur sur le plan orient objet La classe peut hriter dune autre classe Consistance
Cration de Thread
Mise en uvre (2/3)
public class MaFile implements Runnable { public void run(){ byte[] buffer=new byte[512]; int i=0; while(true){ if(i++%10==0)System.out.println(""+i+" est divisible par 10"); if (i>101) break; } } } public class LanceFile { public static void main(String[]arg){ Thread t=new Thread(new MaFile()); t.start(); Le constructeur de la classe Thread } attend un objet Runnable } en argument
Appeler cette mthode place le thread dans ltat runnable Eligible par le CPU
y Thread.yield() throws InterruptedException
La VM arrte la file active et la place dans un ensemble de files activables. (runnable state) La VM prend une file activable et la place dans ltat actif (running state)
y Thread.sleep(int millis) throws InterruptedException
Exercice:
y Faites dplacer les balles
Cette fois un Thread va sen occuper La classe AireDeJeu contient lance un Thread La classe AireDeJeu implements Runnable et donc possede une methode run Dans la mthode run, on dplace les balles en boule (pas oublier dappeler le repaint())
JOUR 3
IX. Hirarchie de classes
y La dclaration dune classe abstraite contenant une mthode abstraite ressemble ceci:
abstract class ObjectGraphique { abstract void dessineToi(Graphics g); }
ObjectGraphique
Rectangle rect; Color color;
Balle
Balle(Rectangle r,Color c) dessineToi(Graphics g):void bougeToi():void
PlayerBalle
PlayerBalle(Rectangle r,Color c) dessineToi(Graphics g):void bougeToi():void
Rectangle
int width,height,x,y Rectangle(int x,int y,int width,int height) draw(Graphics g):void intersects(Object o):boolean
Oval
int width,height,x,y Oval(int x,int y,int width,int height) draw(Graphics g):void intersects(Object o):boolean
Square
Square(int x,int y,int size)
JOUR 3
X. Gestion des exceptions
Exception
Error
RunTime Exception
IOException
AWTError
VirtualMachineError OutOfMemoryError
NullPointerException ArithmeticException
FileNotFoundException EOFException
ANNEXES
Survol du chapitre
y Java et ses concurrents
Java v/s CGI Java v/s Microsoft .Net Java v/s Perl
y Java
Code Java Bytecode Multiples OS
y .NET
Tout Code MS IL Windows
y Diffrences
Perl: pour administrateurs systmes, faiblement typ, intgration facile avec le shell Java: pour dveloppeurs dapplications, fortement typ, objets distribus avec les EJB Modle Client/Serveur:
Java peut tre utilis sur un client en tant quapplet et sur un serveur Perl peut tre utilis sur un serveur, mais pas en tant quapplet Introduction la POO INFO 114
y java
Interprteur java, lance des programmes
y javadoc
Gnrateur de documentation dAPI
y jar
Utilitaire darchivage et de compression
y javah
Gnrateur de fichiers C/C++ .h
Introduction la POO INFO 114
compile le fichier mentionn, qui doit se trouver dans le package par dfaut
javac be\newco\*.java d c:\classes compile tout le package be.newco et gnre du code compil dans c:\classes, qui
doit exister
y Java
Lance un programme principal Exemples:
java bankStream.MyProgram
Lance le programme spcifi par la mthode public static void main(String[] args) dans la classe MyProgram qui se trouve dans le package bankStream.
Possibilit de spcifier un classpath: un chemin de recherche o java est cens de trouver ses classes
Introduction la POO INFO 114