- Objektum Java nyelven
- Osztály Java nyelven
- Példányváltozó a Java nyelven
- Módszer Java nyelven
- Példa objektumra és osztályra, amely a tanulók nyilvántartását vezeti
- Névtelen objektum
Ezen az oldalon a Java objektumokról és osztályokról fogunk tanulni. Objektumorientált programozási technikában objektumok és osztályok felhasználásával tervezünk programot.
Egy objektum a Java-ban a fizikai és egy logikai entitás, míg a Java-ban egy osztály csak logikai entitás.
Mi az objektum a Java-ban
Az állapottal és viselkedéssel rendelkező entitást tárgyként ismerjük, például szék, kerékpár, marker, toll, asztal, autó stb. Lehet fizikai vagy logikai (megfogható és megfoghatatlan). Az immateriális tárgy példája a bankrendszer.
Egy objektumnak három jellemzője van:
Például a toll egy tárgy. A neve Reynolds; színe fehér, állapotaként ismert. Írásra használják, tehát az írás a viselkedése.
Az objektum egy osztály példánya. Az osztály egy sablon vagy terv, amelyből objektumok jönnek létre. Tehát egy objektum egy osztály példánya (eredménye).
Objektum definíciók:
- Egy tárgy az egy valós entitás .
- Egy tárgy az egy futásidejű entitás .
- A tárgy az olyan entitás, amelynek van állapota és viselkedése .
- A tárgy az osztály példánya .
Mi az osztály a Java nyelven
Az osztály olyan objektumok csoportja, amelyek közös tulajdonságokkal rendelkeznek. Ez egy sablon vagy terv, amelyből objektumokat készítenek. Ez egy logikai entitás. Ez nem lehet fizikai.
A Java osztály a következőket tartalmazhatja:
Szintaxis egy osztály deklarálásához:
class { field; method; }
Példányváltozó a Java nyelven
Az osztályon belül, de a metóduson kívül létrehozott változót példányváltozónak nevezzük. A példányváltozó nem kap memóriát a fordítási időben. Futás közben kap memóriát egy objektum vagy példány létrehozásakor. Éppen ezért példányváltozóként ismert.
Módszer Java nyelven
A Java-ban a metódus olyan, mint egy függvény, amelyet egy objektum viselkedésének feltárására használnak.
A módszer előnye
- Kód újrafelhasználhatósága
- Kód optimalizálás
új kulcsszó a Java nyelven
Az új kulcsszó a memória lefoglalására szolgál futás közben. Minden objektum memóriát kap a Heap memóriaterületen.
Objektum és osztály Példa: fő az osztályon belül
Ebben a példában létrehoztunk egy Diák osztályt, amelynek két adattagja van, azonosítója és neve. Új kulcsszóval létrehozzuk a Student osztály objektumát, és kinyomtatjuk az objektum értékét.
Itt létrehozunk egy main() metódust az osztályon belül.
Fájl: Student.java
//Java Program to illustrate how to define a class and fields //Defining a Student class. class Student{ //defining fields int id;//field or data member or instance variable String name; //creating main method inside the Student class public static void main(String args[]){ //Creating an object or instance Student s1=new Student();//creating an object of Student //Printing values of the object System.out.println(s1.id);//accessing member through reference variable System.out.println(s1.name); } }Tesztelje most
Kimenet:
0 null
Objektum és osztály Példa: fő az osztályon kívül
A valós idejű fejlesztés során osztályokat hozunk létre, és egy másik osztályból használjuk. Ez egy jobb megközelítés, mint az előző. Nézzünk egy egyszerű példát, ahol a main() metódus van egy másik osztályban.
strsep
Több osztályunk is lehet különböző Java fájlokban vagy egyetlen Java fájlban. Ha több osztályt ad meg egyetlen Java forrásfájlban, célszerű a fájlnevet a main() metódussal rendelkező osztálynévvel menteni.
Fájl: TestStudent1.java
//Java Program to demonstrate having the main method in //another class //Creating Student class. class Student{ int id; String name; } //Creating another class TestStudent1 which contains the main method class TestStudent1{ public static void main(String args[]){ Student s1=new Student(); System.out.println(s1.id); System.out.println(s1.name); } }Tesztelje most
Kimenet:
0 null
3 módszer az objektum inicializálására
Az objektum Java-ban háromféleképpen inicializálható.
- Referenciaváltozóval
- Módszer szerint
- A kivitelező szerint
1) Példa objektumra és osztályra: Inicializálás hivatkozáson keresztül
Az objektum inicializálása adatok tárolását jelenti az objektumban. Nézzünk egy egyszerű példát, ahol az objektumot egy referenciaváltozón keresztül inicializáljuk.
Fájl: TestStudent2.java
class Student{ int id; String name; } class TestStudent2{ public static void main(String args[]){ Student s1=new Student(); s1.id=101; s1.name='Sonoo'; System.out.println(s1.id+' '+s1.name);//printing members with a white space } }Tesztelje most
Kimenet:
101 Sonoo
Több objektumot is létrehozhatunk, és információkat tárolhatunk benne referenciaváltozón keresztül.
Fájl: TestStudent3.java
class Student{ int id; String name; } class TestStudent3{ public static void main(String args[]){ //Creating objects Student s1=new Student(); Student s2=new Student(); //Initializing objects s1.id=101; s1.name='Sonoo'; s2.id=102; s2.name='Amit'; //Printing data System.out.println(s1.id+' '+s1.name); System.out.println(s2.id+' '+s2.name); } }Tesztelje most
Kimenet:
101 Sonoo 102 Amit
2) Objektum és osztály példa: inicializálás metóduson keresztül
Ebben a példában létrehozzuk a Student osztály két objektumát, és inicializáljuk ezeknek az objektumoknak az értékét az insertRecord metódus meghívásával. Itt az objektumok állapotát (adatait) jelenítjük meg a displayInformation() metódus meghívásával.
Fájl: TestStudent4.java
class Student{ int rollno; String name; void insertRecord(int r, String n){ rollno=r; name=n; } void displayInformation(){System.out.println(rollno+' '+name);} } class TestStudent4{ public static void main(String args[]){ Student s1=new Student(); Student s2=new Student(); s1.insertRecord(111,'Karan'); s2.insertRecord(222,'Aryan'); s1.displayInformation(); s2.displayInformation(); } }Tesztelje most
Kimenet:
111 Karan 222 Aryan
Amint a fenti ábrán látható, az objektum a halom memóriaterületen kapja meg a memóriát. A referenciaváltozó a kupac memóriaterületen lefoglalt objektumra vonatkozik. Itt az s1 és az s2 referenciaváltozók, amelyek a memóriában lefoglalt objektumokra hivatkoznak.
3) Objektum és osztály példa: Inicializálás konstruktoron keresztül
A Java konstruktorokról később fogunk tanulni.
Tárgy és osztály Példa: Alkalmazott
Lássunk egy példát, ahol nyilvántartást vezetünk az alkalmazottakról.
Fájl: TestEmployee.java
class Employee{ int id; String name; float salary; void insert(int i, String n, float s) { id=i; name=n; salary=s; } void display(){System.out.println(id+' '+name+' '+salary);} } public class TestEmployee { public static void main(String[] args) { Employee e1=new Employee(); Employee e2=new Employee(); Employee e3=new Employee(); e1.insert(101,'ajeet',45000); e2.insert(102,'irfan',25000); e3.insert(103,'nakul',55000); e1.display(); e2.display(); e3.display(); } }Tesztelje most
Kimenet:
101 ajeet 45000.0 102 irfan 25000.0 103 nakul 55000.0
Objektum és osztály Példa: Téglalap
Adott egy másik példa, amely a Rectangle osztály rekordjait karbantartja.
Fájl: TestRectangle1.java
eltávolítása a tömblistáról
class Rectangle{ int length; int width; void insert(int l, int w){ length=l; width=w; } void calculateArea(){System.out.println(length*width);} } class TestRectangle1{ public static void main(String args[]){ Rectangle r1=new Rectangle(); Rectangle r2=new Rectangle(); r1.insert(11,5); r2.insert(3,15); r1.calculateArea(); r2.calculateArea(); } }Tesztelje most
Kimenet:
55 45
Milyen különböző módokon hozhat létre objektumot Java nyelven?
Java-ban sokféleképpen lehet objektumot létrehozni. Ők:
- Új kulcsszó szerint
- newInstance() metódussal
- Clone() metódussal
- Deserializációval
- Gyári módszerrel stb.
Később megtanuljuk ezeket az objektumok létrehozásának módjait.
Névtelen objektum
Az Anonymous egyszerűen azt jelenti, hogy névtelen. Az olyan objektumot, amelynek nincs hivatkozása, névtelen objektumnak nevezzük. Csak az objektum létrehozásakor használható.
Ha egy objektumot csak egyszer kell használnia, egy névtelen objektum jó megoldás. Például:
new Calculation();//anonymous object
Hívási mód referencián keresztül:
Calculation c=new Calculation(); c.fact(5);
Módszer hívása névtelen objektumon keresztül
new Calculation().fact(5);
Nézzük meg a teljes példát egy névtelen objektumra Java nyelven.
class Calculation{ void fact(int n){ int fact=1; for(int i=1;i<=n;i++){ fact="fact*i;" } system.out.println('factorial is '+fact); public static void main(string args[]){ new calculation().fact(5); calling method with anonymous object < pre> <p>Output:</p> <pre> Factorial is 120 </pre> <a id="objectbyonetype"></a> <h3>Creating multiple objects by one type only</h3> <p>We can create multiple objects by one type only as we do in case of primitives.</p> <p>Initialization of primitive variables:</p> <pre> int a=10, b=20; </pre> <p>Initialization of refernce variables:</p> <pre> Rectangle r1=new Rectangle(), r2=new Rectangle();//creating two objects </pre> <p>Let's see the example:</p> <pre> //Java Program to illustrate the use of Rectangle class which //has length and width data members class Rectangle{ int length; int width; void insert(int l,int w){ length=l; width=w; } void calculateArea(){System.out.println(length*width);} } class TestRectangle2{ public static void main(String args[]){ Rectangle r1=new Rectangle(),r2=new Rectangle();//creating two objects r1.insert(11,5); r2.insert(3,15); r1.calculateArea(); r2.calculateArea(); } } </pre> <span> Test it Now </span> <p>Output:</p> <pre> 55 45 </pre> <h3>Real World Example: Account</h3> <p>File: TestAccount.java</p> <pre> //Java Program to demonstrate the working of a banking-system //where we deposit and withdraw amount from our account. //Creating an Account class which has deposit() and withdraw() methods class Account{ int acc_no; String name; float amount; //Method to initialize object void insert(int a,String n,float amt){ acc_no=a; name=n; amount=amt; } //deposit method void deposit(float amt){ amount=amount+amt; System.out.println(amt+' deposited'); } //withdraw method void withdraw(float amt){ if(amount <amt){ system.out.println('insufficient balance'); }else{ amount="amount-amt;" system.out.println(amt+' withdrawn'); } method to check the balance of account void checkbalance(){system.out.println('balance is: '+amount);} display values an object display(){system.out.println(acc_no+' '+name+' creating a test class deposit and withdraw testaccount{ public static main(string[] args){ a1="new" account(); a1.insert(832345,'ankit',1000); a1.display(); a1.checkbalance(); a1.deposit(40000); a1.withdraw(15000); }} < pre> <span> Test it Now </span> <p>Output:</p> <pre> 832345 Ankit 1000.0 Balance is: 1000.0 40000.0 deposited Balance is: 41000.0 15000.0 withdrawn Balance is: 26000.0 </pre></amt){></pre></=n;i++){>
Több objektum létrehozása csak egy típussal
Csak egy típussal tudunk több objektumot létrehozni, mint a primitívek esetében.
Primitív változók inicializálása:
int a=10, b=20;
A hivatkozási változók inicializálása:
Rectangle r1=new Rectangle(), r2=new Rectangle();//creating two objects
Lássuk a példát:
//Java Program to illustrate the use of Rectangle class which //has length and width data members class Rectangle{ int length; int width; void insert(int l,int w){ length=l; width=w; } void calculateArea(){System.out.println(length*width);} } class TestRectangle2{ public static void main(String args[]){ Rectangle r1=new Rectangle(),r2=new Rectangle();//creating two objects r1.insert(11,5); r2.insert(3,15); r1.calculateArea(); r2.calculateArea(); } }Tesztelje most
Kimenet:
55 45
Példa a való világból: Számla
Fájl: TestAccount.java
//Java Program to demonstrate the working of a banking-system //where we deposit and withdraw amount from our account. //Creating an Account class which has deposit() and withdraw() methods class Account{ int acc_no; String name; float amount; //Method to initialize object void insert(int a,String n,float amt){ acc_no=a; name=n; amount=amt; } //deposit method void deposit(float amt){ amount=amount+amt; System.out.println(amt+' deposited'); } //withdraw method void withdraw(float amt){ if(amount <amt){ system.out.println(\'insufficient balance\'); }else{ amount="amount-amt;" system.out.println(amt+\' withdrawn\'); } method to check the balance of account void checkbalance(){system.out.println(\'balance is: \'+amount);} display values an object display(){system.out.println(acc_no+\' \'+name+\' creating a test class deposit and withdraw testaccount{ public static main(string[] args){ a1="new" account(); a1.insert(832345,\'ankit\',1000); a1.display(); a1.checkbalance(); a1.deposit(40000); a1.withdraw(15000); }} < pre> <span> Test it Now </span> <p>Output:</p> <pre> 832345 Ankit 1000.0 Balance is: 1000.0 40000.0 deposited Balance is: 41000.0 15000.0 withdrawn Balance is: 26000.0 </pre></amt){>=n;i++){>