Title: Quelques rappels 2
1Quelques rappels (2)
- JAVA
- 2ème année EURINSA
2Redéfinition vs surcharge
- Les classes récupèrent par héritage le
comportement et létat initial de leurs ancêtres
(super-classes) - Elles peuvent
- Redéfinir des méthodes (méthodes homonymes)
- Le compilateur choisit la bonne à partir du type
effectif de linstance - Surcharger des méthodes (méthodes similaires)
- Le compilateur choisit la bonne à partir de la
signature - Ex surcharge des constructeurs (plusieurs
const. de la même classe) - Les compléter (proposer de nouvelles méthodes)
3Redéfinition vs surcharge (2)
Class Carre extends Rectangle private int
c public void zoom(int d) super.zoom(d,
d) public int aire() return c c
- Class Rectangle
- private int h, l
- public void zoom(int dH, int dL)
- h dH
- l dL
-
- public int aire()
- return h l
-
-
-
REDEFINITION
SURCHARGE
En supposant les constructeurs des 2 classes
définis
Rectangle r1 new Rectangle(5,10) Rectangle r2
new Carre(4) Carre c3 new Carre(6) Carre c4
new Rectangle(5,10)
4Les conteneurs (containers)
- Peuvent contenir des éléments, des Canvas ou
dautres containers - Émettent des événements en cas de réorganisation
- Ouverture, fermeture, redimensionnement,
- Possèdent un gestionnaire de disposition(layout
manager)
5Les conteneurs (containers)
Avec SWING JPanel JScrollPane
6Les gestionnaires de disposition
Flow Layout (de gauche à droite)
Border Layout
Grid Layout
7Les éléments dinterface
- Peuvent recevoir des événements extérieurs que
lon doit intercepter et gérer
Avec SWING JButton, JLabel, JTextField,
JTextArea,
8Les événements
API de la classe WindowAdapter
- De bas niveau
- WindowEvent ouverture, fermeture, réduction
- De haut niveau
- ActionEvent click, double click, menu, entrée
sur 1 zone de texte - ItemEvent sélection d1 liste, boîte
déroulante, - TextEvent changement du texte dans 1 zone de
texte
frame réactif à lévénement "e"
Code de la classe Application1
9Les "écouteurs"
Code de la classe Frame1
- 1 hiérarchie dinterfaces ou de classes qui
doivent - Senregistrer auprès du composant (pour quil
devienne réactif) - Définir les méthodes associées (qui reçoivent en
paramètre lévénement) - On utilise souvent une classe anonyme
- Création d1 instance de classe sans nom
(utilisée 1 seule fois) - Cette classe redéfinit généralement des méthodes
de la classe de base
Code de la classe Frame1
10Créer sa classe "écouteur"
Code du fichier Frame1.java
API de linterface DocumentListener
11Classe principale de lapplication graphique
CONSTRUCTEUR
Mécanisme de Gestion des Exceptions
Exemple du résultat produit
12Fenêtreprincipale
Déclarations et constructions des containers et
des éléments dinterface
CONSTRUCTEUR
Appel dune méthode des objets jButton1
et jButton2
13Organisation de JDev
14Compilation et exécution
Run exécution (et compilation)
Compilation
Debug
Run exécution
15Méthode statique
- Déclarer une méthode "static"
- Méthode de classe
- Commune à tous les objets
- Interdit de faire appel à this
- dans le corps de cette méthode
API de la classe Integer
16Méthode statique (2)
- Déclarer une méthode "static"
- Méthode de classe
- Commune à tous les objets
- Interdit de faire appel à this
- dans le corps de cette méthode
Public class Cercle private int
rayon public Cercle (int rayon)
this.rayonrayon public Cercle plusGrand
(Cercle c) return rayon gt c.rayon ? this
c public static Cercle plusGrand (Cercle
c1, Cercle c2) return c1.rayon
gt c2.rayon ? c1 c2
Code du main
Cercle x1 new Cercle(5) Cercle x2 new
Cercle(10) Cercle x3 x1.plusGrand(x2)
//x3 x2 Cercle x4 x2.plusGrand(x1)
//x4 x2 Cercle x5 Cercle.plusGrand(x1
, x2) //x5 x2