• Aucun résultat trouvé

0-M02 – Introduction `a la programmation Introduction `a l’algorithmique Cours n

N/A
N/A
Protected

Academic year: 2022

Partager "0-M02 – Introduction `a la programmation Introduction `a l’algorithmique Cours n"

Copied!
13
0
0

Texte intégral

(1)

Documentation Java Surcharge des m´ethodes Attributs et m´ethodes de classe Les collections

0-M02 – Introduction ` a la programmation Introduction ` a l’algorithmique

Cours n°4

Surcharges, collections et attributs de classe

Camille Coti

[email protected]

IUT de Villetaneuse, d´epartement R&T

2011 – 2012

(2)

Documentation Java Surcharge des m´ethodes Attributs et m´ethodes de classe Les collections

1 Documentation Java

2 Surcharge des m´ethodes

3 Attributs et m´ethodes de classe

4 Les collections Les listes Les ensembles

Outils sur les collections

(3)

Documentation Java Surcharge des m´ethodes Attributs et m´ethodes de classe Les collections

La documentation Java

http://download.oracle.com/javase/6/docs/api/

Documentation de l’API Java

En ligne sur le site de Oracle / Sun : API standard du JDK / SDK Possibilit´e de g´en´erer la Javadoc d’un projet

Syst`eme d’annotation du code

en´eration automatique avec l’outiljavadoc

R´ef´erence pour programmer !

(4)

Documentation Java Surcharge des m´ethodes Attributs et m´ethodes de classe Les collections

1 Documentation Java

2 Surcharge des m´ethodes

3 Attributs et m´ethodes de classe

4 Les collections Les listes Les ensembles

Outils sur les collections

(5)

Documentation Java Surcharge des m´ethodes Attributs et m´ethodes de classe Les collections

Surcharge des m´ ethodes

Surcharge

Une m´ethode (proc´edure ou fonction) peut ˆetre d´efinie plusieurs fois dans une classe en recevant des arguments diff´erents en types et en nombres : on dit alors que cette m´ethode estsurcharg´ee

Exemple : un constructeur qui prend

Des arguments correspondant `a des valeurs d’initialisation d’attributs de l’objet cr´e´e

Ou aucun argument, l’objet ´etant cr´e´e en utilisant des valeurs par d´efaut.

Attention cependant :

On ne peut pas avoir deux fonctions qui prennent les mˆemes arguments mais ne retournent pas la mˆeme chose

Lestypessont importants, attention aux ambigu¨ıt´es

D’o`u l’importance de passer les bons param`etres quand on appelle des m´ethodes ou que l’on d´efinit des m´ethodes d’une interface !

(6)

Documentation Java Surcharge des m´ethodes Attributs et m´ethodes de classe Les collections

Surcharge des m´ ethodes : exemple

Exemple avec la classe Cercle :

1 c l a s s C e r c l e { 2 /∗ C o n s t a n t e ∗/

3 f i n a l i n t DEFAULT 20

4 /∗ A t t r i b u t s ∗/ 5 p r i v a t e i n t d i a m e t r e ; 6 /∗ C o n s t r u c t e u r ∗/ 7 p u b l i c C e r c l e ( ) { 8 d i a m e t r e = DEFAULT ;

9 }

10 p u b l i c C e r c l e (i n t d i a m e t r e ){

11 t h i s. d i a m e t r e = d i a m e t r e ;

12 }

13 }

On a d´efini 2 constructeurs : Un constructeur qui ne prend pas d’arguments et initialise le diam`etre `a une valeur par d´efaut

Un constructeur qui prend le diam`etre du cercle par d´efaut

Utilisation : 1 C e r c l e c1 , c2 ; 2 c1 = new C e r c l e ( ) ; 3 c2 = new C e r c l e ( 10 ) ;

Lors de l’appel, le syst`eme choisit la m´ethode dont le prototype correspond `a la forme de l’appel.

(7)

Documentation Java Surcharge des m´ethodes Attributs et m´ethodes de classe Les collections

Attributs de classe

Attributs d’objet

Par d´efaut les attributs sont propres `a un objet et font partie de la structure de donn´ees stock´ee en m´emoire correspondant `a cet objet : ce sont desattributs d’objet.

Attributs de classe

On peut d´efinir des attributs comme ´etant pr´esents en un seul exemplaire dans le programme, partag´e entre tous les objets de la classe correspondante : ce sont desattributs de classe.

1 c l a s s C e r c l e { 2 / A t t r i b u t s / 3 p r i v a t e i n t d i a m e t r e ; 4 p u b l i c s t a t i c i n t nb = 0 ; 5 / C o n s t r u c t e u r /

6 p u b l i c C e r c l e ( i n t d i a m ) { 7 d i a m e t r e = d i a m ;

8 nb++;

9 }

10 }

D´efinition d’un attribut de classe avec le mot-cl´e static

Acc`es depuis une autre classe : Cercle.nb

On utilise lenom de la classe

(8)

Documentation Java Surcharge des m´ethodes Attributs et m´ethodes de classe Les collections

M´ ethode de classe

M´ethode de classe

Unem´ethode de classeest une m´ethode dont le comportement n’est pas li´e `a un objet en particulier, et qui n’acc`ede qu’`a des attributs de classe.

Exemples :

Math.random()est une m´ethode de la classe Math La m´ethodemain()

public static void main( String[] ) /* ... */

D´efinition d’une m´ethode de classe : Utilisation du mot-cl´estatic

public static int count() Utilisation d’une m´ethode de classe : Appel avec lenom de la classe Car la m´ethode est li´ee `a la classe et non pas `a un objet en

particulier

Cercle.count()

1 c l a s s C e r c l e { 2 / A t t r i b u t s / 3 p r i v a t e i n t d i a m e t r e ; 4 p u b l i c s t a t i c i n t nb = 0 ; 5 / C o n s t r u c t e u r /

6 p u b l i c C e r c l e ( i n t d i a m ) { 7 d i a m e t r e = d i a m ;

8 nb++;

9 }

10 / ethode de c l a s s e / 11 p u b l i c s t a t i c i n t c o u n t ( ) {

12 r e t u r n nb ;

13 }

14 }

(9)

Documentation Java Surcharge des m´ethodes Attributs et m´ethodes de classe Les collectionsLes listes Les ensembles Outils sur les collections

Collection

D´efinition

Unecollectionest une structure de donn´ee amen´ee `a contenir n’importe quel type de donn´ees, ou n’importe quelle classe d´erivant de la classeObject.

Concr`etement :

Structure de donn´ees

Les donn´ees sont organis´ees de fa¸con `a avoir certaines propri´et´es Les propri´et´es sont sp´ecifiques suivant la collection

Chaque collection fournit des outils pour manipuler les donn´ees On ne copie pas les objets dans la collection

on ins`ere une r´ef´erence (en Java, tout est r´ef´erence)

(10)

Documentation Java Surcharge des m´ethodes Attributs et m´ethodes de classe Les collectionsLes listes Les ensembles Outils sur les collections

Parcours d’une collection

It´erateur monodirectionnel On a une interfaceIterator M´ethodesnext(),hasNext() M´ethoderemove()

1 / on a une c o l l e c t i o n c / 2 I t e r a t o r i t e r = c . i t e r a t o r ( ) ; 3 w h i l e( i t e r . h a s N e x t ( ) ) { 4 Toto t = i t e r . n e x t ( ) ;

5 / O p ´e r a t i o n s s u r l ’ o b j e t t / 6 t e r . r e m o v e ( ) ;

7 }

It´erateur bidirectionnel

On a une interfaceListIterator

M´ethodes suppl´ementairesprevious(),hasPrevious(),add()

1 / on a une l i s t e l /

2 I t e r a t o r i t e r = l . l i s t I t e r a t o r ( l . s i z e ( ) ) ; 3 w h i l e( i t e r . h a s P r e v i o u s ( ) ) {

4 Toto t = i t e r . p r e v i o u s ( ) ; 5 / O p ´e r a t i o n s s u r l ’ o b j e t t / 6 t e r . r e m o v e ( ) ;

7 }

(11)

Documentation Java Surcharge des m´ethodes Attributs et m´ethodes de classe Les collectionsLes listes Les ensembles Outils sur les collections

Les listes

ClasseLinkedList: liste chaˆın´ee

Cr´eation :LinkedList l = new LinkedList();

Possibilit´e de passer en param`etre une collection Ajout, suppression : add(),addFirst(),remove() Taille : size()

