Java – Objektumok és osztályok
A Java egy objektum-orientált nyelv. Az objektumorientált szolgáltatással rendelkező nyelvként a Java a következő alapvető fogalmakat támogatja:
- polimorfizmus
- öröklés
- beágyazás
- Absztrakció
- Osztályok
- Objektumok
- Példány
- Módszer
- Üzenetek továbbítása
Ebben a fejezetben megvizsgáljuk az – osztályok és objektumok – fogalmakat.
-
Objektum – Az objektumok állapota és viselkedése van. Példa: A kutyának vannak állapotai – színe, neve, fajtája, valamint viselkedése – farokcsóválás, ugatás, evés. Az objektum egy osztály példánya.
-
Osztály – Az osztály definiálható sablonként / tervrajzként, amely leírja azt a viselkedést / állapotot, amelyet a típusa objektuma támogat.
Objektumok a Java-ban
Most nézzük meg mélyen, mi az objektum. Ha figyelembe vesszük a való világot, sok tárgyat találhatunk magunk körül, autókat, kutyákat, embereket stb. Mindezeknek az objektumoknak van állapota és viselkedése.
Ha kutyát veszünk figyelembe, akkor annak állapota is – név, fajta, szín és a viselkedés – ugatás, farokcsóválás, futás.
Ha összehasonlítja a szoftverobjektumot egy valós objektummal, nagyon hasonló tulajdonságokkal rendelkeznek.
A szoftverobjektumok állapota és viselkedése is van. A szoftverobjektum állapota mezőkben tárolódik, és a viselkedés metódusokon keresztül jelenik meg.
Tehát a szoftverfejlesztésben a módszerek egy objektum belső állapotán működnek, az objektum-objektum kommunikáció pedig metódusokon keresztül történik. .
Osztályok a Java-ban
Az osztály tervrajz, amelyből egyedi objektumok jönnek létre.
Az alábbiakban bemutatunk egy osztálymintát.
Példa
public class Dog { String breed; int age; String color; void barking() { } void hungry() { } void sleeping() { }}
Egy osztály a következő változótípusok bármelyikét tartalmazhatja.
-
Helyi változók – Változók A metódusokban definiált konstruktorokat vagy blokkokat helyi változóknak nevezzük. A változót a metóduson belül deklaráljuk és inicializáljuk, és a változó megsemmisül, amikor a metódus befejeződött. – A példányváltozók egy osztályon belüli, de bármilyen módszeren kívüli változók. Ezek a változók az osztály példányosításakor inicializálódnak. A példányváltozók az adott cla bármelyik módszeréből, konstruktorából vagy blokkjából érhetők el ss.
-
Osztályváltozók – Az osztályváltozók olyan változók, amelyek egy statisztikus kulcsszóval deklarálva vannak egy osztályon belül, bármilyen módszeren kívül.
Egy osztály tetszőleges számú metódussal rendelkezhet a különféle módszerek értékének eléréséhez. A fenti példában az ugatás (), az éhes () és az alvás () módszerek.
Az alábbiakban felsorolunk néhány fontos témát, amelyeket meg kell vitatni a Java nyelv osztályainak vizsgálata során.
Konstruktorok
Az órákról folytatott megbeszélések során az egyik legfontosabb altéma a konstruktor lenne. Minden osztálynak van kivitelezője. Ha nem írunk kifejezetten konstruktort egy osztályhoz, a Java fordító létrehoz egy alapértelmezett konstruktort az adott osztály számára.
Minden új objektum létrehozásakor legalább egy konstruktort hívnak meg. A konstruktorok fő szabálya, hogy ugyanazzal a névvel kell rendelkezniük, mint az osztály. Egy osztálynak több konstruktora lehet.
Az alábbiakban bemutatunk egy példát egy konstruktorra –
példa
public class Puppy { public Puppy() { } public Puppy(String name) { // This constructor has one parameter, name. }}
A Java támogatja a Singleton osztályokat is, ahol csak egy példányt hozhat létre egy osztályból.
Megjegyzés – Két különböző típusú konstruktorunk van. A konstruktorokat a következő fejezetekben részletesen megvitatjuk.
Objektum létrehozása
Mint korábban említettük, egy osztály biztosítja az objektumok tervrajzát. Tehát alapvetően egy objektum egy osztályból jön létre. A Java-ban az új kulcsszót használják új objektumok létrehozására.
Három lépésből áll, amikor objektumot hoznak létre egy osztályból –
-
Deklaráció – Változó deklaráció objektumtípusú változónévvel.
-
Instantiation – Az objektum létrehozásához az “új” kulcsszót használják.
-
Inicializálás – Az “új” kulcsszót egy konstruktor hívja meg. Ez a hívás inicializálja az új objektumot.
Az alábbiakban bemutatunk egy példát egy objektum létrehozására –
Példa
Ha lefordítunk és futtassa a fenti programot, akkor a következő eredményt hozza –
Output
Passed Name is :tommy
Példányváltozók és módszerek elérése
A példányváltozókhoz és módszerekhez a létrehozott objektumokon keresztül lehet hozzáférni. A példányváltozó eléréséhez a következő a teljesen minősített elérési út –
Példa
Ez a példa elmagyarázza, hogyan lehet hozzáférni egy osztály példányváltozóihoz és metódusaihoz.
Ha a fenti programot lefordítjuk és futtatjuk, akkor az a következő eredményt adja –
Output
Name chosen is :tommyPuppy"s age is :2Variable Value :2
Forrásfájl-deklarációs szabályok
A szakasz utolsó részeként most nézzük meg a forrásfájl-deklarációs szabályokat. Ezek a szabályok elengedhetetlenek az osztályok, az importálási utasítások és a csomag-utasítások forrásfájlban történő deklarálásakor.
-
Forrásfájlonként csak egy nyilvános osztály lehet.
-
A forrásfájlnak több nem nyilvános osztálya is lehet.
-
A nyilvános osztálynévnek meg kell egyeznie a forrásfájl nevével is, amelyet a végén a .java csatoljon. Például: az osztály neve nyilvános osztály alkalmazottja {} akkor a forrásfájl neve Employee.java legyen.
-
Ha az osztály egy csomagban van definiálva, akkor a csomag utasításnak kell lennie a forrásfájl első utasításának.
-
Ha vannak import utasítások, akkor azokat a csomag utasítás és a. közé kell írni osztálynyilatkozat. Ha nincsenek csomag utasítások, akkor az importálási utasításnak kell lennie az első sornak a forrásfájlban.
-
Az importálás és a csomag utasítások a forrásfájlban található összes osztályra vonatkoznak . A forrásfájlban nem lehet különféle importálási és / vagy csomagkivonatokat deklarálni különböző osztályokra.
Az osztályoknak több hozzáférési szintjük van, és különböző típusú osztályok vannak; absztrakt osztályok, utolsó osztályok stb. Mindezeket a hozzáférés-módosítók fejezetben magyarázzuk el.
A fent említett osztálytípusok mellett a Java rendelkezik speciális osztályokkal, amelyeket Belső osztályok és Névtelen osztályok néven ismertek.
Java csomag
Egyszerű szavakkal az osztályok és interfészek kategorizálásának egyik módja. Java-alkalmazások fejlesztésekor több száz osztályt és interfészt írnak, ezért ezeknek az osztályoknak a kategorizálása elengedhetetlen, és az életet is sokkal könnyebbé teszi.
Nyilatkozatok importálása
Java-ban, ha teljesen minősített név, amely tartalmazza a csomagot és az osztály nevét, akkor a fordító könnyen megtalálhatja a forráskódot vagy osztályokat. Az Import utasítás egy módja annak, hogy a fordító számára megfelelő helyet találjon az adott osztály megtalálásához.
Például a következő sor arra kéri a fordítót, hogy töltse be az összes elérhető osztályt a java_installation / java / io – könyvtárban.
import java.io.*;
Egyszerű esettanulmány
Esettanulmányunkhoz két osztályt fogunk létrehozni. Ezek az Employee és az EmployeeTest.
Először nyissa meg a Jegyzettömböt, és adja hozzá a következő kódot. Ne feledje, hogy ez az Alkalmazottak osztály, az osztály pedig nyilvános osztály. Most mentse el ezt a forrásfájlt Employee.java néven.
Az Employee osztály négy példányváltozóval rendelkezik – név, életkor, megnevezés és fizetés. Az osztálynak van egy kifejezetten definiált konstruktora, amely egy paramétert vesz fel.
Példa
Amint azt ebben az oktatóanyagban korábban említettük, a feldolgozás a fő módszerből indul. Ezért ahhoz, hogy ezt az Employee osztályt futtathassuk, rendelkeznünk kell egy fő módszerrel és objektumokat kell létrehozni. Külön osztályt fogunk létrehozni ezekhez a feladatokhoz.
Az alábbiakban látható az EmployeeTest osztály, amely létrehozza az Employee osztály két példányát, és meghívja az egyes objektumok metódusait, hogy minden változóhoz értéket rendeljen.
Mentse a következő kódot az EmployeeTest.java fájlba.
Most fordítsa le mindkét osztályt, majd futtassa az EmployeeTest parancsot, hogy az eredményt a következőképpen láthassa –
Output
Mi a következő?
A következő munkamenetben megvitatjuk az alapvető adattípusokat a Java-ban és azok felhasználhatóságát a Java-alkalmazások fejlesztésekor.