- Objekti Javassa
- Luokka Javassa
- Instanssimuuttuja Javassa
- Menetelmä Javassa
- Esimerkki objektista ja luokasta, joka ylläpitää opiskelijarekisteriä
- Anonyymi objekti
Tällä sivulla opimme Java-objekteista ja -luokista. Olio-ohjelmointitekniikassa suunnittelemme ohjelman objekteja ja luokkia käyttäen.
Java-olio on sekä fyysinen että looginen kokonaisuus, kun taas Java-luokka on vain looginen kokonaisuus.
Mikä on objekti Javassa
Entiteetti, jolla on tila ja käyttäytyminen, tunnetaan esineenä, kuten tuoli, pyörä, merkki, kynä, pöytä, auto jne. Se voi olla fyysinen tai looginen (aineellinen ja aineeton). Esimerkki aineettomasta esineestä on pankkijärjestelmä.
Objektilla on kolme ominaisuutta:
Esimerkiksi kynä on esine. Sen nimi on Reynolds; väri on valkoinen, joka tunnetaan sen tilana. Sitä käytetään kirjoittamiseen, joten kirjoittaminen on sen käyttäytymistä.
Objekti on luokan esiintymä. Luokka on malli tai suunnitelma, josta objektit luodaan. Joten objekti on luokan ilmentymä (tulos).
Objektimääritelmät:
- Objekti on todellisen maailman kokonaisuus .
- Objekti on ajonaikainen kokonaisuus .
- Objekti on entiteetti, jolla on tila ja käyttäytyminen .
- Objekti on luokan esimerkki .
Mikä on luokka Javassa
Luokka on joukko objekteja, joilla on yhteisiä ominaisuuksia. Se on malli tai suunnitelma, josta objektit luodaan. Se on looginen kokonaisuus. Se ei voi olla fyysistä.
Java-luokka voi sisältää:
Syntaksi luokan ilmoittamiseen:
class { field; method; }
Instanssimuuttuja Javassa
Muuttuja, joka luodaan luokan sisällä mutta menetelmän ulkopuolelle, tunnetaan esiintymämuuttujana. Ilmentymämuuttuja ei saa muistia käännöshetkellä. Se saa muistia ajon aikana, kun objekti tai ilmentymä luodaan. Siksi se tunnetaan esiintymämuuttujana.
Menetelmä Javassa
Javassa menetelmä on kuin funktio, jota käytetään objektin käyttäytymisen paljastamiseen.
Menetelmän etu
- Koodin uudelleenkäyttö
- Koodin optimointi
uusi avainsana Javassa
Uutta avainsanaa käytetään muistin varaamiseen suorituksen aikana. Kaikki objektit saavat muistin Keon muistialueella.
Objekti ja luokka Esimerkki: main luokan sisällä
Tässä esimerkissä olemme luoneet opiskelijaluokan, jossa on kaksi datajäsenen tunnus ja nimi. Luomme Student-luokan objektin uudella avainsanalla ja tulostamme objektin arvon.
Tässä luomme main()-metodin luokan sisään.
Tiedosto: 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); } }Testaa nyt
Lähtö:
0 null
Objekti ja luokka Esimerkki: main luokan ulkopuolella
Reaaliaikaisessa kehityksessä luomme luokkia ja käytämme niitä toisesta luokasta. Se on parempi lähestymistapa kuin edellinen. Katsotaanpa yksinkertainen esimerkki, jossa meillä on main()-metodi toisessa luokassa.
diskreetin matematiikan negaatio
Meillä voi olla useita luokkia eri Java-tiedostoissa tai yhdessä Java-tiedostossa. Jos määrität useita luokkia yhteen Java-lähdetiedostoon, on hyvä idea tallentaa tiedostonimi luokan nimellä, jossa on main()-metodi.
Tiedosto: 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); } }Testaa nyt
Lähtö:
0 null
3 tapaa alustaa objekti
Javassa on kolme tapaa alustaa objektia.
- Viitemuuttujan mukaan
- Menetelmän mukaan
- Rakentajan toimesta
1) Objekti- ja luokkaesimerkki: Alustus viittauksen kautta
Objektin alustaminen tarkoittaa tietojen tallentamista objektiin. Katsotaanpa yksinkertainen esimerkki, jossa aiomme alustaa objektin viitemuuttujan kautta.
Tiedosto: 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 } }Testaa nyt
Lähtö:
101 Sonoo
Voimme myös luoda useita objekteja ja tallentaa niihin tietoja viitemuuttujan kautta.
Tiedosto: 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); } }Testaa nyt
Lähtö:
101 Sonoo 102 Amit
2) Objekti- ja luokkaesimerkki: Alustus menetelmällä
Tässä esimerkissä luomme kaksi Student-luokan objektia ja alustamme näiden objektien arvon käyttämällä insertRecord-menetelmää. Tässä näytämme objektien tilan (tiedot) käyttämällä displayInformation()-metodia.
Tiedosto: 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(); } }Testaa nyt
Lähtö:
111 Karan 222 Aryan
Kuten yllä olevasta kuvasta näkyy, objekti saa muistin keon muistialueelta. Viitemuuttuja viittaa objektiin, joka on varattu keon muistialueella. Tässä s1 ja s2 ovat molemmat viitemuuttujia, jotka viittaavat muistissa oleviin objekteihin.
java avaa tiedoston
3) Objekti- ja luokkaesimerkki: Alustus konstruktorin kautta
Opimme Javan rakentajista myöhemmin.
Esimerkki ja luokka: Työntekijä
Katsotaanpa esimerkkiä, jossa pidämme kirjanpitoa työntekijöistä.
Tiedosto: 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(); } }Testaa nyt
Lähtö:
101 ajeet 45000.0 102 irfan 25000.0 103 nakul 55000.0
Objekti ja luokka Esimerkki: Suorakulmio
On annettu toinen esimerkki, joka ylläpitää Rectangle-luokan tietueita.
Tiedosto: 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(); } }Testaa nyt
Lähtö:
55 45
Mitä eri tapoja on luoda objekti Javassa?
On olemassa monia tapoja luoda objekti javassa. He ovat:
- Uuden avainsanan mukaan
- newInstance()-menetelmällä
- Klooni()-menetelmällä
- Deserialisoinnilla
- Tehdasmenetelmällä jne.
Opimme nämä tavat luoda objektia myöhemmin.
Anonyymi objekti
Anonyymi tarkoittaa yksinkertaisesti nimetöntä. Objektia, jolla ei ole viittausta, kutsutaan anonyymiksi objektiksi. Sitä voidaan käyttää vain objektin luomisen yhteydessä.
Jos sinun on käytettävä objektia vain kerran, anonyymi objekti on hyvä lähestymistapa. Esimerkiksi:
new Calculation();//anonymous object
Soittotapa viitteen kautta:
Calculation c=new Calculation(); c.fact(5);
Kutsumenetelmä anonyymin objektin kautta
new Calculation().fact(5);
Katsotaanpa täydellinen esimerkki nimettömästä objektista Javassa.
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++){>
Useiden objektien luominen vain yhden tyypin mukaan
Voimme luoda useita objekteja vain yhden tyypin mukaan, kuten teemme primitiivien tapauksessa.
Primitiivisten muuttujien alustus:
int a=10, b=20;
Viitemuuttujien alustus:
Rectangle r1=new Rectangle(), r2=new Rectangle();//creating two objects
Katsotaanpa esimerkkiä:
//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(); } }Testaa nyt
Lähtö:
55 45
Esimerkki tosimaailmasta: tili
Tiedosto: 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++){>