ClasseArrayList: vecteur dynamique

Cr´eation :ArrayList a = new ArrayList();

Mˆemes m´ethodes que LinkedList

Supression de plusieurs ´el´ements cons´ecutifs : a.removeRange( 3, 6 ) Acc`es `a un ´el´ement d’indicei: a.get( i )

Les classesLinkedListetArrayListh´eritent deList Possibilit´e d’utiliser un it´erateurbidirectionnel

(12)

Documentation Java Surcharge des m´ethodes Attributs et m´ethodes de classe Les collectionsLes listes Les ensembles Outils sur les collections

Les ensembles

Un ensemble est unecollection non-ordonn´ee d’´el´ements Aucun ´el´ement ne peut s’y trouver plusieurs fois ClasseHashSet: table de hachage

Cr´eation :HashSet h = new HashSet();

Possibilit´e de passer en param`etre une collection Possibilit´e d’utiliser un it´erateurmonodirectionnel Ajout, suppression : add(),remove()

add()retourne unbool´een: false si l’objet s’y trouve d´ej`a Code de hachage d’un objet : hashCode()

ClasseTreeSet: arbre binaire

Cr´eation :TreeSet t = new TreeSet();

Ajout, supression : comme HashSet TreeSetest un ensembleordonn´e

Notion de premier et dernier ´el´ement : first()etlast()

(13)

Documentation Java Surcharge des m´ethodes Attributs et m´ethodes de classe Les collectionsLes listes Les ensembles Outils sur les collections

Outils sur les collections

Recherche de max ou de min

Les objets doivent impl´ementer l’interfaceComparable ethodecompareTo()

M´ethodesmin(),max()

Exemple : si on a une liste l : Collections.max( l )

Tri

Les objets doivent impl´ementer l’interfaceComparable M´ethodesort()

Exemple : si on a une liste l : Collections.sort( l )

M´elange

M´ethodeshuffle()

Exemple : si on a une liste l : Collections.shuffle( l )

Références

Documents relatifs

Compilation et ex´ ecution Le langage Java Classes Cr´ eation d’une classe Constructeur et destructeur H´ eritage. 1 Compilation et

Plusieurs types d’exceptions possibles pour une seule m´ ethode Trairement selon l’erreur rencontr´ ee. On r´ ecup` ere des informations sur l’exception

´ Ecrit le tableau de caract` eres tab sur le flux de sortie courant public void write( String s ) throws IOException. ´ Ecrit la chaˆıne de caract` eres s sur le flux de

Ces m´ ethodes ne donneront pas la fonction y solution de (1) mais donneront des valeurs approch´ ee de y(t) pour certaines valeurs de t.. R´ e´ ecrire cette approximation dans

● Pour voir le résultat d'une opération, on peut demander au programme de l'afficher. ● On utilise la fonction System.out.print

● Dans certains cas, on peut vouloir qu'une fonction ne retourne aucune valeur. ● Il n'y a pas de return dans

● Il faut aussi définir les fonctions que l’on utilise dans le programme!. Typiquement on les met avant

● Pour cela il pourrait utiliser une fonction moyenne qui prendrait en paramètres 1000 entiers et renverrait la moyenne.. ●