logo

Objektumok és osztályok Java nyelven

  1. Objektum Java nyelven
  2. Osztály Java nyelven
  3. Példányváltozó a Java nyelven
  4. Módszer Java nyelven
  5. Példa objektumra és osztályra, amely a tanulók nyilvántartását vezeti
  6. 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

objektum Java nyelven

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:

    Állapot:egy objektum adatát (értékét) reprezentálja.Viselkedés:egy objektum viselkedését (funkcionalitását) reprezentálja, mint például befizetés, visszavonás stb.Identitás:Az objektumazonosság jellemzően egyedi azonosítón keresztül valósul meg. Az azonosító értéke nem látható a külső felhasználó számára. A JVM azonban belsőleg használja az egyes objektumok egyedi azonosítására.
Az objektum jellemzői Java nyelven

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:

    Mezők Mód Konstruktorok Blokkok Beágyazott osztály és felület
Osztály Java nyelven

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ó.

  1. Referenciaváltozóval
  2. Módszer szerint
  3. 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 
Java objektum értékekkel

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.

Különböző módok az objektumok létrehozására Java nyelven

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&apos;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+&apos; deposited&apos;); } //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+&apos; deposited&apos;); } //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){>