Вы находитесь на странице: 1из 14

!

"#$%$&$ -, #;%,";,# ,$ -, T$,;E"0<0J%,


Universile de I'Oued



!"! # !"#$#%$#&" ( )%*% !" $%&'()!
Syslemes d'IxIoilalion Avances
Annee Universilaire : 2013/2014


3me anne Informatique LMD
TI1 : Inilialion a }ava el IcIise


1
!"# ! #$%&%'&%($ ) *'+' ,& -./%01,
Syslemes d'IxIoilalion Avances
I. Ob|eclifs du TI
Ce TI esl une inlroduclion au Iangage }ava. II vous ermellra de comrendre Ies rincies de base du Iangage,
ainsi que Ia synlaxe donl on aura besoin our Ie resle du rogramme. II ne relend as lre exhauslif, mais donne une
idee assez comIele sur Ies nolions a connailre our ouvoir rogrammer en }ava. IIus lard, |e vous invile a eludier Ius
en rofondeur ce Iangage.
Iour ouvoir rogrammer en }ava, on a besoin d'un }DK (jata Octc|cpncni Kii), qui reresenle I'environnemenl
dans IequeI Ie code }ava esl comiIe afin que Ia machine virlueIIe (jVM our jata Viriua| Macninc) uisse I'inlerreler. II
conlienl Ie comiIaleur }ava (jatac), I'archiveur (jar), Ie generaleur de documenlalion (jata!cc) el Ie debogueur (j!|). II
conlienl egaIemenl I'environnemenl d'execulion }ava (j|| our jata |uniinc |ntircnncni).
Iour comiIer el execuler un rogramme en }ava, on eul aeIer Ies commandes direclemenl sur une consoIe
(jatac our Ia comiIalion el jata our I'execulion) ou bien uliIiser un IDI (|nicgraic! Octc|cpncni |ntircnncni). Un IDI
esl un rogramme regrouanl un ensembIe d'ouliIs our Ie deveIoemenl de IogicieIs. Cel IDI, en coIIaboralion avec Ie
}DK, ermel de faciIiler Ia reaIisalion de loules Ies elaes de comiIalion el d'execulion, grce a une inlerface grahique
dediee. II exisle Iusieurs IDI qu'on eul uliIiser (Nelbeans, IcIise, }DeveIoer, }uiIder.), nous aIIons en uliIiser un
our celle annee : IcIise. La remiere arlie de ce TI vous monlre I'environnemenl IcIise our une uliIisalion de base,
mais Ie bul esl Ioin de vous arendre a I'uliIiser en rofondeur : IcIise resle |usle un ouliI, qu'on eul remIacer a loul
momenl ar un aulre.
II. Invironnemenl de DeveIoemenl : IcIise
IcIise esl un environnemenl de deveIoemenl inlegre Iibre exlensibIe, universeI el oIyvaIenl, ermellanl de
creer des ro|els de deveIoemenl mellanl en ouvre n'imorle queI Iangage de rogrammalion. IcIise IDI esl
rinciaIemenl ecril en }ava (a I'aide de Ia bibIiolheque grahique SWT, d'IM), el ce Iangage, grce a des bibIiolheques
secifiques, esl egaIemenl uliIise our ecrire des exlensions.
La secificile d'IcIise IDI (Inlegraled DeveIomenl Invironemenl) vienl du fail de son archileclure lolaIemenl
deveIoee aulour de Ia nolion de Iugin (en conformile avec Ia norme OSGi) : loules Ies fonclionnaIiles de cel aleIier
IogicieI sonl deveIoees en lanl que Iug-in.
TI1 : Inilialion a }ava el IcIise


2
IIusieurs IogicieIs commerciaux sonl bases sur ce IogicieI Iibre, comme ar exemIe IM Lolus Noles 8, IM
Symhony ou WebShere Sludio AIicalion DeveIoer.
!!4 54 6+*2$%0" -7&" 8+09,$ #&+ :;<%)#,
! Ouvrez I'IDI IcIise, on vous demandera de choisir I'esace de lravaiI dans IequeI vous aIIez lrouver vos ro|els.
Taez Ie chemin du reerloire que vous avez cree sur Ie bureau. Si vous n'avez as encore cree d'esace de
lravaiI, IcIise Ie creera our vous.
! Iermez Ia fenlre de bienvenue qui aarail.
! Vous vous lrouvez aclueIIemenl dans volre esace de lravaiI. La figure suivanle vous indique Ies differenles vues
disonibIes.

! Creez un nouveau ro|el }ava. Iour ceIa, auyez sur IiIe ! Nev ! }ava Iro|ecl. La fenlre suivanle aarailra:
TI1 : Inilialion a }ava el IcIise


3

! Taez comme indique Ie nom de volre ro|el. Conservez Ies regIages ar defaul, el auyez sur Iinish.
! Dans I'esace de lravaiI, sous I'ongIel Iackages, vous verrez que Ie ro|el esl cree, el qu'iI conlienl de|a un
reerloire src (qui doil conlenir lous Ies fichiers source que vous creez), el j|| Sqsicn Ii|rarq, qui esl uliIisee our
comiIer volre code.
! Iour creer un ackage sous Ie reerloire src, cIiquer sur ceIui-ci, uis sur I'icne , ou cIic-droil sur src, el
choisir Nev -> Iackage. Choisissez un nom our Ie ackage.
! Iour creer une cIasse :
CIiquer sur Ie ackage qui doil conlenir Ia cIasse uis sur I'icne , ou cIic-droil sur Ie ackage, el choisir
Nev -> CIass. Dans Ia fenlre qui aarail, choisissez Ie nom de Ia cIasse.
Si Ia cIasse n'esl as definie dans un ackage (ce qui esl deconseiIIe), refailes I'oeralion ci-dessus a arlir du
reerloire src.
Vous ouvez generer aulomaliquemenl Ia melhode nain en cIiquanl sur Ia case pu||ic siaiic tci! nain(Siringj}
args).
! La cIasse generee aarailra sous Ie ackage que vous avez choisi. DoubIe-cIiquez dessus our modifier son code
dans Ia arlie edilion. Vous verrez qu'un squeIelle de Ia cIasse vous esl roose. Vous n'aurez qu'a lerminer Ie
resle du code.
! Avec IcIise, vous n'avez as besoin de comiIer exIicilemenl volre code : Ia comiIalion se fail en lems reeI.
De Ius, Ies erreurs de synlaxe seronl affichees endanl I'ecrilure du code, avec des roosilions de correclions.

TI1 : Inilialion a }ava el IcIise


4
!!4 =4 >0&?,2& )+09,$ @ A,<<0B0+<-
II. 2. 1. HeIIovorId Version simIifiee
! Crer un nouveau projet Helloworld comme indiqu dans la partie prcdente. Crer un package
nomm helloPack, contenant une classe Helloworld qui contient une mthode main.
! Dans la mthode main, crire "System.out.println("Hello World!");"
! Excuter votre programme en cliquant directement sur l'icne . L'affichage apparatra dans la
partie infrieure, sous l'onglet Console.
II. 2. 2. HeIIovorId A|oul d'argumenls
Dans cette partie, nous allons ajouter des arguments la classe.
! Crer dans le mme projet Helloworld, un nouveau package nomm argsPack, contenant une
classe Helloworld avec une mthode main.
! Dans le code de la mthode main, crire : "System.out.println("Hello "+args[0]+"!");"
TI1 : Inilialion a }ava el IcIise


5
! Pour dfinir des arguments la classe, cliquer sur la flche ct de l'icne d'excution et
slectionner Run Configurations, ou cliquer sur la classe que vous voulez excuter, et aller Run
! Run Configurations... La fentre suivante va apparatre.

! Dans la partie de gauche, slectionner Java Application, puis cliquer sur l'icne (en haut,
gauche), pour ajouter une nouvelle configuration. Vous verrez que votre classe Helloworld a t
ajoute sous Java Application.
! Slectionner l'onglet Arguments (ci-dessus encadr en rouge) et, dans le cadre Program
Arguments, tapez simplement votre nom.
! Cliquer ensuite sur Run. Vous verrez dans la console l'affichage "Hello votre_nom!".
TI1 : Inilialion a }ava el IcIise


6


TI1 : Inilialion a }ava el IcIise


7
III. Inilialion a }ava
Le Iangage }ava esl un Iangage de rogrammalion informalique orienle ob|el cree ar }ames GosIing el Ialrick
Naughlon, emIoyes de Sun Microsyslems, avec Ie soulien de iII }oy (cofondaleur de Sun Microsyslems en 1982),
resenle officieIIemenl Ie 23 mai 1995 au SunWorId.
!!!4 54 62# -.*$&-, @ C,"$, 2&D ,";EF+,#
Nous aIIons dans celle arlie vous inilier aux concels en base de }ava en reaIisanl une elile aIicalion de tcnic
aux cncncrcs, qui ermel a deux ersonnes (aeIes cncncrisscurs) de miser sur un ob|el en venle. Cel ob|el esl defini ar un
numero (ar exemIe 1273), un lye (ar exemIe ia||cau) el une vaIeur (en dinars) reresenlanl son rix a I'inslanl
resenl (ar exemIe 500). L'ob|el en venle esl iniliaIise a Ia vaIeur que recise Ie resonsabIe de Ia venle (aeIe
ccnnissairc-priscur).
Les deux encherisseurs onl chacun une Iimile de rix a ne as deasser : si Ie rix de I'ob|el deasse celle Iimile,
iIs ne ourronl as acheler I'ob|el. IIs misenl une somme a lour de rIe. Le remier donl Ia Iimile esl alleinle quille
I'enchere, el c'esl son adversaire qui acquierl I'ob|el.
!"# % Iour commencer, creer un ro|el qui s'aeIIe VcnicAux|ncncrcs sur IcIise. Dans Ie reerloire src, creer
un ackage aeIe cncncrcs el un ackage aeIe nain. Dans Ie ackage nain, creer une cIasse Main conlenanl une
melhode nain qu'on Iaissera vide our I'inslanl.
!!!4 =4 6<2##,# ,$ 0G9,$#
Une cIasse reresenle Ia descrilion informalique des caraclerisliques d'un ob|el abslrail (desline a modeIiser un
ob|el reeI). IIIe decril Ies consliluanles eIemenlaires de I'ob|el ainsi que Ies oeralions (melhodes) ouvanl s'aIiquer a
cel ob|el.
class Vehicule {
int age ;
float taille ;
float poids ;
boolean moteur ;

int getWeight() {
return(poids) ;
}
}
Une cIasse Vcnicu|c sauvegardee dans un
fichier Vcnicu|c.jata
Qualre "allribuls" : age, laiIIe, oids el
moleur
Une "melhode" : gciWcigni relourne Ie oids
d'un vehicuIe
TI1 : Inilialion a }ava el IcIise


8
Un ob|el esl une inslance d'une cIasse. II esl genere a arlir d'une cIasse el slocke dans une variabIe. Iour creer un
nouveI ob|el, I'oeraleur ncu esl uliIise :
Vehicule v = new Vehicule() ;
Ccntcniicns !c ncnnagc.
1. Une cIasse commence lou|ours ar une ma|uscuIe, lous Ies aulres idenlifianls commencenl en minuscuIe (Ies
ob|els, Ies melhodes, Ies lyes rimilifs, Ies variabIes.)
2. Si un idenlifianl esl comose de Iusieurs mols, ces mols sonl coIIes I'un a Ia suile de I'aulre avec une
ma|uscuIe our chaque debul de mol, mais en reseclanl Ia convenlion 1. Iar exemIe, our une cIasse :
NcnOcC|assc, el our un ob|el ncnOcIO|jci.
Un conslrucleur esl une melhode secifique aeIee aulomaliquemenl Iors de I'inslancialion d'un ob|el. Le
conslrucleur a Ies arlicuIariles suivanles :
1. C'esl Ia seuIe melhode qui orle Ie nom de Ia cIasse
2. C'esl Ia seuIe melhode qui ne definil as de variabIe de relour
3. C'esl Ia seuIe melhode donl Ie nom commence ar une ma|uscuIe (uisque c'esl Ie nom de Ia cIasse)
class Vehicule {
int age ;
float taille ;
float poids ;
boolean moteur ;

Vehicule() {
age = 0 ;
taille = 0.0 ;
poids = 0.0 ;
moteur = false ;
}

int getWeight() {
return(poids) ;
}
}
II esl ossibIe de definir un ou Iusieurs conslrucleurs avec aramelres en Ius du conslrucleur ar defaul (sans
raramelres)
TI1 : Inilialion a }ava el IcIise


9
class Vehicule {
int age ;
float taille ;
float poids ;
boolean moteur ;

Vehicule(int a, float t, float p, boolean m) {
age = a ;
taille = t ;
poids = p ;
moteur = m ;
}

...
}
...
Vehicule v = new Vehicule(2,4.6,1.5,true) ;
...

