logo

Objektit ja luokat Javassa

  1. Objekti Javassa
  2. Luokka Javassa
  3. Instanssimuuttuja Javassa
  4. Menetelmä Javassa
  5. Esimerkki objektista ja luokasta, joka ylläpitää opiskelijarekisteriä
  6. 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

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:

    Osavaltio:edustaa kohteen dataa (arvoa).Käyttäytyminen:edustaa objektin käyttäytymistä (toiminnallisuutta), kuten talletusta, nostoa jne.Identiteetti:Objektin identiteetti toteutetaan tyypillisesti yksilöllisen tunnuksen kautta. Tunnusluvun arvo ei näy ulkoiselle käyttäjälle. JVM käyttää sitä kuitenkin sisäisesti tunnistaakseen jokaisen objektin yksilöllisesti.
Java-objektin ominaisuudet

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ää:

    Kentät menetelmät Rakentajat Lohkot Sisäkkäinen luokka ja käyttöliittymä
Luokka Javassa

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.

  1. Viitemuuttujan mukaan
  2. Menetelmän mukaan
  3. 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 
Java-objekti arvoineen

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.

Eri tapoja luoda objekti Javassa

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

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