6. Társítási kapcsolatok 7. Öröklődés

Slides:



Advertisements
Hasonló előadás
Tamás Kincső, OSZK, Analitikus Feldolgozó Osztály, osztályvezető A részdokumentumok szolgáltatása az ELDORADO-ban ELDORADO konferencia a partnerkönyvtárakkal.
Advertisements


Kamarai prezentáció sablon
„Esélyteremtés és értékalakulás” Konferencia Megyeháza Kaposvár, 2009
Készítette: Boros Erzsi
II. Grafikus felhasználói interfész
Weblap szerkesztés HTML oldal felépítése Nyitó tag Záró tag Nyitó tag Záró tag oldalfej tözs.
A társadalmi tényezők hatása a tanulásra
Programozás III OOP ALAPOK.
Erőállóképesség mérése Találjanak teszteket az irodalomban
MATEMATIKA Év eleji felmérés 3. évfolyam
Humánkineziológia szak
Mellár János 5. óra Március 12. v
1Objektumorientált elemzés és tervezés – Dinamikus modellezés Gyurkó György Objektumorientált elemzés és tervezés Dinamikus modellezés.
6) 7) 8) 9) 10) Mennyi az x, y és z értéke? 11) 12) 13) 14) 15)
Műveletek logaritmussal
Elektromos mennyiségek mérése
Az új történelem érettségiről és eredményeiről augusztus Kaposi József.
Koordináta transzformációk
Utófeszített vasbeton lemez statikai számítása Részletes számítás
JavaScript.
A tételek eljuttatása az iskolákba
OBJEKTUMORIENTÁLT PROGRAM
Osztályok Garbage collection.  általában minden osztálynak vannak adattagjai és/vagy metódusai ◦ adattagok megadása:  [láthatóság] [static] [final]
Vizuális modellezés Uml és osztálydiagram UML eszközök
Elektronikai Áramkörök Tervezése és Megvalósítása
Elektronikai Áramkörök Tervezése és Megvalósítása
Tömbök ismétlés Osztályok Java-ban Garbage collection
VÁLOGATÁS ISKOLÁNK ÉLETÉBŐL KÉPEKBEN.
Védőgázas hegesztések
1. IS2PRI2 02/96 B.Könyv SIKER A KÖNYVELÉSHEZ. 2. IS2PRI2 02/96 Mi a B.Könyv KönyvelésMérlegEredményAdóAnalitikaForintDevizaKönyvelésMérlegEredményAdóAnalitikaForintDeviza.
A Java programozási nyelvSoós Sándor 1/17 Java programozási nyelv 4. rész – Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
Java programozási nyelv 3. rész – Osztályok I.
JSP és JavaBean JavaServer Pages és Java Beans Fabók Zsolt Általános Informatikai Tanszék Miskolci Egyetem.
Szerkezeti elemek teherbírásvizsgálata összetett terhelés esetén:
Sárgarépa piaca hasonlóságelemzéssel Gazdaság- és Társadalomtudományi kar Gazdasági és vidékfejlesztési agrármérnök I. évfolyam Fekete AlexanderKozma Richárd.
NOVÁK TAMÁS Nemzetközi Gazdaságtan
DRAGON BALL GT dbzgtlink féle változat! Illesztett, ráégetett, sárga felirattal! Japan és Angol Navigáláshoz használd a bal oldali léptető elemeket ! Verzio.
Objektumok. Az objektum információt tárol, és kérésre feladatokat hajt végre. Az objektum adatok (attribútumok) és metódusok (operációk,műveletek) összessége,
A valós világ modellezése. Az embert a valós világ modellezésekor a következő gondolatok vezérlik: Absztrakció Megkülönböztetés Osztályozás Általánosítás,
1Objektumorientált elemzés és tervezés - Alapfogalmak Gyurkó György Objektumorientált elemzés és tervezés Alapfogalmak.
Objektumorientált tervezés és programozás II. 3. előadás
szakmérnök hallgatók számára
Logikai szita Pomothy Judit 9. B.
Logikai szita Izsó Tímea 9.B.
Az LPQI rész a Partner Az LPQI-VES társfinanszírozója: Dr. Dán András Az MTA doktora, BME VET Meddőenergia kompenzálás elmélete és alkalmazása.
3. A HIDROGÉNATOM SZERKEZETE
4. Feladat (1) Foci VB 2006 Különböző országok taktikái.
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT
2007. május 22. Debrecen Digitalizálás és elektronikus hozzáférés 1 DEA: a Debreceni Egyetem elektronikus Archívuma Karácsony Gyöngyi DE Egyetemi és Nemzeti.
7. Házi feladat megoldása
Gyorsjelentés a Kulturális Központok Országos Szövetsége tagintézményeinek felméréséről Kecskemét,
Hernyák Zoltán Programozási Nyelvek II.
A pneumatika alapjai A pneumatikában alkalmazott építőelemek és működésük vezérlő elemek (szelepek)
Objektumorientált tervezés Út az objektumig Az objektum fogalma, jellemzői Objektummal kapcsolatos fogalmak Hardverfogalmak A rendszer modell nézetei Objektumorientált.
V 1.0 Szabó Zsolt, Óbudai Egyetem, Programozási Paradigmák és Technikák Programozási eszközök Interfészek Generikus.
Csurik Magda Országos Tisztifőorvosi Hivatal
A klinikai transzfúziós tevékenység Ápolás szakmai ellenőrzése
2006. Peer-to-Peer (P2P) hálózatok Távközlési és Médiainformatikai Tanszék.
QualcoDuna interkalibráció Talaj- és levegövizsgálati körmérések évi értékelése (2007.) Dr. Biliczkiné Gaál Piroska VITUKI Kht. Minőségbiztosítási és Ellenőrzési.
1. Melyik jármű haladhat tovább elsőként az ábrán látható forgalmi helyzetben? a) A "V" jelű villamos. b) Az "M" jelű munkagép. c) Az "R" jelű rendőrségi.
Objektumvezérelt rendszerek tervezése
Programozás III OOP ALAPOK.
Programozás III OOP ÖRÖKLŐDÉS.
> aspnet_regiis -i 8 9 TIPP: Az „Alap” telepítés gyors, nem kérdez, de később korlátozhat.
A KÖVETKEZŐKBEN SZÁMOZOTT KÉRDÉSEKET VAGY KÉPEKET LÁT SZÁMOZOTT KÉPLETEKKEL. ÍRJA A SZÁMOZOTT KÉRDÉSRE ADOTT VÁLASZT, VAGY A SZÁMOZOTT KÉPLET NEVÉT A VÁLASZÍV.
1 Az igazság ideát van? Montskó Éva, mtv. 2 Célcsoport Az alábbi célcsoportokra vonatkozóan mutatjuk be az adatokat: 4-12 évesek,1.
A szoftver mint komplex rendszer: objektumorientált megközelítés.
Hernyák Zoltán Programozási Nyelvek II.
Előadás másolata:

