logo

Objekty a triedy v Jave

  1. Objekt v jazyku Java
  2. Trieda v Jave
  3. Premenná inštancie v jazyku Java
  4. Metóda v Jave
  5. Príklad objektu a triedy, ktorá vedie záznamy o študentovi
  6. Anonymný objekt

Na tejto stránke sa dozvieme o objektoch a triedach Java. V technike objektovo orientovaného programovania navrhujeme program pomocou objektov a tried.

Objekt v jazyku Java je fyzická aj logická entita, zatiaľ čo trieda v jazyku Java je iba logická entita.

Čo je objekt v Jave

objekt v jazyku Java

Entita, ktorá má stav a správanie, je známa ako objekt, napr. stolička, bicykel, fixka, pero, stôl, auto atď. Môže byť fyzická alebo logická (hmotná a nehmotná). Príkladom nehmotného predmetu je bankový systém.

Objekt má tri vlastnosti:

    Štát:predstavuje dáta (hodnotu) objektu.Správanie:predstavuje správanie (funkčnosť) objektu ako vklad, výber atď.identita:Identita objektu sa zvyčajne implementuje prostredníctvom jedinečného ID. Hodnota ID nie je viditeľná pre externého používateľa. JVM ho však používa interne na jedinečnú identifikáciu každého objektu.
Charakteristika objektu v Jave

Napríklad pero je objekt. Volá sa Reynolds; farba je biela, známa ako jeho stav. Používa sa na písanie, takže písanie je jeho správaním.

Objekt je inštanciou triedy. Trieda je šablóna alebo plán, z ktorého sa vytvárajú objekty. Objekt je teda inštanciou (výsledkom) triedy.

Definície objektu:

  • Objekt je entita reálneho sveta .
  • Objekt je runtime entita .
  • Objekt je entita, ktorá má stav a správanie .
  • Objekt je inštancia triedy .

Čo je trieda v jazyku Java

Trieda je skupina objektov, ktoré majú spoločné vlastnosti. Je to šablóna alebo plán, z ktorého sa vytvárajú objekty. Je to logická entita. Nemôže to byť fyzické.

Trieda v jazyku Java môže obsahovať:

    Polia Metódy Konštruktéri Bloky Vnorená trieda a rozhranie
Trieda v Jave

Syntax na deklarovanie triedy:

 class { field; method; } 

Premenná inštancie v jazyku Java

Premenná, ktorá je vytvorená vo vnútri triedy, ale mimo metódy, je známa ako premenná inštancie. Premenná inštancie nezískava pamäť v čase kompilácie. Pri vytváraní objektu alebo inštancie získava pamäť za behu. Preto je známa ako premenná inštancie.


Metóda v Jave

V jazyku Java je metóda ako funkcia, ktorá sa používa na odhalenie správania objektu.

Výhoda metódy

  • Opätovná použiteľnosť kódu
  • Optimalizácia kódu

nové kľúčové slovo v jazyku Java

Nové kľúčové slovo sa používa na pridelenie pamäte za behu. Všetky objekty získajú pamäť v oblasti pamäte haldy.


Príklad objektu a triedy: hlavný v rámci triedy

V tomto príklade sme vytvorili triedu Študent, ktorá má dva dátové členy id a name. Vytvoríme objekt triedy Študent pomocou nového kľúčového slova a vytlačíme hodnotu objektu.

Tu vytvárame metódu main() vo vnútri triedy.

Súbor: 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); } } 
Vyskúšajte to

Výkon:

 0 null 

Príklad objektu a triedy: hlavný mimo triedy

Pri vývoji v reálnom čase vytvárame triedy a používame ich z inej triedy. Je to lepší prístup ako predchádzajúci. Pozrime sa na jednoduchý príklad, kde máme metódu main() v inej triede.

mravec vs človek

Môžeme mať viacero tried v rôznych súboroch Java alebo v jednom súbore Java. Ak definujete viacero tried v jednom zdrojovom súbore Java, je dobré uložiť názov súboru s názvom triedy, ktorý má metódu main().

