Professional Documents
Culture Documents
Le langage
Java
1 - Présentation générale
4 - Les exceptions
5 - Collections
Présentation
Générale
d’exécution
La « richesse » de Java :
java.io Entrées-sorties
Etc …
Etc …
Les bases
du langage
Définition du package.
package cours_java ;
Règles
Conventions
ex : javac PremAppli.java
ex : java PremAppli
Valeur Taille
Type Contenu Valeur min. Valeur max.
par défaut (bits)
Déclarations
int i = 5;
double x = 2.5;
boolean b = true;
Conversions
Notations
hexadécimal
Tous les éléments du langage Java autre que les variables de type simple
(short, int, float, double …) sont manipulés par référence.
C’est le cas des tableaux et des chaînes de caractères
Clonage
ClasseXXX ref1, ref2 ;
ref2 référence un nouvel
ref1 = new ClasseXXX ( ) ; objet, identique à celui
référencé par ref1
ref2 = ref1.clone ( ) ;
Test simplement le fait que
ref1 et ref2 référencent le
if (ref1 == ref2) … même objet
if ( ref1.equals (ref2) ) …
if ( chaine1.equals ("abc") ) …
Déclaration et affectation
int [ ] tableau ;
Constante ou
variable
tableau = new int [ 20 ] ;
int nb =12 ;
L’attribut « length »
0 1 2 n-1
length n
Remarques importantes
Tout accès hors des limites d’un tableau lève une exception
Généralités
Principales méthodes
char c = ch1.charAt (0) ;
int longueur = ch1.length() ;
bOk = ch1.equals ("abc") ;
sousCh = ch1.substring (premPos, dernPos + 1) ;
Exemple
String fileName = " Fic.txt " ;
int n = fileName.length ( ) ;
String ext = fileName.substring (n – 3 , n) ;
3 types de commentaires
// commentaire jusqu ’à la fin de la ligne
/* commentaires sur plusieurs lignes */
/** commentaires pris en compte par javadoc */
Un identificateur
Ne doit pas commencer par un chiffre
Ne doit pas être un mot réservé du langage
Test simple
if ( a == b ) {
// plusieurs instructions
}
else {
// plusieurs instructions
}
for ( ; ; ) {
// il faut en sortir !!!
}
Opérateurs Rôle
+ Addition
- Soustraction / Opposé
* Multiplication
/ Division
= Affectation
> Supérieur
< Inférieur
== Test d’égalité
! Négation logique
!= Différence
Opérateurs Rôle
% Modulo
&& « Et » logique
|| « Ou » logique
+= i += j équivaut à i = i + j
-= i -= j équivaut à i = i - j
*= i *= j équivaut à i = i * j
/= i /= j équivaut à i = i / j
() Conversion de type
La gestion des
objets
Définition
objectif commun
Déclaration
Intérêts
Visibilité
Définition
Entité décrivant une structure de données (variables) et des
méthodes opérant sur cette données
Déclaration et utilisation
Remarques importantes
Variable de classe
Définie par le mot-clé « static »
Partagées par toutes les instances d’une même classe
surface1 = c1.aire ( ) ;
System.out.println ("Nombre de cercles : " + Cercle.nbInstances ) ;
}
}
Accès depuis la classe et non l’objet
Constantes
Méthode de classe
public Cercle ( ) {
…
} Méthode de classe
Syntaxe
public class NomClasseFille extends NomClasseParent {
…
}
Remarques
La classe « Mère » de toute les classes Java est « Object »
Une classe déclarée avec le mot-clé « final » ne peut être
dérivée
La mot-clé « protected » permet d’affiner la visibilité des
variables et des méthodes des classes « parent »
MSIAG 2007-2008 UML & POO – Section 3 53
L’héritage
Exemple
equals
public class CercleGr extends Cercle {
Object private Color Couleur ;
public void setCouleur (Color c) { Couleur = c; }
hérite de public Color getCouleur ( ) { return Couleur ; }
x, y, r
Cercle aire() public void afficher ( ) {
afficher()
super.afficher ( ) ;
…
hérite de
}
couleur
setCouleur() }
CercleGr getCouleur()
afficher()
Appel du code de la
classe « Mère »
Utilisations
Cercle c = null ; x, y, r
aire()
CercleGr cg = null ; Cercle afficher()
double a ;
hérite de
cg = new CercleGr ( 23, 67, 234 ) ;
couleur
double p = cg.aire ( ) ; setCouleur()
CercleGr getCouleur()
afficher()
cg.setCouleur ( Color.red ) ;
cg.afficher ( ) ;
Principe
Un même message envoyé vers divers objets peut déclencher
des actions (méthodes) pouvant prendre des formes
différentes
Le choix de la méthode à déclencher est effectué au moment
de l’exécution. On parle de liaison dynamique
Exemple
Objet Rectangle
Chaque objet
va exécuter
Objet Objet Cercle
sa méthode
afficher()
Objet Ligne
Appel à
afficher()
Classe1
La définition initiale est
Afficher remplacée par celle de la
méthode polymorphe
Définition de la
méthode initiale
Classe2
Afficher
héritage
Objet Message
Cercle c = null ;
x, y, r
aire()
CercleGr cg = null ;
Cercle afficher()
cg = new CercleGr ( 23, 67, 234 ) ;
hérite de
couleur
cg.setCouleur ( Color.red ) ;
CercleGr setCouleur() cg.afficher ( ) ;
getCouleur()
afficher()
c = cg ; // c référence un cercle graphique
((CercleGr) c).setCouleur (Color.blue) ;
c.afficher ( ) ;
Appel de la méthode afficher()
définie au niveau de CercleGr
Définition
Déclaration
public abstract class ObjetGraphique
{
public Color couleur ;
public void abstract dessiner ( Graphics g ) ;
public void setCouleur ( Color c ) { couleur = c ; }
public Color getCouleur ( ) { return couleur ; }
}
Utilisation
public class CercleGraphique extends ObjetGraphique {
public void dessiner ( Graphics g ) {
g.drawOval ( x, y, r, r ) ;
}
}
Utilisation
Instanciation impossible
ObjetGraphique obj ; d’une classe abstraite !
obj = r ;
obj.dessiner ( g )
obj = c ;
obj.dessiner ( g )
Définition
Intérêts
Déclaration
Résumé
Modificateurs Visibilité
Une méthode ou un membre d’une classe sont visibles par les classes du
protected
même package et par les classe filles se trouvant hors du package
Une méthode ou un membre d’une classe sont visibles par cette seule
private
classe
Les exceptions
Définition
Intérêts
Contraintes
Complexité accrue
Bloc « finally »
Zone dans laquelle le code est exécuté quoiqu’il arrive
Remarques
Une exception levée au niveau N peut être traitée au niveau
N+1
La méthode dans laquelle se produit l’incident doit être
« habilitée » à propager les exceptions ( prédéfinies ou non )
Syntaxe
openFile propage les
Utiliser le mot-clé « throws » exceptions mais ne
les traite pas
« openFile » lève :
- FileNotFoundException « litFichier » propage MonException
mais traite FileNotFoundException
- MonException
try {
obj.openFile ( nomfic ) ;
}
catch ( FileNotFoundException fnfe ) {
System.out.println ( "Fichier "+nomfic+" non trouvé !" ) ;
}
}
Intérêts
java.lang.Throwable
irrécupérables récupérables
java.lang.Error java.lang.Exception
java.lang.NumberFormatException Programmées
Les Collections
Collection
Interface de base de toutes les collections
Une boucle foreach permet de parcourir ses éléments
List
Collection ordonnée et indexée : get(5) renvoie le 5ème
élément
Doublons possibles
Simple à utiliser
Remplace naturellement les tableaux
Interface List
stringList.add("Kevin"); Classe
implémentant
stringList.add("John"); l’interface List
System.out.println(firstString);
Set
Collection sans doublons
Map
Ensemble de (clé, valeur) - concept du dictionnaire
map.put("Kevin", structure2);