cours-2-v2
16 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
16 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

Introduction a la programmation JavaF. Barthelemy28 fevrier 20051 But du coursLe but de ce cours est d’entrer dans le langage JAVA a un niveau de description moyen : plusdetaille que dans le premier cours, sans pour autant entrer dans tous les details qui devront ˆetrecherches ailleurs. On desire donner une connaissance su sante pour commencer a programmer(ED et TP).2 Bases du langage2.1 Les valeurs en JAVALes valeurs manipulees sont des soit des objets, soit des tableaux, soit des objet d’un typeprimitif.Ce qui n’est pas objet :– les valeurs de types prede nis, dits types primitifs– les tableaux.Ce qui est objet :– Les instances de classes prede nies (ex : les chaˆnes, String)– Les instances de classes de nies par l’utilisateur.Les types primitifs :– types entiers :– byte (8 bits)– short (16 bits)– int (32 bits)– long (64 bits) ex : 0L, 123l– types ottants :– oat (32 bits) ex : 0.f 123.45f– double (64 bits) ex : 0.8 56.89– type char ex : ’a’ ’e’– type boolean , avec deux valeurs true aseIl n’y a pas d’autres types primitifs.Les tableaux ont un statut special :– Ce ne sont pas des objets :– il n’y a pas de methodes– il n’est pas possible d’heriter des tableaux– mais ils ont en commun avec les objets d’avoir un etat qui change au l du temps.Les tableaux :– sont toujours a une dimension (mais on peut faire des tableaux de tableaux).– sont indices par des valeurs de types int a partir de 0.– la longueur d’un ...

Informations

Publié par
Nombre de lectures 45
Langue Français

Extrait