6. Társítási kapcsolatok 7. Öröklődés II. OO paradigma 4. Mitől OO egy program? 5. Objektum, osztály 6. Társítási kapcsolatok 7. Öröklődés 8. Egyszerű OO terv – Esettanulmány Köszöntő Szeretettel köszöntöm Önt, kedves hallgató ott a képernyő túloldalán. Angster Erzsébet vagyok, a Programozás tantárgy vezető tanára. Azzal az elhatározással ültem ide erre az oldalra, hogy segítsek Önnek, sőt megpróbáljak kedvet csinálni tanulmányaihoz, apró programjai elkészítéséhez. Önnek tisztában kell lennie azzal, hogy ez a tárgy nem a magolós tárgyak közé tartozik, a tananyag elsajátításához hónapokra van szükség. E tárgy tanulása során kialakul majd egyfajta gondolkodás, melyhez feltétlenül gyakorlási és érési időre van szükség. Hogy mennyi időre, az természetesen az egyéntől is függ. Van, aki most lát életében először programot, van, aki már komolyabb rutinra tett szert. Van, aki lassabban, de alaposabban tanul, mások gyorsabban, de felületesebben. Én a kettő közül feltétlenül az előbbit választanám. (Itt jön be az első kép) A tananyag mintegy 20 fejezetből áll, úgy, ahogy a tankönyvben is. Minden fejezet elején látni fogja, hogy pontosan hol tart az anyagban. Ajánlatos az egyes fejezetek végén egy kicsit elidőzni, a tankönyv kérdéseire válaszolni, valamint néhány feladatot megoldani.

4. Mitől OO egy program? II. OO paradigma 1. A valós világ modellezése 2. Az objektumorientált program főbb jellemzői

