Abstract programozás, útmutatók és példák
2. fejezet objektum-orientált programozás Java
absztrakció
Viselkedését leíró tárgy, például egy autó, építünk egy modellt is. A modell általában nem lehet leírni a tárgy teljesen valós objektumok túl bonyolult. Van, hogy csak azokat a jellemzőket, az objektum, amelyek fontosak a megoldás a probléma előttünk. Leírni a rakomány egyik fontos jellemzője a jármű kapacitása, és ez nem lényeges, hogy a leírás autóversenyzés. De ez nem olyan fontos a versenyzés szimulációkat kell feltétlenül írja le a módszert a beállított sebesség autó, és a szállítás.
Meg kell elválik néhány konkrét részleteit a tárgy. Nagyon fontos, hogy válassza ki a megfelelő absztrakciós szinten. A túl nagy csak azt közelítő leírását a tárgy, nem fogja engedni, hogy szimulálja a viselkedés helyes. Túl alacsony absztrakciós szinten teszi a modellt nagyon összetett, túlfeszített, és ezért alkalmatlan.
Például, lehet pontosan megjósolni az időjárás holnap egy bizonyos helyen, de számítások ezt a modellt tart három napig, még a legnagyobb teljesítményű számítógép. Miért van szükség egy modell, késett két napig? De a modell pontosságát által használt előrejelzők, mindannyian tudjuk magunkat. De a számítások ezt a modellt, hogy csak néhány órát.
A leírás az egyes modell készült formájában egy vagy több osztály (osztályok). Az osztály lehet tekinteni, mint egy projekt, egy replika, rajz, melyek aztán a konkrét tárgyak jön létre. Az osztály tartalmaz változók és állandók jellemzik a tárgyat. Ezek az úgynevezett osztályú területeken (class mezők). Eljárások viselkedését leíró objektum, az úgynevezett osztály módszerek (osztály módszerek). Osztályán belül lehet leírni, és beágyazott osztályok (beágyazott osztályok) és al-interfészek. Fields, módszerek és beágyazott osztályok az első szinten egy olyan csoportjának tagjai (osztály tagjai). Különböző iskolák objektumorientált programozás különböző értelemben használjuk a terminológiát elfogadott Java technológiát.
Itt van egy vázlatos leírást az autóról:
int maxVelocity; // tartalmazó mező a legmagasabb jármű sebessége
int sebesség; // tartalmazó mező az aktuális jármű sebessége
int tömeg; // területén hordozó gépkocsi tömegét
void moveTo (int x, int y)/ Метод, моделирующий перемещение
// autót. A paraméterek x és y - nincs mező
int a = 1; // lokális változó - nem a mező
// módszer test. Leírja a törvény
// mozgatni az autót, hogy egy pont (x, y)
A Java, nincs beágyazott eljárások és függvények a szervezetben a módszer nem lehet leírni más módszerrel.
Miután az osztály meghatározása befejeződött, akkor létrehozhat egyedi tárgyakat, példányok (példányok) a leírt osztály. Megtestesítési történik három lépésben, hasonlóan a leírását tömbök. Először bejelentette hivatkozva tárgyak: rögzített osztály nevét, és a résen esetekben az osztály szerepel, pontosabban összeköti őket.
Automobile Iada2110, Ford Scorpio, Oka;
lada2110 = új Automobile ();
Ford Scorpio = új Automobile ();
Oka = új Automobile ();
A harmadik lépés az inicializáló tárgyak, a kezdeti értékek vannak beállítva. Ez a lépés általában együtt egy másik, erre a célra a művelet ismételt új osztály nevét zárójelben Automobile (). Ezt nevezik a kivitelező (kivitelező) osztály, de beszéljünk később.
Mivel a mezők nevét és módszerek beágyazott osztályok minden területen azonosak, kapnak a leírást az osztályban, akkor meg kell határozni a nevét az objektum referencia:
oka.maxVelocity = 350; // Miért nem?
Emlékezzünk vissza, hogy a szöveg idézőjelbe utal Java, mint egy objektum osztály karakterlánc. Ezért írhat
int strlen = "Ez egy String objektum" .length ();
Object "string" eljárás végrehajtását length (). az egyik húr osztály módszerek. számítva a karakterek számát soronként. Az eredmény értékét strlen. egyenlő 24. Egy ilyen furcsa rekord található Java programok minden alkalommal.
Sok esetben, építeni több modell különböző fokú részletességgel. Például az építési kabátok és kabátok szüksége kevésbé pontos modell az emberi test alakját és mozgását, és hogy egy kabát, vagy egy estélyi ruha - sokkal pontosabb. Ebben a modellben a pontosabb, kisebb fokú absztrakció fogja használni a meglévő eljárások kevésbé pontosak modell szerint.
Nem gondolja, hogy az Automobile osztály túlterhelt? Valóban, a világ termelt több millió autó különböző márkájú és típusú. Mi a közös bennük mellett a négy kereke? És a kerekek lehet több vagy kevesebb. Hát nem jobb, hogy írjon külön osztályokban autók és teherautók, versenyautók és terepjárók? Hogyan szervezzük meg mindez sor osztályok? A kérdés az objektum-orientált programozás választ: meg kell szervezni egy olyan osztály hierarchiát.