- Objekt v Javi
- Razred v Javi
- Spremenljivka primerka v Javi
- Metoda v Javi
- Primer predmeta in razreda, ki vodi evidenco študentov
- Anonimni predmet
Na tej strani bomo spoznali objekte in razrede Java. V tehniki objektno orientiranega programiranja načrtujemo program z uporabo objektov in razredov.
Objekt v Javi je fizična in tudi logična entiteta, medtem ko je razred v Javi samo logična entiteta.
Kaj je objekt v Javi
Entiteta, ki ima stanje in vedenje, je znana kot predmet, npr. stol, kolo, marker, pisalo, miza, avto itd. Lahko je fizična ali logična (opredmetena in nematerialna). Primer neopredmetenega predmeta je bančni sistem.
Objekt ima tri značilnosti:
Na primer, Pen je predmet. Ime mu je Reynolds; barva je bela, znana kot njeno stanje. Uporablja se za pisanje, zato je pisanje njegovo vedenje.
Objekt je primerek razreda. Razred je predloga ali načrt, iz katerega so ustvarjeni predmeti. Objekt je torej primerek (rezultat) razreda.
Definicije predmetov:
- Objekt je entiteta iz resničnega sveta .
- Objekt je izvajalna entiteta .
- Objekt je subjekt, ki ima stanje in vedenje .
- Objekt je primerek razreda .
Kaj je razred v Javi
Razred je skupina predmetov, ki imajo skupne lastnosti. Je predloga ali načrt, iz katerega so ustvarjeni predmeti. Je logična entiteta. Ne more biti fizično.
Razred v Javi lahko vsebuje:
Sintaksa za deklaracijo razreda:
class { field; method; }
Spremenljivka primerka v Javi
Spremenljivka, ki je ustvarjena znotraj razreda, a zunaj metode, je znana kot spremenljivka primerka. Spremenljivka primerka med prevajanjem ne dobi pomnilnika. Pomnilnik dobi med izvajanjem, ko je ustvarjen objekt ali primerek. Zato je znana kot spremenljivka primerka.
Metoda v Javi
V Javi je metoda podobna funkciji, ki se uporablja za razkrivanje obnašanja predmeta.
Prednost metode
- Ponovna uporabnost kode
- Optimizacija kode
nova ključna beseda v Javi
Nova ključna beseda se uporablja za dodeljevanje pomnilnika med izvajanjem. Vsi objekti dobijo pomnilnik v območju pomnilnika kopice.
Primer predmeta in razreda: glavni znotraj razreda
V tem primeru smo ustvarili razred študenta, ki ima dva podatkovna člana id in ime. Ustvarimo objekt razreda Student z novo ključno besedo in izpišemo vrednost objekta.
Tukaj ustvarjamo metodo main() znotraj razreda.
Datoteka: 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); } }Preizkusite zdaj
Izhod:
0 null
Primer predmeta in razreda: main zunaj razreda
Pri razvoju v realnem času ustvarimo razrede in jih uporabimo iz drugega razreda. To je boljši pristop od prejšnjega. Oglejmo si preprost primer, kjer imamo metodo main() v drugem razredu.
preveri, ali je v Javi nič
Lahko imamo več razredov v različnih datotekah Java ali eno datoteko Java. Če definirate več razredov v eni izvorni datoteki Java, je dobro, da ime datoteke shranite z imenom razreda, ki ima metodo main().
Datoteka: 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); } }Preizkusite zdaj
Izhod:
0 null
3 načini inicializacije objekta
Obstajajo 3 načini inicializacije objekta v Javi.
- Po referenčni spremenljivki
- Po metodi
- Po konstruktorju
1) Primer predmeta in razreda: Inicializacija prek reference
Inicializacija objekta pomeni shranjevanje podatkov v objekt. Oglejmo si preprost primer, kjer bomo objekt inicializirali prek referenčne spremenljivke.
Datoteka: 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 } }Preizkusite zdaj
Izhod:
101 Sonoo
Prav tako lahko ustvarimo več objektov in vanje shranimo informacije prek referenčne spremenljivke.
Datoteka: 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); } }Preizkusite zdaj
Izhod:
101 Sonoo 102 Amit
2) Primer predmeta in razreda: Inicializacija prek metode
V tem primeru ustvarjamo dva predmeta razreda Student in inicializiramo vrednost teh objektov s klicem metode insertRecord. Tukaj prikazujemo stanje (podatke) objektov s klicem metode displayInformation().
Datoteka: 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(); } }Preizkusite zdaj
Izhod:
111 Karan 222 Aryan
Kot lahko vidite na zgornji sliki, objekt dobi pomnilnik v območju pomnilnika kopice. Referenčna spremenljivka se nanaša na objekt, dodeljen v območju pomnilnika kopice. Tukaj sta s1 in s2 referenčni spremenljivki, ki se nanašata na objekte, dodeljene v pomnilniku.
3) Primer predmeta in razreda: Inicializacija prek konstruktorja
Kasneje bomo spoznali konstruktorje v Javi.
Primer predmeta in razreda: Zaposleni
Poglejmo primer, ko vodimo evidenco zaposlenih.
Datoteka: 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(); } }Preizkusite zdaj
Izhod:
101 ajeet 45000.0 102 irfan 25000.0 103 nakul 55000.0
Primer predmeta in razreda: pravokotnik
Podan je še en primer, ki vzdržuje zapise razreda Rectangle.
Datoteka: 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(); } }Preizkusite zdaj
Izhod:
55 45
Kakšni so različni načini ustvarjanja predmeta v Javi?
Obstaja veliko načinov za ustvarjanje predmeta v Javi. To so:
- Z novo ključno besedo
- Z metodo newInstance().
- Z metodo clone().
- Z deserializacijo
- Po tovarniški metodi itd.
Teh načinov ustvarjanja predmeta se bomo naučili pozneje.
Anonimni predmet
Anonimno preprosto pomeni brezimno. Objekt, ki nima reference, je znan kot anonimni objekt. Uporablja se lahko samo v času ustvarjanja predmeta.
kaj je samodejno ožičeno v Javi
Če morate objekt uporabiti samo enkrat, je anonimni objekt dober pristop. Na primer:
new Calculation();//anonymous object
Metoda klica prek reference:
Calculation c=new Calculation(); c.fact(5);
Klicna metoda prek anonimnega objekta
new Calculation().fact(5);
Oglejmo si celoten primer anonimnega objekta v Javi.
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++){>
Ustvarjanje več objektov samo z eno vrsto
Ustvarimo lahko več objektov samo z eno vrsto, kot to počnemo v primeru primitivov.
Inicializacija primitivnih spremenljivk:
int a=10, b=20;
Inicializacija referenčnih spremenljivk:
Rectangle r1=new Rectangle(), r2=new Rectangle();//creating two objects
Poglejmo primer:
//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(); } }Preizkusite zdaj
Izhod:
55 45
Primer iz resničnega sveta: Račun
Datoteka: 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++){>