Introduction`alaprogrammationJava F.Barthe´lemy 28fe´vrier2005
1 But du cours LebutdececoursestdentrerdanslelangageJAVAa`unniveaudedescriptionmoyen:plus d´etaill´equedanslepremiercours,sanspourautantentrerdanstouslesde´tailsquidevronteˆtre cherch´esailleurs.Ond´esiredonneruneconnaissancesusantepourcommencer`aprogrammer (ED et TP).
2 Bases du langage 2.1 Les valeurs en JAVA Lesvaleursmanipule´essontdessoitdesobjets,soitdestableaux,soitdesobjetduntype primitif. Ce qui n’est pas objet : lesvaleursdetypespre´de´nis,ditstypesprimitifs – les tableaux. Ce qui est objet : Lesinstancesdeclassespre´de´nies(ex:leschaˆınes,String) Lesinstancesdeclassesd´eniesparlutilisateur. Les types primitifs : – types entiers : – byte (8 bits) – short (16 bits) – int (32 bits) – long (64 bits) ex : 0L, 123l – types flottants : – float (32 bits) ex : 0.f 123.45f – double (64 bits) ex : 0.8 56.89 – type char ex : ’a’ ’e’ – type boolean , avec deux valeurs true flase Il n’y a pas d’autres types primitifs. Lestableauxontunstatutsp´ecial: – Ce ne sont pas des objets : ilnyapasdem´ethodes ilnestpaspossibledh´eriterdestableaux maisilsontencommunaveclesobjetsdavoirun´etatquichangeauldutemps. Les tableaux : sonttoujours`aunedimension(maisonpeutfairedestableauxdetableaux). sontindic´espardesvaleursdetypesint`apartirde0. lalongueurduntableauestunepropri´et´edynamiquedutableau:ellenefaitpaspartiede sontype.Unevariablepeutcontenirsuccessivementdestableauxdedie´rentestailles. D´eclarationdetableau:
1
i n t n ; // c e c i e s t un e n t i e r , p a s un t a b l e a u i n t [ ] t ; // c e c i e s t un t a b l e a u d ’ e n t i e r s Compte [ ] t c ; // c e c i e s t un t a b l e a u de c o m p t e s i n t [ ] [ ] t t ; // c e c i e s t un t a b l e a u de t a b l e a u x d ’ e n t i e r s i n t [ ] n = { 1 , 2 , 3 } ; // t a b l e a u ´e i n i t i a l i s Cre´ationdunnouveautableau: t = new i n t [ 5 ] ; t c = new Compte [ 2 3 ] ; t t = new i n t [ 3 ] [ 4 ] ; Acc`esauxe´le´mentsduntableau: t [ 0 ] = 1 ; t c = new Compte ( ) ; t t [ 2 ] [ 2 ] = t [ 0 ] + 3 ; Voici un exemple complet avec des tableaux : c l a s s T ab l e au { i n t [ ] t a b = { 2 , 4 , 7 } ; void a f f i c h e ( ) { f o r ( i n t i = 0 ; i < t a b . l e n g t h ; i ++) { System . o u t . p r i n t ( ” ” + t a b [ i ] ) ; } System . o u t . p r i n t l n ( ) ; } void f o i s D e u x ( ) { f o r ( i n t i = 0 ; i < t a b . l e n g t h ; i ++) { t a b [ i ] = t a b [ i ] 2 ; } } void a j o u t e ( i n t x ) { i n t [ ] n t = t a b ; t a b = new i n t [ n t . l e n g t h + 1 ] ; f o r ( i n t i = 0 ; i < n t . l e n g t h ; i ++) { t a b [ i ] = n t [ i ] ; } t a b [ t a b . l e n g t h 1 ] = x ; } public s t a t i c void main ( S t r i n g [ ] a r g s ) { T ab l e au t = new T ab l e au ( ) ; t . f o i s D e u x ( ) ; t . a j o u t e ( 5 ) ; t . a f f i c h e ( ) ; } } Leschaˆınesdecaracte`ressontdesobjetsdelaclassepre´d´enieString.Cenesontpasdes tableauxdecaracte`res.Onnepeutpasmodierlavaleurdunechaıˆne(parexemple,onnepeut paschangerlavaleurduncaract`erecommedansuntableau).Ilyadenombreusesm´ethodes pr´ed´ies. e n
2
2.2 Variables et types Unevariableesttoujoursde´clare´eavecuntype. Unevariableatoujoursunevaleurparde´fautquid´epentdesontype: – 0 pour les int, 0.f pour les float, false pour les boolean, etc – null pour les tableaux et les objets Certaines conversions de types sont automatiques : – on peut affecter une valeur int dans une variable long onpeutmettreunobjetdunesous-classedutypede´clar´edunevariable(ex:CompteSecurise dans une variable de type Compte) Ilyapourcelaunensembleder`eglesd´ecrivantlesconversionspossiblesetcellesquinelesont pas.Lesre`glessontassezcompliqu´ees.Onnelesd´etaillepasici. Onpeutaussiutiliseruneconversionexplicite(cast).La`encore,toutnestpaspossible. Possible : conversion d’un byte en char. Conversion d’une sous-classe vers une super-classe (ex : Compte -¿ Object). Impossible : conversion d’un int en tableau de Compte. char c ; c = ( char ) 3 8 ; O b j e c t o ; o = ( O b j e c t ) new Compte ( ) ;
2.3Lesinstructionsdecontrˆole Elles sont classiques. // b l o c { i n t n ; n = 1 + 2 ; } ; // c o n d i t i o n n e l l e i f ( true ) n = 0 ; // une s e u l e i n s t r u c t i o n ( ou un b l o c ) e l s e n = 1 ; // une s e u l e i n s t r u c t i o n ( ou un b l o c ) // f o r i n t i ; f o r ( i =0; i < 4 ; i ++) System . o u t . p r i n t l n ( i ) ; // une s e u l e i n s t r u c t i o n ( ou un b l o c ) // w h i l e while ( true ) System . o u t . p r i n t l n ( ”Ca b o u c l e ” ) ; // une s e u l e i n s t r u c t i o n ( ou un b l o c ) // do w h i l e do System . o u t . p r i n t l n ( ”Ca b o u c l e ” ) ; // une s e u l e i n s t r u c t i o n ( ou un b l o c ) while ( true ) ; JAVA est langage purement objet : il n’y a pas de variables globales, pas de fonctions, pas de proc´edures:lesvariablesetlesme´thodesapparaissentseulementdansdesclasses. 3 Les exceptions Commedansbeaucoupdelangages,ilexisteunmoyendege´rerleserreursintervenant`a lex´ecution:lesexceptions.Cemoyenpeute´galementeˆtreutilis´ea`dautrens(ex:sortiede boucle), dans un style de programmation particulier mais correct. 3
Uneexceptiondoiteˆtrede´clar´ee,ensuiteellepeuteˆtreleve´eet´eventuellementre´cupe´re´e. Uneexceptionestunobjet,instancedelaclassepre´d´enieException(oudunesous-classe d’Exception). E x c e p t i o n monException = new E x c e p t i o n ( ) ; Pour lever une exception, on utilise l’instruction throw throw monException Celaapoureetdesuspendretoutcalcul,saufsilexceptionestre´cupe´r´eeparunblocappelant ducodeo`ulexceptionestlev´ee. Prenonslexempledescomptesse´curis´es.Onpeututiliseruneexceptionpourempeˆcherle retraitdunesommequandlecomptenestpasapprovisionn´e. c l a s s C o m p t e S e c u r i s e extends Compte { E x c e p t i o n p r o v i s i o n I n s u f f i s a n t e = new E x c e p t i o n ( ) ; void r e t r a i t ( i n t n ) throws E x c e p t i o n { i f ( s o l d e < n ) throw p r o v i s i o n I n s u f f i s a n t e ; s o l d e = s o l d e n ; } } . . . C o m p t e S e c u r i s e durand = new C o m p t e S e c u r i s e ( ) ; durand . d e p o t ( 2 0 0 ) ; durand . r e t r a i t ( 3 0 0 ) ; . . . Danslecasouonessaiederetirerplusdargentquilnyena,lexceptionestleve´eetlexecution ´ du programme s’arrete, avec une message du type : j a v a . l a n g . E x c e p t i o n a t e s s . < c l i n i t > ( e s s . j a v a : 1 3 ) Notezquechaqueme´thodedoitd´eclarerlesexceptionsquipeuvetnˆetreleve´esaucoursde lex´ecutiondeleurcorps(cfexempleci-dessus). Lutilisateurdelame´thode,sachantquelexceptionprovisionInsusantepeuteˆtreleve´e,peut pr´evoirunefaconmoinsbrutaledeg´erercecasquelarreˆtpuretsimpledelex´ecution. C o m p t e S e c u r i s e durand = new C o m p t e S e c u r i s e ( ) ; durand . d e p o t ( 2 0 0 ) ; try { durand . r e t r a i t ( 3 0 0 ) ; System . o u t . p r i n t l n ( ” R e t r a i t e f f e c t u e ” ) ; } catch ( E x c e p t i o n p i ) { System . o u t . p r i n t l n ( ” P r o v i s i o n i n s u f f i s a n t e ” ) ; } ; Lexempleducomptesecuris´eillustrelagestionderreurs.Onpeutaussiutiliseruneexception pour sortir d’une boucle, sans qu’il y ait d’erreur : boolean t r o u v e = f a l s e ; i n t [ ] t a b ;
4
  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents