You are on page 1of 4

Z2/29 A Java programozsi nyelv ltalnos jellemzi. Egyszer tpusok vez!rl!

si
szerkezetek osztlyok met"#usok konstruktorok $r$kl#!s polimor%izmus.
A Java programozsi nyelv:
A Java egy magas szint nyelv a kvetkez fbb jellemzkkel:
egyszer
objektumorientlt
elfordtott
rtelmezett
robusztus
biztonsgos
semleges arcitekt!rj!
ordozat"
nagy teljestmny
tbbszl!
dinamikus
A legtbb #rogramozsi nyelv esetn fordtst vagy rtelmezst ajtunk vgre$ mieltt a
#rogram futna a g#%nkn& A Java esetn a kettnek egy k%lns keverkt asznljuk&
'lszr a forrs#rogramot (myProgram.java) a fordt" (compiler, bin\javac.exe) egy kzb%ls
nyelvre fordtva Java bjtk"dot (myProgram.class) llt el$ s ezt a #latform f%ggetlen k"dot
rtelmezi s futtatja a Java *+ (interpreter, bin\java.exe)& A fordts egy alkalommal
trtnik$ az rtelmezs #edig minden alkalommal$ anyszor a #rogram vgreajt"dik&
Az osztly:
A val"di vilgban gyakran sok objektummal tallkozunk ugyanabb"l a fajtb"l& ,ldul a
biciklink nagyon sok ms biciklire jelentsen asonlt& Az objektumorientlt sz"asznlatban
azt mondjuk$ ogy egy konkrt bicikli a biciklik osztlynak egy #ldnya& A biciklik
rendelkeznek lla#ottal (aktulis sebessgfokozat$ fordulatszm stb&) s viselkedssel
(sebessgvlts$ fkezs)& 'nnek ellenre minden bicikli konkrt lla#ota f%ggetlen az sszes
tbbi bicikli lla#ott"l& Az objektumorientlt #rogramokban is asonl" a elyzet: kzs
tervezsre ad leetsget$ ogy sok objektum asonl" jellemzkkel rendelkezik: tglala#ok$
alkalmazottak$ videofelvtelek$ stb& A kerk#rgyrt"koz asonl"an nek%nk is elnys az$ a
sok asonl" objektumot kzs tervrajz ala#jn ksztet%nk el& Az objektumok tervrajzait
vjuk osztlyoknak&
&sztlyozsnak nevezz%k azt a folyamatot$ amelynek sorn a asonl" objektumokat kzs
cso#ortokba$ ms nven osztlyokba soroljuk& Az osztly bizonyos fajta objektumok kzs
vltoz"it s met"dusait ler" tervrajz&
Konstruktorok:
+inden osztlyban van legalbb egy konstruktor& A konstruktor inicializlja az !j objektumot&
A neve ugyanaz kell$ ogy legyen$ mint az osztly& ,ldul a Bicycle nev egyszer
osztlynak a konstruktora is Bicycle&
'bben a #ldban a konstruktor a #aramter ala#jn tudja ltreozni a kvnt mret tmbt&
A konstruktor nem met"dus$ gy nincs visszatr t#usa& A konstruktor a new o#ertor
atsra v"dik meg$ majd visszaadja a ltrejtt objektumot& 'gy msik konstruktor csu#n a
- kezdrtkeket lltja be:
+indkt konstruktornak ugyanaz a neve (Bicycle)$ de a #aramterlistjuk k%lnbz& A
met"dusokoz asonl"an a konstruktorokat is megk%lnbzteti a Java #latform a #aramterek
szma s t#usa ala#jn& 'zrt nem ratunk kt ugyanolyan #aramterlistval rendelkez
konstruktort& (.%lnben a fordt" nem lenne k#es ket megk%lnbztetni$ gy fordtsi ibt
adna&) Amikor ltreozunk egy osztlyt$ meg kell adnunk$ ogy az egyes #ldnyok milyen
konstruktorokkal legyen ltreozat"k& A korbban bemutatott Rectangle osztly ngy
konstruktort tartalmaz$ s gy leetv teszi a k%lnbz inicializlsi leetsgek kzti
vlasztst&
/em kell konstruktorokat rni az osztlyainkoz$ a !gy is el tudja ltni a feladatt& A
rendszer automatikusan ltreoz egy #aramter nlk%li konstruktort$ k%lnben nem tudnnk
#ldnyt ltreozni&
A konstruktor deklarci"jnl asznlatjuk a kvetkez ozzfrsi szinteket:
'rivate: 0sak ez az osztly asznlatja ezt a konstruktort& 1a minden konstruktorok
#rivt$ akkor az osztlyban leet egy #ublikus osztly met"dus$ mely ltreoz s
inicializl egy #ldnyt&
'rote(te#) Az osztly s leszrmazott osztlyai asznlatjk ezt a konstruktort&
'u*li(: +inden osztly asznlatja ezt a konstruktort&
nin(s mega#va: 0sak az osztllyal azonos csomagban elelyezked osztlyokb"l lesz
elret ez a konstruktor&
Metdusok:
A #rogramoz"nak met"dusok segtsgvel leetsge van a #rogramot modulokra bontani&
+inden a met"duson bel%l deklarlt vltoz" elyi vltoz"$ vagyis csak abban a met"dusban
ltat" s ret el$ amelyben deklarlva van& A legtbb met"dus rendelkezik
#aramterlistval$ ennek segtsgvel informci"csere val"stat" meg egyes modulok kztt&
A met"dus #aramterei szintn elyi vltoz"k& A #rogramok modulokra bontsnak tbb
elnye is van& Az egyik elnye az$ ogy a #rogramfejlesztsi folyamatot sokkal tltat"bb
teszi$ mivel a #rogram rszeit k%ln leet fejleszteni s tesztelni& +sik elnye$ ogy leetv
teszi a szoftver!jrafel"aszn#l#st$ mert mr ltez elemekbl is ksztet%nk !j #rogramot&
+egfelel elnevezsekkel s definci"kkal egy #rogramot standardizlt met"dusokb"l is fel
leet #teni$ nem kell az egsz #rogramk"dot !jrarni& A modulra bonts armadik nagy
elnye az$ ogy elker%letj%k #rogramk"d rszletek ismtldst a #rogramon bel%l& A
#rogramrszek 2becsomagolsval2 leetv vlik$ ogy egy egyszer met"dusvssal
ugyanaz a #rogramrsz a #rogram tbb #ontjr"l is elret legyen&
rklds:
A java.lang csomagban definilt $bject osztly megatrozza s megval"stja azokat a
met"dusokat$ amelyek minden osztly szmra sz%ksgesek& A kvetkez brn ltat"$ ogy
sok osztly ered az $bject3bl$ majd sok tovbbi osztly szrmazik az elbbi osztlyokb"l$ s
gy tovbb$ ltreozva ezzel az osztlyok ierarcijt& A ierarcia cs!csn ll" $bject az
osztlyok legltalnosabbja& A ierarcia aljn tallat" osztlyok sokkal s#ecializltabb
viselkedst eredmnyeznek& 'gy leszrmazott osztly valamely osztlyb"l szrmazik& A
superclass kifejezs (tovbbiakban sz%losztly vagy sosztly) egy osztly kzvetlen
sre4eldjre$ vagy annak brmely felmen osztlyra utal& +inden osztlynak csak s
kizr"lag egyetlen kzvetlen sz%losztlya van& 'gy leszrmazott osztly a vltoz"it s
met"dusait a sz%losztlyt"l rkli& A leszrmazott osztly szmra azonban leet$ ogy nem
elret egy rkltt vltoz" vagy f%ggvny& ,ldul$ egy leszrmazott osztly szmra nem
ret el egy private tag$ ami a felsbb osztlyt"l rkldtt&
+ondatnnk #ersze$ ogy akkor az a tag egyltaln nem is rkldtt& 5e igenis rkldtt&
Akkor vlik ez fontoss$ amikor egy olyan bels osztlyt asznlunk$ aminek van ozzfrse
a mellkelt osztlyok private tagjaioz& /e feledj%k$ ogy a konstruktorok nem met"dusok$
tet az leszrmazott osztlyok nem rkletik azokat&
Vezrlsi szerkezetek:
A #rogramok ala#veten egyms utn rt utastsok sorozatb"l llnak& Abban az esetben$
amikor az utastsok egyms utn ajt"dnak vgre$ szekvenci#lis feldolgoz#sr%l beszl%nk&
'bben a fejezetben bemutatunk nny olyan utastst$ amellyel a #rogramoz"
megatrozatja$ ogy a #rogram egy adott elyen melyik utastssal folytat"djon tovbb& 'zt
nevezz%k vez&rl&s#tad#snak&
'lgazsb"l rom k%lnbz ll rendelkezsre:
6& Az i% strukt+ra egy utastst akkor ajt vgre$ a egy megadott felttel igaz& 1a a
felttel nem igaz$ akkor az utasts nem ajt"dik vgre&
7& Az i%/else elgazs vgreajt egy utastst$ a a megadott felttel igaz$ de a a felttel
nem igaz$ akkor egy m#sik utas't#st ajt vgre&
8& A s,it(- strukt+ra segtsgvel egy kifejezs rtktl f%ggen tbb leetsgbl
egyet leet megval"stani&
0iklusb"l szintn rom tallat" a Java nyelvben$ ezek a ,-ile a #o/,-ile !s a %or
strukt+rk.
Az i% strukt+ra)
'nnek a strukt!rnak a segtsgvel egy feltteltl leet f%ggv tenni bizonyos utastsok
vgreajtst a #rogramban& A kvetkez #rogramrsz atsra #ldul a 9teljestette:
szveget rja ki a #rogram akkor$ a az eredmny nagyobb$ mint ;- szzalk:
if ( eredmeny < ;- )
g&dra=>tring( 9?eljestette:$ 7;$ 7; )@
Aelttel brmilyen kifejezs leet$ melynek eredmnye boolean t#us!$ ms sz"val a kifejezs
eredmnye logikai igaz$ vagy amis rtk leet&
Az i%/else strukt+ra)
Az if strukt!ra a felttel logikai amis rtke esetn egyszeren nem ajtja vgre az if
strukt!rban szere#l utastsokat& Az if4else strukt!ra asznlatval a #rogramoz" szmra
leetv vlik$ ogy k%lnbz utastsokat ajtson vgre a felttel igaz s amis volta esetn&
Az if4else strukt!roz nagyon asonlt a B: o#ertor mkdse& 'z az egyetlen o#ertor$
melynek rom o#erandusa van& A rom o#erandus egy%tt egy feltteles kifejezst ad& Az
els o#erandus egy logikai kifejezs$ a msodik a feltteles kifejezs rtke a logikai kifejezs
igaz rtke esetn$ a armadik #edig a feltteles kifejezs rtke a logikai kifejezs amis
rtke esetn&
A s,it(- strukt+ra)
A s=itc strukt!ra segtsgvel egy kifejezs rtktl f%ggen tbb leetsgbl egyet leet
megval"stani& A s=itc strukt!ra el#gaz#s& 'z a strukt!ra t(bbsz(r(s el#gaz#st tesz leetv$
a benne szere#l kifejezs rtktl f%ggen& +inden elgazs a kifejezs egy adott rtke
esetn val"sul meg&
A ,-ile strukt+ra)
Az ismtl strukt!rk asznlatval a #rogramoz"nak leetsge nylik arra$ ogy bizonyos
utastsokat !jra s !jra lefuttasson mindaddig$ amg egy bizonyos felttel fennll&
*egy%k #ldnak azt az esetet$ ogy egy #rogramban 7 els 6---3nl nagyobb atvnyra
van sz%ksg%nk& >z%ksg%nk van egy ala#ra$ ez eset%nkben 7$ valamint egy felttelre$ amely
azonnal abbaagyja a keresst$ amint a kvnt rtk megvan:
int ala# C 7@
=ile ( ala# D 6--- )
ala# C ala# E 7@
Az utols" sorban az ala#ot mindig du#lzzuk& 1a az ala# rtke 6--- fl r$ a ciklus nem fut
le !jra$ mivel a benne szere#l felttel rtke mr amis& A #rogram a ciklus utni sorral
folytat"dik tovbb& A %or strukt+ra ltalnos %ormja a k$vetkez)
for ( kifejezs6@ kifejezs7@ kifejezs8 )
utasts
aol kifejezs6 inicializlja a ciklusszmll"t$ kifejezs7 megadja az ismtlsi felttelt$
kifejezs8 #edig nveli a ciklusszmll"t& A legtbb esetben egy for ciklus megfeleltetet
egy =ile ciklusnak a kvetkez m"don:
kifejezs6@
=ile ( kifejezs7 ) F
utasts
kifejezs8@
G
A #o/,-ile strukt+ra)
A do4=ile strukt!ra a =ile ciklusra asonlt szerkezetileg& A k%lnbsg az$ ogy a =ile
ciklusban a ciklus vgreajtsnak a felttelt a rendszer a ciklus vgreajtsa el)tt vizsglja
meg$ mg a do4=ile ciklusnl a ciklus v&gre"ajt#sa ut#n& 'z azt is jelenti$ ogy a do*w"ile
ciklus legal#bb egyszer lefut& A do4=ile ciklus ltalnos alakja:
do F
utasts
G =ile (felttel)@

You might also like