A valós világ modellezése Az ember a világ megértéséhez modelleket épít Modellezési alapelvek Absztrakció Megkülönböztetés Osztályozás Általánosítás, specializálás Kapcsolatok felépítése, részekre bontás Absztrakció Objektumok leegyszerűsítése Megkülönböztetés Objektumok és azok tulajdonságainak megkülönböztetése Osztályozás Objektumok kategóriákba, osztályokba sorolása Például: „Dorka és Csonti kutyák” Általánosítás, specializálás Bővebb, illetve szűkebb kategóriák felállítása Például: „Csonti egy állat”, „A kutya az egy háziállat, de olyan amelynek négy lába van” Kapcsolatok felépítése, részekre bontás Ismeretségi vagy tartalmazási kapcsolat Például: „A kutya őrzi a házat”

OO program Egy objektumorientált program egymással kommunikáló objektumok összessége, melyben minden objektumnak megvan a feladatköre fut vezérlő objektum objektum1 üzenet3 üzenet1 objektum2 objektum3 üzenet2

Az OO program főbb jellemzői Nem elég az OO nyelv, OO szellem kell! Objektum Üzenet (kérelem) Felelősség Bezárás, információ elrejtése Polimorfizmus (többalakúság) Osztályozás Öröklődés Futás alatti (késői) kötés Nem elég az OO nyelv, OO szellem kell! Objektum információt tárol, kérésre feladatokat hajt végre adatok és a rajtuk dolgozó algoritmusok összessége Üzenet (kérelem) objektum megszólításának módja beprogramozott rutin (metódus) a küldő objektumnak ismernie vagy tartalmaznia kell a fogadó objektumot Felelősség Egy OO programban minden objektumnak megvan a jól meghatározott felelősségi köre (feladatköre) Minden objektum felelős feladatainak korrekt elvégzéséért Bezárás, információ elrejtése A feladat elvégzésének “hogyan”-ja az objektum belügye Az objektum belseje sérthetetlen, vele csak az interfészen keresztül lehet kommunikálni Polimorfizmus (többalakúság) Ugyanarra a kérelemre különböző objektumok különbözőképpen reagálhatnak Osztályozás Az objektumok példányokat viselkedésük alapján osztályokba soroljuk Öröklődés Egy osztály örökölhet tulajdonságokat és viselkedésformákat egy másik osztálytól Az utódban csak az őstől való eltéréseket kell megadni Futás alatti (késői) kötés

Készül a húsleves nyitva? van(...)? elad(...) húsBolt1 zsófi vanKedv? zöldségBolt1 zöldségBolt2 zöldségBolt3 laci elkészít (húsleves) vanKedv? elkészít(húsleves) zsófi kati erzsébet

Laci és a hölgyek elkészít rutinja elkészít(húsleves) if zsófi.vanKedv() zsófi.elkészít(húsleves) else if kati.vanKedv() kati.elkészít(húsleves) else erzsébet.elkészít(húsleves) end if end elkészít elkészít(húsleves) vásárol(...) főz() mosogat() end elkészít Polimorfizmus

A „húsleveskészítők” osztályai kati Férfi elkészít(...) laci Öröklési kapcsolat zsófi Példánya (függőségi kapcsolat) Hölgy vanKedv? vásárol(...) főz() mosogat() SzerelmesHölgy erzsébet GyakorlottHölgy

A boltok osztályai Bolt áruk (név, mennyiség, ár) nyitva? van(...)? húsBolt2 húsBolt1 Bolt áruk (név, mennyiség, ár) nyitva? van(...)? elad(...) zöldségBolt1 zöldségBolt2 zöldségBolt3 HúsBolt beszerez(...) ZöldségBolt

5. Objektum, osztály II. OO paradigma 1. Az objektum 2. Az objektum állapota 3. Az objektum azonossága 4. Osztály, példány 5. Kliens üzen a szervernek 6. Objektum létrehozása, inicializálása 7. Példányváltozó, példánymetódus 8. Osztályváltozó, osztálymetódus 9. Bezárás, az információ elrejtése 10. A kód újrafelhasználása 11. Objektumok, osztályok sztereotípusai

Objektum Információt tárol, kérésre feladatokat hajt végre Objektum = adatok + algoritmusok (metódusok) Üzeneten keresztül lehet megszólítani Felelős feladatainak korrekt elvégzéséért

Ember objektum Üzenetek andor megy(táv) elmegy(x,y) fordul(szög) (100,50) 30º pozíció(x,y) irányszög Adatok (attribútumok) megy(táv) elmegy(x,y) fordul(szög)

Ablak objektum Adatok Üzenetek aFrame (20,16) (100,80) "Ablak" true setVisible(true) setLocation(40,8) setSize(20,16) setTitle("Ablak") Üzenetek location(x,y) size(width,height) title visible Adatok

Objektum állapota Az objektumnak mindig van egy állapota (adatok pillanatnyi értékei) Két objektumnak ugyanaz az állapota, ha az adatok értékei megegyeznek Az objektum operációkat hajt végre, melyek hatására állapota megváltozhat Az objektum mindig emlékszik állapotára

Objektum azonossága Minden objektum egyértelműen azonosítható Az objektum azonossága független a tárolt értékektől Két objektum akkor sem azonos, ha állapotaik megegyeznek!

Osztály, példány Osztály (class) Olyan objektumminta vagy típus, mely alapján példányokat (objektumokat) hozhatunk létre Példány (instance) Minden objektum születésétől kezdve egy osztályhoz tartozik

Ember osztály és példányai pozíció(x,y) iránySzög megy(táv) elmegy(x,y) fordul(szög) Ember kati andor zsófi

Ablak osztály és példányai location(x,y) size(x,y) title visible setVisible(visible) setLocation(x,y) setSize(width,height) setTitle(title) Frame

Osztály és példány az UML-ben Példány (Objektum) location=(10,6) size=(20,12) title="Ablak" visible=true aFrame:Frame Adatok/ Attribútumok/ Információk/ Változók/ Mezők Metódusok/ Operációk/ Rutinok Osztály neve location(x,y) size(width,height) title: String visible: boolean Frame setVisible(visible) setLocation(x,y) setSize(width,height) setTitle(title) Példány neve és osztálya Példány adatai

Kliens üzen a szervernek üzenet (kérelem) szerver kliens Üzenetküldés, kérelem (request) Egy objektumot üzeneteken keresztül kérünk meg különböző feladatok elvégzésére Üzenet (message) kívülről elérhető metódus hívása kliens küldi, szerver fogadja Kliens (client) objektum aki a feladatot elvégezteti ügyfél, kérő, üzenetet küldő objektum Szerver (server) objektum aki a feladatot elvégzi kiszolgáló, választ adó, üzenetet fogadó objektum

Objektum létrehozása, inicializálása Objektum életciklusa: „megszületik”, „él”, „meghal” Az objektumot létre kell hozni és inicializálni kell! Objektum inicializálása konstruktor (constructor) végzi adatok kezdőértékadása objektum működéséhez szükséges tevékenységek végrehajtása

Objektum inicializálása kati = new Ember(100,50) kati:Ember pozíció=(100,50) iránySzög=0 Ember pozíció(x:number,y:number) iránySzög:number Ember(x:number,y:number) megy(táv:number) elmegy(x:number,y:number) fordul(szög:number)

Példányváltozó Példánymetódus Osztályváltozó Osztálymetódus Példányonként helyet foglaló változó Példánymetódus Példányokon dolgozó metódus Osztályváltozó Osztályonként helyet foglaló változó Osztálymetódus Osztályokon dolgozó metódus

Példányváltozók (értékek) Osztálydefiníció változó1=aÉrték1 változó2=aÉrték2 változóM=aÉrtékM a (példány) változó1: típus1 változó2: típus2 változóM: típusM metódusI metódus2 metódusN metódus1 a és b osztálya a.metódusI (üzenet) Példánymetódusok változó1=bÉrték1 változó2=bÉrték2 változóM=bÉrtékM b (példány) .

Autó(5,93,85) megy(60) fordul(45) setMaxSebesség(50) pozíció(x:number, y:number) iránySzög: number sebesség: number maxSebesség: number=100 Autó(x,y,sebesség) megy(táv) elmegy(x,y) fordul(szög) setMaxSebesség(sebesség) Autó setMaxSebesség(100) bor144:Autó pozíció=(5,93) iránySzög=0 sebesség=85 bit079:Autó pozíció=(28,8) sebesség=50 Autó(28,8,50) megy(10) elmegy(25,10)

Bezárás (encapsulation) adatok és metódusok összezárása egybezárás, egységbezárás Információ elrejtése (information hiding) az objektum „belügyeit” csak az interfészen keresztül lehet megközelíteni Kód újrafelhasználása (code reuse) megírt kód felhasználása példány létrehozásával vagy osztály továbbfejlesztésével

Információ elrejtése Implementáció Interfész metódus1 Adatok metódus2 metódusN metódus3 metódus2 .

Objektumok, osztályok sztereotípusai Információhordozó Határ Kontroll Konténer <<határ>> Frame UML jelölés:

6. Társítási kapcsolatok II. OO paradigma 6. Társítási kapcsolatok 1. Objektumok közötti társítási kapcsolatok 2. Osztályok közötti társítási kapcsolatok 3. A társítási kapcsolat megvalósítása

Objektumok közötti társítási kapcsolatok Ismeretségi (használati) Tartalmazási (egész-rész) gyenge erős

Ismeretségi kapcsolat 1 judit :Nő andrás :Férfi házastársa 2 zsófi :Ember erzsébet gyereke kati Objektumdiagramok

Tartalmazási kapcsolat 1 -ban van csoki :Édesség doboz :Doboz 4 :Kutya :Fej :Láb :Törzs 2 3 felügyeli printDialog: Dialog pageNum: InputLine cancel: Button ok: Button Kompozíció

Osztályok közötti társítási kapcsolatok szerepnév szülő 2 * Kapcsolat foka (multiplicitása) Kiskorú Nagykorú gyerek {rendezett} Megszorítás Kapcsolat neve Gyereke Ismeretségi vagy tartalmazási Multiplicitás: egy–egy, egy–sok, sok–sok Kötelező vagy opcionális

Egy-egy kapcsolat Édesség Doboz Ban van Opcionális kapcsolat csoki 0..1 Doboz Ban van Opcionális kapcsolat csoki :Édesség doboz1 :Doboz -ban van doboz2 cukor süti

Egy-sok kapcsolat városa országa Városa budapest:Város Országa eger:Város newYork:Város pécs:Város usa:Ország magyarország :Ország városa országa Városa Országa Ország Város 1..*

Sok-sok kapcsolat Tanfolyamok: andi gyuszi anita dávid Hallgatók: gépírás angol számtech. 1..* 2..10 Hallgató Tanfolyam Jár Képzi

Egy-egy kapcsolat megvalósítása kliens szerver másik:Autó típus: Mazda rendszám:GXT912 egyik:Autó típus: Peugeot rendszám:BIT745 autó :Ember név=Dávid autó=egyik név=Anita autó=másik dávid anita Ember név autó:Autó Ember(...) megy(...) vezet() Autó típus rendszám Autó(...) defektetKap()

Egy-egy kapcsolat megvalósítása kliens szerver másik:Autó típus: Mazda rendszám:GXT912 egyik:Autó típus: Peugeot rendszám:BIT745 autó :Ember név=Dávid autó=másik név=Anita dávid anita Ember név autó:Autó Ember(...) megy(...) vezet() Autó típus rendszám Autó(...) defektetKap()

Egy-sok kapcsolat megvalósítása másik:Autó típus: Mazda rendszám:GIT912 egyik:Autó típus: Peugeot rendszám:BIT745 :Ember név=Dávid autók:Konténer add(autó) autó = next(egyik) ... Autó(...) autó.megy(...) autó.defektetKap() …

Egy-sok kapcsolat megvalósítása . . . Autó típus rendszám Autó(...) megy(...) defektetKap() * Ember név autók:Konténer Ember(...) vezet() Konténer size(): number add(obj: Object) first(): Object next(obj: Object): Object rNext(obj: Object): Object prev(obj: Object): Object rPrev(obj: Object): Object remove(obj: Object) clear()

7. Öröklődés II. OO paradigma 1. Az öröklődés fogalma, szabályai 2. Az utód objektum adatai és a küldhető üzenetek 3. Egyszeres, többszörös öröklés 4. Az interfész fogalma 5. Láthatóság (hozzáférési mód, védelem)

Öröklődés Dialog location(x,y) size(width,height) setLocation() setSize() FileDialog file:String getFile():String setFile(file:String) Button 2 Ős osztály Utód osztály

Ki mire képes? gergő ágoston zsolt bea Ember pozíció IQ megy() tanul() beszél() Hallgató osztályzat Tanár elérhetőség tananyag tanít()

Utód adatai, küldhető üzenetek m1 Ős.m1 m2 Ős.m2 m1 Utód.m1 m3 Utód.m3 Küldhető üzenetek Mi hajtódik végre? Ős a b m1 m2 Utód c d m3 a, b o1: Ős a, b, c, d o2: Utód

Interfész Repülő «interfész» felszáll() leszáll() repül() UtasSzállító létszám() beszáll(utas) kiszáll(utas) Interfészek Madár felszáll() leszáll () repül() eszik() etet() fészketRak() RepülőGép felszáll() leszáll () repül() létszám() beszáll(utas) kiszáll(utas) AutóBusz megy() várakozik() létszám() beszáll(utas) kiszáll(utas) Implementáló osztályok

Láthatóság Objektum védelme Osztály objektum.publikusAdat #védettAdat -privátAdat +publikusMetódus #védettMetódus -privátMetódus objektum.publikusAdat objektum.publikusMetódus objektum :Osztály objektum.védettAdat objektum.védettMetódus objektum.privátAdat objektum.privátMetódus

Osztály védelme Osztály +publikusAdat #védettAdat -privátAdat +publikusMetódus #védettMetódus -privátMetódus UtódOsztály egyMetódus Hivatkozások a metódusban: publikusAdat védettAdat privátAdat publikusMetódus védettMetódus privátMetódus

8. Egyszerű OO terv - Esettanulmány II. OO paradigma 8. Egyszerű OO terv - Esettanulmány 1. A fogalmak tisztázása 2. Gyuszi játéka - fejlesztési dokumentáció

Munkafolyamatok, dokumentációk Követelményfeltárás Követelményspecifikáció (feladatspecifikáció) Analízis Szakterületi objektummodell Képernyőterv (prototípus) Használati esetek Környezet megadása

Munkafolyamatok, dokumentációk (folyt.) Tervezés Osztálydiagram Osztályleírások Együttműködési diagramok Programterv Implementálás Forráskód Tesztelés Tesztadatok

Programvezérlési módszerek Kötegelt Interaktív Algoritmusvezérelt Eseményvezérelt

Algoritmusvezérelt program Egy objektum main Szegény Gyuszi, lehet, hogy hiába nyomkodja... Az aktor csak akkor adhat életjelet, ha erre az algoritmus megkéri. A program

Eseményvezérelt program Ha az aktor eseményt generál, a megfelelő metódus lekezeli azt. main A program Belépési pont

Feladatspecifikáció - Gyuszi játéka Gyuszinak van egy 7*5 m-es terepasztala, melyen kisautók robognak különböző irányokban. Minden autójára jellemző annak színe és sebessége. Ha egy autó a terepasztal falá- hoz ér, ott rugalmasan ütközik, és a megváltozott irányban folytatja útját. Gyuszi úgy játszik, hogy kedve szerint egy-egy autót meg- fordít vagy arrébb tol. Előbb vagy utóbb Gyuszi be szeretné fejezni a játékot – ha ráüt egyet az asztalra, az autók enge- delmesen megállnak. A feladatot egy egyprocesszoros számítógépes környezet- ben kell szimulálni! Tegyük fel, hogy az autók nem ütköznek soha, vagyis “átmennek egymáson”.

Számítógépes szimuláció Képernyőterv Számítógépes szimuláció Gyuszi

Szakterületi objektummodell Esc gyusziJátéka terepasztal Gyuszi autó Egér

Használati esetek Megfordítja az autót (kettőt kattint az autón az egérrel) Arrébb tolja az autót (az egérrel vonszolja az autót) Véget vet a programnak (leüti az Esc billentyűt)

Osztálydiagram Component -x,y: number -width,height: number GyusziJátéka +GyusziJateka() +main() Auto -szin: Color -sebesség: number -irány: number +Auto(szin:Color,x,y,...) +paint() +megy() +fordul(fok:number) +setIrany(fok:number) +mouseClicked(e:Event) +mouseDragged(e:Event) TerepAsztal +TerepAsztal() +robogas() +keyPressed(e:Event) Frame +add(comp: Component) +getComponent (index: number): Component +getComponentCount(): number * Component -x,y: number -width,height: number #Component() +setLocation(x,y:number) +setSize(width,height:number) +setBackGround(color:Color)

terepAsztal:TerepAsztal Együttműködési diagram fordul() setLocation() mouseClicked() mouseDragged() :Auto Auto(...) setIrány() Gyuszi megy() keyPressed() :GyusziJateka terepAsztal:TerepAsztal TerepAsztal() add(autó) robogas() GyusziJateka()