Súbor: 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); } } 
Vyskúšajte to

Výkon:

 0 null 

3 spôsoby inicializácie objektu

Existujú 3 spôsoby, ako inicializovať objekt v Jave.

  1. Podľa referenčnej premennej
  2. Podľa metódy
  3. Podľa konštruktéra

1) Príklad objektu a triedy: Inicializácia pomocou odkazu

Inicializácia objektu znamená ukladanie údajov do objektu. Pozrime sa na jednoduchý príklad, kde ideme inicializovať objekt cez referenčnú premennú.

Súbor: 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 } } 
Vyskúšajte to

Výkon:

 101 Sonoo 

Môžeme tiež vytvoriť viacero objektov a ukladať do nich informácie prostredníctvom referenčnej premennej.

Súbor: 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); } } 
Vyskúšajte to

Výkon:

 101 Sonoo 102 Amit 

2) Príklad objektu a triedy: Inicializácia pomocou metódy

V tomto príklade vytvárame dva objekty triedy Student a inicializujeme hodnotu pre tieto objekty vyvolaním metódy insertRecord. Tu zobrazujeme stav (údaje) objektov vyvolaním metódy displayInformation().

Súbor: 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(); } } 
Vyskúšajte to

Výkon:

 111 Karan 222 Aryan 
Objekt v jazyku Java s hodnotami

Ako môžete vidieť na obrázku vyššie, objekt dostane pamäť v oblasti pamäte haldy. Referenčná premenná odkazuje na objekt alokovaný v oblasti pamäte haldy. S1 aj s2 sú tu referenčné premenné, ktoré odkazujú na objekty alokované v pamäti.


3) Príklad objektu a triedy: Inicializácia pomocou konštruktora

O konštruktoroch v Jave sa dozvieme neskôr.


Objekt a trieda Príklad: Zamestnanec

Pozrime sa na príklad, kde vedieme záznamy o zamestnancoch.

získať aktuálny dátum v jave

Súbor: 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(); } } 
Vyskúšajte to

Výkon:

 101 ajeet 45000.0 102 irfan 25000.0 103 nakul 55000.0 

Príklad objektu a triedy: Obdĺžnik

Je uvedený ďalší príklad, ktorý udržiava záznamy triedy Rectangle.

Súbor: TestRectangle1.java

 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(); } } 
Vyskúšajte to

Výkon:

 55 45 

Aké sú rôzne spôsoby vytvorenia objektu v jazyku Java?

Existuje mnoho spôsobov, ako vytvoriť objekt v jazyku Java. Oni sú:

  • Podľa nového kľúčového slova
  • Metódou newInstance().
  • Metódou clone().
  • Deserializáciou
  • Továrenskou metódou atď.

Tieto spôsoby vytvárania objektu sa naučíme neskôr.

Rôzne spôsoby vytvorenia objektu v jazyku Java

Anonymný objekt

Anonymný znamená jednoducho bezmenný. Objekt, ktorý nemá žiadnu referenciu, je známy ako anonymný objekt. Dá sa použiť len v čase vytvárania objektu.

Ak musíte objekt použiť iba raz, anonymný objekt je dobrý prístup. Napríklad:

 new Calculation();//anonymous object 

Spôsob volania cez odkaz:

 Calculation c=new Calculation(); c.fact(5); 

Volanie metódy cez anonymný objekt

 new Calculation().fact(5); 

Pozrime sa na úplný príklad anonymného objektu v jazyku Java.

 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++){>

Vytváranie viacerých objektov iba jedným typom

Môžeme vytvoriť viacero objektov iba jedným typom, ako to robíme v prípade primitív.

Inicializácia primitívnych premenných:

 int a=10, b=20; 

Inicializácia referenčných premenných:

 Rectangle r1=new Rectangle(), r2=new Rectangle();//creating two objects 

Pozrime sa na príklad:

 //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(); } } 
Vyskúšajte to

Výkon:

 55 45 

Príklad skutočného sveta: Účet

Súbor: 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){>