- Objektas Java
- Klasė Java
- „Java“ egzempliorių kintamasis
- Metodas Java
- Objekto ir klasės, kuri tvarko mokinio įrašus, pavyzdys
- Anoniminis objektas
Šiame puslapyje mes sužinosime apie Java objektus ir klases. Objektinio programavimo technikoje mes projektuojame programą naudodami objektus ir klases.
„Java“ objektas yra fizinis ir loginis subjektas, o „Java“ klasė yra tik loginis objektas.
Kas yra objektas Java
Subjektas, turintis būseną ir elgesį, yra žinomas kaip objektas, pvz., kėdė, dviratis, žymeklis, rašiklis, stalas, automobilis ir kt. Jis gali būti fizinis arba loginis (apčiuopiamas ir neapčiuopiamas). Nematerialaus objekto pavyzdys yra bankų sistema.
Objektas turi tris savybes:
Pavyzdžiui, rašiklis yra objektas. Jo vardas yra Reynoldsas; spalva yra balta, žinoma kaip jos būsena. Jis naudojamas rašyti, todėl rašymas yra jo elgesys.
Objektas yra klasės egzempliorius. Klasė yra šablonas arba projektas, iš kurio kuriami objektai. Taigi, objektas yra klasės egzempliorius (rezultatas).
Objektų apibrėžimai:
- Objektas yra realaus pasaulio subjektas .
- Objektas yra vykdymo subjektas .
- Objektas yra subjektas, turintis būseną ir elgesį .
- Objektas yra klasės pavyzdys .
Kas yra Java klasė
Klasė yra objektų, turinčių bendrų savybių, grupė. Tai šablonas arba projektas, iš kurio kuriami objektai. Tai loginis darinys. Tai negali būti fizinė.
„Java“ klasėje gali būti:
Sintaksė klasei deklaruoti:
class { field; method; }
„Java“ egzempliorių kintamasis
Kintamasis, kuris sukuriamas klasėje, bet už metodo ribų, yra žinomas kaip egzemplioriaus kintamasis. Egzempliorių kintamasis negauna atminties kompiliavimo metu. Vykdymo metu jis gauna atmintį, kai sukuriamas objektas ar egzempliorius. Štai kodėl jis žinomas kaip egzemplioriaus kintamasis.
Metodas Java
„Java“ kalboje metodas yra tarsi funkcija, naudojama objekto elgesiui atskleisti.
Metodo privalumas
- Kodo pakartotinis naudojimas
- Kodo optimizavimas
naujas raktinis žodis Java
Naujasis raktinis žodis naudojamas atminties paskirstymui vykdymo metu. Visi objektai gauna atmintį krūvos atminties srityje.
Objekto ir klasės pavyzdys: pagrindinis klasėje
Šiame pavyzdyje sukūrėme Mokinio klasę, kurioje yra du duomenų narių ID ir pavadinimas. Kuriame Studento klasės objektą pagal naują raktinį žodį ir spausdiname objekto vertę.
Čia mes sukuriame pagrindinį () metodą klasėje.
Failas: 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); } }Išbandykite dabar
Išvestis:
0 null
Objekto ir klasės pavyzdys: pagrindinis už klasės ribų
Kurdami realiuoju laiku, kuriame klases ir naudojame iš kitos klasės. Tai geresnis požiūris nei ankstesnis. Pažiūrėkime paprastą pavyzdį, kai mes turime main() metodą kitoje klasėje.
sukurti java giją
Galime turėti kelias klases skirtinguose Java failuose arba viename Java faile. Jei viename „Java“ šaltinio faile apibrėžiate kelias klases, verta išsaugoti failo pavadinimą su klasės pavadinimu, kuris turi main() metodą.
Failas: 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); } }Išbandykite dabar
Išvestis:
0 null
3 būdai inicijuoti objektą
Yra 3 būdai, kaip inicijuoti objektą Java.
- Pagal nuorodos kintamąjį
- Pagal metodą
- Pagal konstruktorių
1) Objekto ir klasės pavyzdys: inicijavimas naudojant nuorodą
Objekto inicijavimas reiškia duomenų saugojimą objekte. Pažiūrėkime paprastą pavyzdį, kai ketiname inicijuoti objektą naudodami nuorodos kintamąjį.
Failas: 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 } }Išbandykite dabar
Išvestis:
101 Sonoo
Taip pat galime sukurti kelis objektus ir juose saugoti informaciją per nuorodos kintamąjį.
Failas: 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); } }Išbandykite dabar
Išvestis:
101 Sonoo 102 Amit
2) Objekto ir klasės pavyzdys: inicijavimas naudojant metodą
Šiame pavyzdyje mes kuriame du Studentų klasės objektus ir inicijuojame šių objektų vertę, pasinaudodami insertRecord metodu. Čia mes rodome objektų būseną (duomenis), pasitelkę displayInformation() metodą.
Failas: 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(); } }Išbandykite dabar
Išvestis:
111 Karan 222 Aryan
Kaip matote aukščiau esančiame paveikslėlyje, objektas atmintį gauna krūvos atminties srityje. Nuorodos kintamasis nurodo objektą, skirtą krūvos atminties srityje. Čia s1 ir s2 yra atskaitos kintamieji, nurodantys atmintyje priskirtus objektus.
3) Objekto ir klasės pavyzdys: inicijavimas naudojant konstruktorių
Apie „Java“ konstruktorius sužinosime vėliau.
Objekto ir klasės pavyzdys: darbuotojas
Pažiūrėkime pavyzdį, kai tvarkome darbuotojų apskaitą.
Failas: TestEmployee.java
konvertuoti int į eilutę c++
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(); } }Išbandykite dabar
Išvestis:
101 ajeet 45000.0 102 irfan 25000.0 103 nakul 55000.0
Objekto ir klasės pavyzdys: Stačiakampis
Pateiktas kitas pavyzdys, kuriame saugomi stačiakampio klasės įrašai.
Failas: 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(); } }Išbandykite dabar
Išvestis:
55 45
Kokie yra skirtingi „Java“ objekto kūrimo būdai?
Yra daug būdų, kaip sukurti objektą Java. Jie yra:
- Pagal naują raktinį žodį
- Pagal newInstance() metodą
- Pagal klono() metodą
- Deserializacijos būdu
- Gamyklos metodu ir pan.
Šių objekto kūrimo būdų išmoksime vėliau.
Anoniminis objektas
Anonimas tiesiog reiškia bevardis. Objektas, neturintis nuorodos, yra žinomas kaip anoniminis objektas. Jis gali būti naudojamas tik objekto kūrimo metu.
Jei objektą turite naudoti tik vieną kartą, anoniminis objektas yra geras būdas. Pavyzdžiui:
new Calculation();//anonymous object
Skambinimo būdas naudojant nuorodą:
Calculation c=new Calculation(); c.fact(5);
Skambinimo būdas per anoniminį objektą
new Calculation().fact(5);
Pažiūrėkime visą anoniminio objekto pavyzdį 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'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++){>
Kelių objektų kūrimas tik pagal vieną tipą
Mes galime sukurti kelis objektus tik pagal vieną tipą, kaip tai darome primityvų atveju.
Primityvių kintamųjų inicijavimas:
int a=10, b=20;
Nuorodos kintamųjų inicijavimas:
Rectangle r1=new Rectangle(), r2=new Rectangle();//creating two objects
Pažiūrėkime pavyzdį:
//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(); } }Išbandykite dabar
Išvestis:
55 45
Realaus pasaulio pavyzdys: sąskaita
Failas: 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++){>