OOP-k Concepts in Java

hoppรก fogalmak java-ban

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รณ

  1. 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
  2. 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.
  3. 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

  1. Letรฉt
  2. Kifizetรฉs
  3. 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)

Strukturรกlatlan programozรกs

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.

Strukturรกlt programozรกs

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)
}
}

Objektumorientรกlt programozรกs

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

Foglald รถssze ezt a bejegyzรฉst a kรถvetkezล‘kรฉppen: