OOP-k Concepts in Java

Mi az OOPS?
Objektum-orientรกlt programozรกsi rendszer (OOP) egy olyan programozรกsi koncepciรณ, amely az absztrakciรณ, a beรกgyazรกs, az รถrรถklลdรฉs รฉs a polimorfizmus elvรฉn mลฑkรถdik. Lehetลvรฉ teszi a felhasznรกlรณk szรกmรกra, hogy lรฉtrehozzรกk a kรญvรกnt objektumokat, รฉs mรณdszereket hozzanak lรฉtre az objektumok kezelรฉsรฉre. Az OOP-k alapkoncepciรณja az objektumok lรฉtrehozรกsa, รบjrafelhasznรกlรกsa a programban, รฉs az objektumok manipulรกlรกsa az eredmรฉnyek elรฉrรฉse รฉrdekรฉben.
Az OOP jelentรฉse โobjektumorientรกlt programozรกsโ egy nรฉpszerลฑen ismert รฉs szรฉles kรถrben hasznรกlt fogalom a modern programozรกsi nyelvekben, mint pl. Java.
OOP-k Concepts in Java pรฉldรกkkal
Az alรกbbiakban az รกltalรกnos OOP fogalmak talรกlhatรณk Java:
1) Osztรกly
Az osztรกly az OOP-k egyik alapfogalma, amely hasonlรณ entitรกsok csoportja. Ez csak egy logikai รถsszetevล, รฉs nem a fizikai entitรกs. รrtsรผk meg ezt az egyik OOP-t Concepts Pรฉldรกul, ha van egy โDrรกga autรณkโ osztรกlya, akkor lehetnek olyan tรกrgyak, mint a Mercedes, BMW, Toyota stb. Tulajdonsรกgai (adatai) lehetnek ezen autรณk รกra vagy sebessรฉge. Mรญg ezekkel az autรณkkal a mรณdszerek vรฉgrehajthatรณk: vezetรฉs, hรกtramenet, fรฉkezรฉs stb.
2) Tรกrgy
Egy objektum definiรกlhatรณ egy osztรกly pรฉldรกnyakรฉnt, รฉs egy programban egy osztรกlynak tรถbb pรฉldรกnya is lehet. Az objektum az egyik Java OOP fogalmak, amelyek mind az adatokat, mind az adatokon mลฑkรถdล fรผggvรฉnyt tartalmazzรกk. Pรฉldรกul โ szรฉk, kerรฉkpรกr, marker, toll, asztal, autรณ stb.
3) รrรถklรฉs
รrรถklรฉs az egyik Basic Concepts az OOP-ok kรถzรผl, amelyekben egy objektum a szรผlลobjektum tulajdonsรกgait รฉs viselkedรฉsรฉt szerzi meg. Szรผlล-gyerek kapcsolatot hoz lรฉtre kรฉt osztรกly kรถzรถtt. Robusztus รฉs termรฉszetes mechanizmust kรญnรกl bรกrmilyen szoftver rendszerezรฉsรฉre รฉs felรฉpรญtรฉsรฉre.
4) Polimorfizmus
polimorfizmus az egyik OOP-fogalomra utal Java amely egy vรกltozรณ, objektum vagy fรผggvรฉny azon kรฉpessรฉge, hogy tรถbbfรฉle formรกt รถltsรถn. Pรฉldรกul az angolban az ige futรกs mรกs jelentรฉse van, ha egyรผtt hasznรกlod egy laptop, lรกbversenyรฉs รผzleti. Itt megรฉrtjรผk a jelentรฉsรฉt futรกs a vele egyรผtt hasznรกlt tรถbbi szรณ alapjรกn. Ugyanez vonatkozik a polimorfizmusra is.
5) Absztrakciรณ
Absztrakciรณ az egyik OOP Concepts in Java amely lรฉnyegi jellemzลk megjelenรญtรฉse hรกttรฉrrรฉszletek nรฉlkรผl. Ez egy รบj adattรญpus lรฉtrehozรกsรกnak technikรกja, amely alkalmas egy adott alkalmazรกshoz. รrtsรผk meg ezt az egyik OOP-t Concepts pรฉldรกul autรณvezetรฉs kรถzben nem kell foglalkoznia a belsล mลฑkรถdรฉsรฉvel. Itt csak olyan alkatrรฉszekkel kell foglalkoznia, mint a kormรกnykerรฉk, a fogaskerekek, a gรกzpedรกl stb.
6) Kapszulรกzรกs
Egysรฉgbezรกrรกs az egyik legjobb Java Az OOP fogalmai az adatok รฉs a kรณd burkolรกsรกra. Ebben az OOPs koncepciรณban egy osztรกly vรกltozรณi mindig el vannak rejtve a tรถbbi osztรกly elลl. Csak az aktuรกlis osztรกly metรณdusaival รฉrhetล el. Pรฉldรกul az iskolรกban egy diรกk nem lรฉtezhet osztรกly nรฉlkรผl.
7) Egyesรผlet
Az asszociรกciรณ kรฉt objektum kapcsolata. Ez az egyik OOP Concepts in Java amely meghatรกrozza az objektumok kรถzรถtti sokfรฉlesรฉget. Ebben az OOP koncepciรณban minden objektumnak kรผlรถn รฉletciklusa van, รฉs nincs tulajdonosa. Pรฉldรกul sok diรกk kapcsolรณdhat egy tanรกrhoz, mรญg egy diรกk tรถbb tanรกrhoz is tรกrsulhat.
8) รsszevonรกs
Ebben a technikรกban minden objektumnak kรผlรถn รฉletciklusa van. Van azonban olyan tulajdonjog, hogy az utรณdobjektum nem tartozhat mรกsik szรผlลobjektumhoz. Vegyรผk pรฉldรกul az osztรกly/tรกrgy osztรกlyt รฉs a tanรกrt. Itt egyetlen tanรกr nem tartozhat tรถbb tanszรฉkhez, de mรฉg ha tรถrรถljรผk is a tanszรฉket, a tanรกri objektum soha nem semmisรผl meg.
9) รsszetรฉtel
A kompozรญciรณ az Aggregรกciรณ speciรกlis formรกja. โhalรกlโ kapcsolatnak is nevezik. Az utรณdobjektumok nem rendelkeznek รฉletciklussal, รญgy a szรผlลobjektum tรถrlรฉsekor az รถsszes utรณdobjektum is automatikusan tรถrlลdik. Ehhez vegyรผnk egy pรฉldรกt a Hรกzrรณl รฉs a szobรกkrรณl. Minden hรกznak tรถbb szobรกja is lehet. Egy szoba nem vรกlhat kรฉt kรผlรถnbรถzล hรกz rรฉszรฉvรฉ. Tehรกt, ha tรถrli, a hรกz szoba is tรถrlลdik.
Az OOP-ok (objektum-orientรกlt programozรกsi rendszer) elลnyei:
- OOP-k Concepts in Java kรถnnyen รฉrthetล รฉs vilรกgos modulรกris felรฉpรญtรฉst kรญnรกl a programok szรกmรกra.
- Az objektum-orientรกlt programok szรกmรกra lรฉtrehozott objektumok mรกs programokban รบjra felhasznรกlhatรณk. รgy jelentลs fejlesztรฉsi kรถltsรฉget takarรญt meg.
- A nagy programokat nehรฉz megรญrni, de ha a fejlesztล รฉs tervezล csapat kรถveti az OOPS koncepciรณt, akkor minimรกlis hibรกkkal jobban tudnak tervezni.
- Nรถveli a program modularitรกsรกt, mivel minden objektum egymรกstรณl fรผggetlenรผl lรฉtezik.
Az OOPS รถsszehasonlรญtรกsa mรกs programozรกsi stรญlusokkal egy pรฉlda segรญtsรฉgรฉvel
Pรฉldรกval รฉrtsรผk meg, hogyan Java OOP-k Concepts kรผlรถnbรถznek a tรถbbi programozรกsi megkรถzelรญtรฉstลl.
Programozรกsi nyelvek 3 elsลdleges tรญpusba sorolhatรณ
- Strukturรกlatlan programozรกsi nyelvek: A legprimitรญvebb az รถsszes programozรกsi nyelv kรถzรผl, amelyek szekvenciรกlis vezรฉrlรฉssel rendelkeznek. A kรณd ismรฉtlลdik a programon keresztรผl
- Strukturรกlt programozรกsi nyelvek: Nem szekvenciรกlis vezรฉrlรฉssel rendelkezik. A funkciรณk hasznรกlata lehetลvรฉ teszi a kรณd รบjrafelhasznรกlรกsรกt.
- Objektum orientรกlt programozรกsi nyelvek: Egyesรญti az adatokat รฉs a mลฑveleteket.
Kattints itt ha a videรณ nem รฉrhetล el
Nรฉzzรผk meg ezt a 3 tรญpust egy pรฉldรกn keresztรผl.
Tegyรผk fel, hogy szeretne lรฉtrehozni egy bankszoftvert olyan funkciรณkkal, mint
- Letรฉt
- Kifizetรฉs
- Egyenleg megjelenรญtรฉse
Strukturรกlatlan programozรกsi nyelvek
Az รถsszes programozรกsi nyelv kรถzรผl a legkorรกbbi a strukturรกlatlan programozรกsi nyelv volt. A banki alkalmazรกs nagyon elemi kรณdja strukturรกlatlan programozรกsi nyelven kรฉt vรกltozรณt tartalmaz, egy szรกmlaszรกmot รฉs egy mรกsik szรกmlaegyenleget.
int account_number=20; int account_balance=100;
Tegyรผk fel, hogy 100 dollรกrt letรฉtbe helyeztek.
account_balance=account_balance+100
Ezutรกn meg kell jelenรญtenie a szรกmlaegyenleget.
printf(โAccount Number=%d,account_number) printf(โAccount Balance=%d,account_balance)
Most 50 dollรกrt vonnak vissza.
account_balance=account_balance-50
Ismรฉt meg kell jelenรญtenie a szรกmlaegyenleget.
printf(โAccount Number=%d,account_number) printf(โAccount Balance=%d,account_balance)
Minden tovรกbbi befizetรฉsi vagy kifizetรฉsi mลฑvelethez โ ugyanazokat a sorokat ismรฉtelje meg รบjra รฉs รบjra.
Strukturรกlt programozรกs
A strukturรกlt programozรกs megรฉrkezรฉsรฉvel a kรณd ismรฉtlลdล sorai olyan struktรบrรกkba kerรผltek, mint a fรผggvรฉnyek vagy metรณdusok. Ha szรผksรฉges, a funkciรณ egyszerลฑ hรญvรกsa tรถrtรฉnik.
Objektumorientรกlt programozรกs
Programunkban adatokkal foglalkozunk, vagy az adatokon konkrรฉt mลฑveleteket hajtunk vรฉgre. Valรณjรกban az adatok birtoklรกsa รฉs bizonyos mลฑveletek vรฉgrehajtรกsa az adatokon minden szoftver alapvetล jellemzลje. A szoftverprogramozรกs szakรฉrtลi az Adatok รฉs a Operaciรณk. Ezรฉrt szรผletett meg az objektum-orientรกlt programozรกs, amelyet รกltalรกban OOPS-nak neveznek. Az objektumorientรกlt programozรกsi nyelvekben ugyanazon kรณd ugyanazokkal az adatokkal rendelkezik, รฉs bizonyos mลฑveleteket hajtanak vรฉgre az adatokon.
Class Account{
int account_number;
int account_balance;
public void showdata(){
system.out.println(โAccount Numberโ+account_number)
System.out.println(โAccount Balanceโ+ account_balance)
}
}
Az adatok รฉs a mลฑveletek kombinรกlรกsรกval szรกmos elลnyhรถz jutunk a strukturรกlis programozรกshoz kรฉpest, pl.
- Absztrakciรณ
- Egysรฉgbezรกrรกs
- รrรถklรฉs
- polimorfizmus
Ezeket rรฉszletesebben a kรถvetkezล oktatรณanyagok tรกrgyaljรกk



