UE Outils et Méthodes Aide-mémoire Java
Transcription
UE Outils et Méthodes Aide-mémoire Java
U.E. Outils et Méthodes Aide-mémoire Java Franck Sajous - CLLE-ERSS Ce document est disponible à l'adresse : http://w3.erss.univ-tlse2.fr/membre/fsajous/SDL/SL02358X/3/ 1 Classes et objets : membres et méthodes 1.1 Dénition de classe Listing 1 Dénition de classe 1 2 3 4 5 6 package nom_paquet ; public c l a s s MaClasse { // définition de la classe } 1.2 Dénition des membres accès type nom [= valeur]; accès : public, private ou protected public aucune restriction d'accès en consultation ni en modication private accès en consultation et modication uniquement au sein de la classe protected accès en consultation et modication uniquement au sein de la classe et des classes dérivées type : type primitif (int, double, boolean, etc.) ou nom de classe nom : nom du membre, qui commence nécessairement par une lettre (par convention, en minuscule), puis est formé de lettres, chires et du caractère _ initialisation facultative (permet de donner une valeur initiale à un membre) Syntaxe : Listing 2 Dénition des membres 1 2 3 4 5 private private public public protected int int double String String nbEntier ; autreNombreEntier = 2 3 ; nombreReel ; maChaine ; monAutreChaine = "ma j o l i e c h a i n e " ; 6 7 private private Compteur monCompteur ; Compteur autreCompteur = new Compteur ( ) ; 1.3 Dénition de méthodes accès [static] type_retour nom_méthode ([liste paramètres]) accès : public, private ou protected, spécie si la méthode peut être invoquée uniquement depuis l'intérieur de la classe, depuis une autre classe ou depuis les classes dérivées static : précise s'il s'agit d'une méthode statique ou non type_retour : type de la valeur retournée par la méthode. Si la méthode ne retourne aucune valeur, on écrit void. liste paramètres (facultative) : liste des paramètres que l'on passe à la méthode en l'invoquant. Pour chaque paramètre, on précise un type et un nom. Les paramètres sont séparés par des virgules. Syntaxe : Listing 3 Dénition des méthodes 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 public int c a l c u l e A i r e ( int l o n g u e u r , int l a r g e u r ) { } return l o n g u e u r ∗ l a r g e u r ; public void a f f i c h e A i r e ( int l o n g u e u r , int l a r g e u r ) { } System . out . p r i n t l n ( S t r i n g . v a l u e O f ( l o n g u e u r ∗ l a r g e u r ) ) ; public Compteur creeObjetCompteur ( ) { } Compteur nouveauCompteur = new Compteur ( ) ; return nouveauCompteur ; 1.4 Point d'entrée : méthode principale Listing 4 Méthode main() 1 2 3 4 public s t a t i c void main ( S t r i n g a r g s [ ] ) { // corps de la méthode } 2 Types primitifs, chaînes de caractères 2.1 Entiers : int Type qui représente les nombres entiers : −n, . . . , −3, −2, −1, 0, 1, 2, 3, . . . , n 2 +, int nb = 3 - 2; nb = nb - 1; * int nbMult = nb * 3; / nb = 3 / 2; % nb = 11 % 3; ++, -nb++; nb--; *= nb *= 5; /= nb /= 5; == nb == 2 != nb != 2 <, > nb < 2 nb > 2 <=, >= nb <= 2 nb >= 2 addition, soustraction multiplication division entière nb vaut 1 modulo (reste de division entière) nb vaut 2 auto-incrément, auto-décrément incrémente nb (équivalent à nb = nb + 1;) décrémente nb (équivalent à nb = nb - 1;) multiplication équivalent à nb = nb * 5; division entière équivalent à nb = nb / 5; égalité true si nb vaut 2, false sinon diérence true si nb est diérent de 2, false sinon inférieur à, supérieur à true si nb est inférieur à 2, false sinon true si nb est supérieur à 2, false sinon inférieur ou égal à, supérieur ou égal à true si nb est inférieur ou égal à 2, false sinon true si nb est supérieur ou égal à 2, false sinon 2.2 Réels : double Type qui représente les nombres réels : −3.2, 5.0, 22/7, −3.333333 . . . , etc. +, -, * addition, soustraction et multiplication même syntaxe et même sémantique que pour les entiers / division réelle double nb = 3 / 2; nb vaut 1.5 *= multiplication nb *= 5; équivalent à nb = nb * 5; /= division réelle nb /= 5; équivalent à nb = nb / 5; Opérateurs de comparaison ==, !=, <, >, <=, >= : même syntaxe et même sémantique que pour les entiers. 2.3 Booléens : boolean Type à deux valeurs : true et false &&, || ET logique, OU logique a && b vrai si a est vrai ET b est vrai a || b vrai si a est vrai OU b est vrai ! négation !expression vrai si expression vaut false, faux si expression vaut true 3 3 Tableaux Syntaxe : type nomtableau []; type nomtableau [] = new type[taille]; type : type des éléments que contiendra le tableau. taille : nombre d'éléments maximum que peut contenir le tableau. indice du premier élément du tableau : 0 taille du tableau : nom_tableau.length (de type int) indice du dernier élément du tableau : nom_tableau.length - 1 Listing 5 Tableaux 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 int t a b l e a u E n t i e r s [ ] ; t a b l e a u E n t i e r s = new int [ 5 ] ; for ( int i = 0 ; i < t a b l e a u E n t i e r s . l e n g t h ; i ++) tableauEntiers [ i ] = ( i ∗ i ) ; for ( i = 0 ; i < t a b l e a u E n t i e r s . l e n g t h ; i ++) System . out . p r i n t l n ( "Le c a r r é de " + S t r i n g . v a l u e O f ( i ) + " e s t " + S t r i n g . valueOf ( t a b l e a u E n t i e r s [ i ] ) ) ; // initialisation // taille non lors précisée de car la déclaration = au nombre d ' éléments double t a b l e a u F l o t t a n t s [ ] = { 3 . 2 , 5 . 4 , − 6.458}; System . out . p r i n t l n ( t a b l e a u F l o t t a n t s . l e n g t h ) ; // tableau // affiche : 3 d ' objets P o i n t M o b i l e segment = new P o i n t M o b i l e [ 2 ] ; P o i n t M o b i l e pm1 = new P o i n t M o b i l e ( 3 , 2 ) ; t a b l e a u P o i n t [ 0 ] = pm1 ; P o i n t M o b i l e pm2 = new P o i n t M o b i l e ( ) ; t a b l e a u P o i n t [ 1 ] = pm2 ; t a b l e a u P o i n t [ 1 ] . setX ( 7 ) ; t a b l e a u P o i n t [ 1 ] . setY ( 4 ) ; 0 1 segment tableauEntier : 0 4 1 4 9 16 Chaînes de caractères : la classe String On peut considérer une chaîne de caractères comme étant un tableau de n caractères. La classe String peut être vue comme une sur-couche de cette 4 représentation, qui ore des fonctionnalités permettant de manipuler facilement des chaînes. Quelques méthodes de la classe String : char charAt(int index) retourne le caractère situé à l'indice spécié boolean contains(CharSequence s) retourne true si la chaîne contient la sous-chaîne s (CharSequence est une interface implémentée par String), false sinon boolean endsWith(String suffix) retourne true si la chaîne se termine par suffix, false sinon. boolean startsWith(String prefix) retourne true si la chaîne commence par prefix, false sinon. boolean isEmpty() retourne true si la chaîne est vide, false sinon. int length() retourne la longueur (nombre de caractères) de la chaîne. Attention, contrairement aux tableaux dont length est un membre, dans la classe String, length() est une méthode. boolean equals(Object obj) Si obj est de type String, retourne vrai si les deux chaînes ont la même valeur et false sinon. Sinon, renvoie true/false en comparant la valeur de la chaîne et la valeur retournée par la méthode toString() de obj. boolean equalsIgnoreCase(String s) Renvoie true si la chaîne est identique à s sans tenir compte de la casse (diérence majuscules/minuscules) et false sinon. Cette liste n'est pas exhaustive : consultez la documentation de la classe, notamment pour les méthodes replace(), substring(), toUppperCase(), toLowerCase(), indexOf(). . . Voir : http://docs.oracle.com/javase/7/docs/api/index.html?java/lang/String. html 5