!"# % Sous Ie ackage cncncrcs, creer une cIasse |ncncrisscur el une cIasse O|jci|nVcnic, qui reseclenl Ie
diagramme de cIasses suivanl (our I'inslanl, seuIs Ies conslrucleurs sonl a imIemenler. Les aulres melhodes reslenl
vides). Iour Ia cIasse |ncncrisscur, I'allribul ciai reresenle I'elal de I'encherisseur, s'iI esl encore en Iice our I'ob|el ou
as, el esl iniliaIise a in .

!!!4 H4 :";2)#&<2$%0"
II esl ossibIe de Iimiler Ia visibiIile des allribuls el melhodes definies a I'inlerieure des cIasses.
! &'()*+ : as de Iimilalion
! &,-./+./0 : visibIe deuis I'inlerieur de Ia cIasse el deuis cIasses qui en herilenl
! &,*12./ : visibIe uniquemenl deuis inlerieur de Ia cIasse
TI1 : Inilialion a }ava el IcIise


10
public class Vehicule {
public float age ;
protected float taille ;
private int poids ;
private boolean moteur ;

public Vehicule() {
age = 1.0F ;
taille = 1.0F ;
poids = 1 ;
moteur = false ;
}

public int getWeight() {
return(poids) ;
}
}
La decIaralion pu||ic des cIasses eIIes-mmes reond a un imeralif de securile, ar une decIaralion ubIic eIIes
seronl rendues accessibIes aux aulres cIasses.
!"# % A|ouler Ies modificaleurs de visibiIile aux cIasses que vous avez cree de maniere a ce que Ies melhodes
soienl visibIes ar loul Ie monde el Ies allribuls rives.
!!!4 I4 A*+%$2J,
II esl ossibiIile de decrire une nouveIIe cIasse en Ia faisanl heriler (deriver) d'une aulre cIasse. CeIa imIique que
Ies allribuls el melhodes sonl heriles de Ia cIasse mere (suercIasse) el des suercIasses de ceIIe-ci |usqu'a arriver a Ia
cIasse O|jcci, donl herilenl imIicilemenl loules Ies cIasses.
public class Voiture extends Vehicule {
public int places ;

public Voiture() {
moteur = true ;
places = 4 ;
}
}
TI1 : Inilialion a }ava el IcIise


11
!1)0+$2"$ : II esl imossibIe de faire deriver une cIasse de Ius d'une aulre cIasse
!"# % A|ouler une cIasse Pcrscnnc donl herile Ia cIasse |ncncrisscur, comme defini dans Ie diagramme suivanl.
Modifier Ie conslrucleur de Ia cIasse |ncncrisscur our qu'iI renne en consideralion Ie conslrucleur de sa cIasse mere.

!!!4 K4 L##0;%2$%0"
Deux cIasses sonl en associalion Iorsque cerlains de Ieurs ob|els onl besoin s'envoyer des messages our reaIiser
un lrailemenl. In }ava, une associalion esl reresenlee ar I'a|oul une reference d'une cIasse comme allribul dans I'aulre.
public class Vehicule {
public float age ;
protected float taille ;
private int poids ;
private boolean moteur ;
private Personne proprietaire ;

public Vehicule() {
age = 1.0F ;
taille = 1.0F ;
poids = 1 ;
moteur = false ;
}

public int getWeight() {
return(poids) ;
}
}
TI1 : Inilialion a }ava el IcIise


12
Ainsi, dans I'exemIe suivanl, une associalion esl reaIisee enlre un ob|el de lye Vciiurc el un ob|el de lye
Pcrscnnc. Chaque voilure a mainlenanl une inslance de Iersonne qui en esl Ie rorielaire.
!"# %
1. ReaIiser une associalion enlre Ia cIasse |ncncrisscur el Ia cIasse O|jci|nVcnic, comme I'indique Ie diagramme
suivanl.


2. ImIemenler loules Ies melhodes manquanles dans Ies cIasse |ncncrisscur el O|jci|nVcnic de maniere a ce
que :
! Quand un encherisseur veul a|ouler une somme a sa mise, iI lesle d'abord si Ia vaIeur de I'ob|el en venle a
alleinl sa mise Iimile. Si c'esl Ie cas, iI abandonne Ia arlie en affichanl : I'encherisseur ncn_cncncrisscur
a abandonne Ia arlie el mel son elal a cui. Si ce n'esl as Ie cas, iI aeIIe Ia melhode ajcuicrMisc de
I'ob|el en venle, el mel Ia somme qu'iI roose comme aramelre.
! Quand Ia melhode ajcuicrMisc de Ia cIasse Ob|elInVenle esl aeIee, Ia somme assee en aramelre sera
a|oulee a I'allribul ta|cur.
! Vous ouvez a|ouler d'aulres melhodes si besoin esl.
!!!4 M4 N*/%"%$%0" -.&", ?2+%2G<, )2+$2J*,
Iour comrendre commenl arlager une variabIe en }ava, iI faul se mellre en lle deux nolions imorlanles :
! In }ava, lous Ies ob|els sonl accessibIes ar des references (nouveau nom our pcinicur).
! La regIe generaIe de }ava esl que Ies argumenls sonl asses ar ta|cur.
De ce fail, si une variabIe de lye rimilif (ini ar exemIe) esl assee en aramelre a une melhode, celle variabIe
esl duIiquee our Ia duree de I'execulion de Ia melhode.
La regIe du assage des argumenls ar vaIeur s'aIique aussi aux ob|els, mais aIors c'esl une rcjcrcncc tcrs |c|jci
qui esl coiee. Ainsi, quand un ob|el esl asse en aramelre a une melhode, sa reference esl coiee, on oblienl ainsi un
TI1 : Inilialion a }ava el IcIise


13
deuxieme oinleur sur Ie ncnc c|jci. Ainsi, loule modificalion de I'ob|el a I'inlerieur de Ia melhode imIique sa
modificalion dans I'ob|el iniliaI.
!"# % ImIemenlez Ia cIasse Main que vous avez creee dans Ie ackage nain. Iour ceIa, iI faul imIemenler Ia
seuIe melhode de celle cIasse : pu||ic siaiic tci! nain(Siringj} args). Celle melhode doil faire Ies elaes suivanles :
! Creer un nouveI ob|el c|j de lye O|jciAVcn!rc, qui orle Ie numero 123, de lye ia||cau el de vaIeur iniliaIe
1000.
! Creer deux encherisseurs : Ie remier s'aeIIe AIi LoukiI el Ie second OIfa Ha|ri . AIi a mis comme mise
Iimile 2000dl el OIfa 2500dl. Tous Ies deux veuIenl acheler I'ob|el c|j.
! Tanl que Ies deux encherisseurs sonl dans Ia course (in), AIi va a|ouler Ia somme de 100 dl a Ia mise, el OIfa
a|oule 200 dl.
! Le rogramme doil afficher a Ia fin Ie nom de I'encherisseur qui a remorle I'ob|el, ainsi que Ia somme finaIe de
I'ob|el.
|cnarquc : our comarer deux ob|els de lye Siring, on doil uliIiser Ia melhode cqua|s conlenue dans Ia cIasse Siring
de Ia maniere suivanle :
ij (si1.cqua|s( ta|1 ))l.j
IV. Homevork
Le direcleur d'un Iaboraloire de recherche desire conlrIer I'uliIisalion abusive de I'imrimanle. On desire donc
reaIiser un rogramme qui memorise Ie nombre de documenls imrimes ar Ies membres du Iaboraloire en un mois en
uliIisanl Ies nolions vues auaravanl.
Une seuIe imrimanle exisle dans Ie Iaboraloire, arlagee ar lous Ies membres. Un membre eul lre soil un
eludianl, soil un chercheur, soil Ie direcleur Iui-mme. Quand un membre imrime une ou Iusieurs feuiIIes, Ie nombre
de feuiIIes imrimees esl sauvegarde dans I'imrimanle. Si Ie nombre lolaI de feuiIIes imrimees alleinl 1000,
I'imrimanle n'accele Ius d'aulres imressions, el affiche Ie message : ncn|rc !c jcui||cs nax aiicini.
La Iimile d'imression our un eludianl esl 100 el our un chercheur 200. Quand un membre veul faire une
imression, I'imrimanle verifie s'iI a alleinl sa Iimile. II ne eul as imrimer si c'esl Ie cas.
ReaIiser celle aIicalion en }ava sur IcIise.

Вам также может понравиться