2010.12.05. 20:25
Identifiers & JavaBeans [Declarations and Access Control]
Az első fejezet címe Declarations and Access Control, ahogy a bejegyzés címéből is látszik. A fő fejezetcímeket az aktuális alfejezet címe mögött így fogom jelölni. Minden alfejezetnek van néhány Certification Objective-je, melyek elérendő célok a vizsgára. Egy alfejezet nem feltétlen fedi a felsorolt objective-okat, sokszor inkább szükséges építőeleme annak. Következzen tehát az első alfejezet, melynek a vizsgához szükséges céljai:
1.3 Fejlesszünk olyan kódot, ami deklarál, inicializál és használ primitíveket, tömböket, enumokat és objektumokat mint statikus, osztály-szintű és lokális változókat. Használjunk legális változóneveket.
1.4 Fejlesszünk olyan kódot, ami deklarál statikus és nem statikus eljárásokat és - ha lehetséges - használjuk a JavaBeans elnevezési szabványát. Továbbá fejlesszünk olyan kódot, ami deklarál és használ egy változó hosszúságú argumentum listát.
A Java azonosítókat három szempont szerint csoportosíthatjuk:
- Legális azonosítók: Azon szabályok összessége, amelyek meghatározzák a fordító számára, hogy mely elnevezések legálisak.
- A Sun Java Code Conventions: Általánosan elfogadott elnevezési konvenció, melyet érdemes követni, hiszen a legtöbb programozó kisebb eltérésekkel, de ezt használja. A vizsgának nem része, de erősen ajánlott, hogy ismerjük.
- JavaBeans Naming Standards: A JavaBeans specifikáció elnevezésbeli követelményei. A JavaBeans specifikáció szintén nem része a vizsgaanyagnak, de néhány alapvető elnevezésekre vonatkozó szabályt ismerni kell.
Legális azonosítók
A legális azonosítók unicode karakterekből, számokból, pénzügyi szimbólumokból és összekötő karakterekből (pl.: _) épülnek fel. A vizsga letételéhez nem kell ismerni pontosan az unicode megengedett tartományait, de amit tudni kell, azok a következők:
Az azonosítóknak betűvel, pénzügyi szimbólummal, vagy összekötő karakterrel kell kezdődniük. Szám nem lehet az első karakter.
A második karaktertől bármilyen kombinációját tartalmazhatja a betűknek, pénzügyi szimbólumoknak, összekötő karaktereknek, számoknak.
Gyakorlatilag nincs korlátozva az azonosítók hosszának.
Java kulcsszó nem használható azonosítónak. Alább a táblázat tartalmazza a Java kulcsszavakat.
Az azonosítónevek érzékenyek a kis és nagy betűkre, azaz foo és FOO két különböző azonosító.
abstract | boolean | break | byte | case | catch |
char | class | const | continue | default | do |
double | else | extends | final | finally | float |
for | goto | if | implements | import | instanceof |
int | interface | long | native | new | package |
private | protected | public | return | short | static |
strictfp | super | switch | synchronized | this | throw |
throws | transient | try | void | volatile | while |
assert | enum |
Sun Java Code Conventions
A Sun által javasolt kódolási konvenciók a "Java Code Conventions" nevű dokumentumban találhatóak meg. Általánosan elfogadott és a vizsgához is javasolt az ismerete, noha számítani kell rá, hogy a vizsgakérdésekben előforduló kódrészletek némileg eltérnek majd ettől. Ennek oka, hogy könnyebben feldolgozható és ellenőrizhető legyen géppel. A szabályok, amelyeket ismerni kell:
Osztály és interfész: Nagybetűvel kezdünk, és ha több szóból áll a név, akkor minden szó első karakterét naggyal írjuk, szóköz nélkül. Ezt az írásmódot camelCase-nek szokás nevezni. Osztálynevek általában főnevek (pl.: Dog, Account, PrintWriter), míg az interfészek általában melléknevek (pl.: Runnable, Serializable).
Eljárás: Kisbetűvel kezdünk, majd normál camelCase-el folytatjuk. Általában ige-főnév párokból épülnek fel (pl.: getBalance, doCalculation, setCustomerName).
Változó: Hasonlóan az eljárásokhoz, a camelCase szabványt ajánlatos használni kis kezdőbetűvel. Érdemes rövid, beszédes neveket alkalmazni (pl.: buttonWidth, accountBalance, myString).
Konstans: A Java konstansok static és final kulcsszóval ellátott változók, melyeket csupa nagybetűvel nevezünk el. A szavakat aláhúzás (_) karakterrel választjuk el (pl.: MIN_HEIGHT).
JavaBeans Standards
A JavaBeans specifikáció azért készült, hogy segítse a fejlesztőket, hogy szabványos Java komponenseket (un. bean) készítsenek, melyeket újra tudnak hasznosítani különböző IDE-kben. Így nem kell minden általános komponenst újra lefejleszteni, meg is lehet azokat vásárolni. A vizsgára elég néhány dolgot tudni a JavaBean-ekről.
Először is, a JavaBeanek Java osztályok, amelyek property-kkel rendelkezdnek. Ezekre úgy kell gondolni, mint privát változókra, melyek értékét csak publikus metódusokkal lehet lekérni és módosítani. Ezeket getter, illetve setter metódusoknak nevezzük.
JavaBean Property elnevezési szabályok:
- Ha a property nem boolean típusú, akkor a getter metódusnak a get szóval kell kezdődnie, melyet a property neve követ (pl.: getSize()). Ez utóbbi nem kötelező, nem feltétlenül kell, hogy létezzen olyan változó, mely a getter nevében szerepel, valamint az sem garantált, hogy a függvény tisztán a változó értékét adja vissza, lehet, hogy változtatásokat végez előbb azon.
- Ha a property boolean típusú, akkor get, vagy is a javasolt prefix (pl.: getStopped(), isStopped()).
- A setter metódus set prefix-el van ellátva (pl.: setSize()).
- A getter és setter metódusok get, set, illetve is prefixe után az érintett változó nevét úgy használjuk fel, hogy annak első betűjét nagyra cseréljük.
- A setter metódust publikusként kell megjelölni void visszatérési értékkel és egy argumentummal a property típusával.
- A getter metódust publikusként kell megjelölni, argumentum nélkül. A visszatérési érték a property típusával egyezik meg.
Másodszor a JavaBeans támogatja az eventeket, melyek arra alkalmasak, hogy értesítsenek más objektumokat bizonyos események, például egér kattintás bekövetkeztéről. Az objektumok, melyek fogadják az ilyen információkat, listenereknek nevezzük. A vizsgához tudni kell, hogy a metódusoknak, - melyek hozzáadnak, illetve eltávolítanak listenereket - szintén követniük kell némi JavaBeans elnevezésbeli szabványt:
- A listener metódus neveknek, melyek regisztrálnak egy listenert egy event source-hoz, az add kulcsszóval kell, hogy kezdődjenek, melyet a listener típusának neve követ. Például az addActionListener() egy érvényes metódusnév, mellyel az Action eventre lehet felíratkozni.
- Azon listener metódusok, melyek eltávolítanak egy listenert egy event source-ról, a remove kulcsszóval kell kezdődjenek, folytatva a listener típusának nevével. A szabályok megegyeznek az add-al.
- A listener típusát argumentumként kell feltüntetni az add, illetve remove függvényekben.
- A listener függvények neveinek a Listener szóval kell végződniük.
Példák érvényes JavaBeans elnevezésekre:
public void setMyValue(int v)
public int getMyValue()
public boolean isMyStatus()
public void addMyListener(MyListener m)
public void removeMyListener(MyListener m)
Példák érvénytelen JavaBeans elnevezésekre:
void setCustomerName(String s) //hiányzik a public
public void modifyMyValue(int v) //helytelen a modify szó
public void addXListener(MyListener m) //nem egyezik a listener típus
Fontos:
Az objective szerint csak a változónevekhez kell ismerni a legális elnevezéseket, de fontos tudni, hogy ugyanazon szabályok érvényesek minden Java komponensre. Azaz egy név ha legális mint változónév, akkor legális mint osztály, vagy metódus név is. Ugyanakkor fontos, hogy meg tudjuk különböztetni a legális elnevezéseket az elnevezésbeli szabványoktól. Tehát fel kell ismerni, hogy egy azonosító lehet legális, még ha nem is felel meg például a JavaBeans szabványnak. Ha a vizsgán külön a naming convention felől érdeklődnek (nem csak arról, hogy mi fordul le), akkor az alatt mindig a JavaBeans szabványt kell érteni.
A bejegyzés trackback címe:
Kommentek:
A hozzászólások a vonatkozó jogszabályok értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a Felhasználási feltételekben és az adatvédelmi tájékoztatóban.