Luokat ja objektit Javassa

Luokat ja objektit Javassa

Javassa luokat ja objektit muodostavat Object-Oriented Programming (OOP) -perustan. Ne auttavat mallintamaan todellisia kokonaisuuksia ja järjestämään koodia jäsennellyllä tavalla.

  • Luokka on suunnitelma, jota käytetään luomaan objekteja, joilla on yhteisiä ominaisuuksia ja käyttäytymistä.
  • Objekti on luokan esiintymä. Se edustaa tiettyä luokkamallista luotua kokonaisuutta.

Esimerkiksi Koira on luokka Tommy on kyseisen luokan objekti.

Class_Object_exampleLuokat ja esineet (tässä koira on luokka ja Bobby on esine)

Java luokka

Luokka on suunnitelma, joka määrittelee kohteiden tiedot ja käyttäytymisen. Se ryhmittelee toisiinsa liittyvät kentät ja menetelmät yhteen yksikköön. Muisti sen jäsenille varataan vain objektin luomisen yhteydessä.

  • Toimii mallina jaettujen objektien luomiseen.
  • Ei vie muistia kentille ennen ilmentymistä.
  • Voi sisältää kenttiä metodien rakentajien sisäkkäisiä luokkia ja rajapintoja.
Java
   class   Student     {      int     id  ;      String     n  ;      public     Student  (  int     id       String     n  )     {      this  .  id     =     id  ;      this  .  n     =     n  ;      }   }   public     class   Main     {      public     static     void     main  (  String  []     args  )     {      Student     s1     =     new     Student  (  10       'Alice'  );      System  .  out  .  println  (  s1  .  id  );      System  .  out  .  println  (  s1  .  n  );      }   }   

Lähtö
10 Alice  

Java-objektit

Objekti on luokan esiintymä, joka on luotu käyttämään sen tietoja ja toimintoja. Jokaisella esineellä on oma tilansa.

  • Osavaltio : Kenttiin tallennetut arvot.
  • Käyttäytyminen : Menetelmillä määritellyt toimet.
  • Identiteetti : Erottaa objektin toisesta.

Objektit peilaavat todellisia kohteita, kuten asiakkaan tuotetta tai ympyrää. Ei-primitiiviset objektit tallennetaan kasaan, kun taas niiden viittaukset pysyvät pinossa.

Objektit JavassaJava-objektit (esimerkki koirista)

Objektin ilmentäminen

Objektin luomista kutsutaan instantiaatioksi. Kaikki luokan esiintymät jakavat rakenteen ja käyttäytymisen samalla kun tallennetaan eri tila-arvoja.

Objektien ilmoittaminen JavassaJava-objektin ilmoitus

Ilmoitus:

Koiran tupakka;

Tämä ilmoittaa vain viittauksen. Objektia ei luoda ja viittaus on tyhjä.

Alustus:

tuffy = new Dog('Tuffy' 'Papillon' 5 'White');

Luokat-ja-objektit-java-3-768Alustus

Uusi operaattori varaa muistin ja kutsuu konstruktorin.

Esimerkki: Luokan määrittäminen ja käyttäminen

Java
   public     class   Dog     {      String     name  ;      String     breed  ;      int     age  ;      String     color  ;      public     Dog  (  String     name       String     breed       int     age       String     color  )     {      this  .  name     =     name  ;      this  .  breed     =     breed  ;      this  .  age     =     age  ;      this  .  color     =     color  ;      }      public     String     getName  ()     {     return     name  ;     }      public     String     getBreed  ()     {     return     breed  ;     }      public     int     getAge  ()     {     return     age  ;     }      public     String     getColor  ()     {     return     color  ;     }      @Override      public     String     toString  ()     {      return     'Name is: '     +     name      +     'nBreed age and color are: '      +     breed     +     ' '     +     age     +     ' '     +     color  ;      }      public     static     void     main  (  String  []     args  )     {      Dog     tuffy     =     new     Dog  (  'tuffy'       'papillon'       5       'white'  );      System  .  out  .  println  (  tuffy  );      }   }   

Lähtö
Name is: tuffy Breed age and color are: papillon 5 white  

Huomautus: Jokaisella luokalla on vähintään yksi rakentaja. Jos ei ole määritetty, Java tarjoaa oletusarvoisen argumentoimattoman konstruktorin, joka kutsuu ylätason konstruktoria.

Alusta objekti käyttämällä menetelmää/funktiota

Java
   public     class   Geeks     {      static     String     name  ;      static     float     price  ;      static     void     set  (  String     n       float     p  )     {      name     =     n  ;      price     =     p  ;      }      static     void     get  ()     {      System  .  out  .  println  (  'Software name is: '     +     name  );      System  .  out  .  println  (  'Software price is: '     +     price  );      }      public     static     void     main  (  String  []     args  )     {      Geeks  .  set  (  'Visual Studio'       0.0f  );      Geeks  .  get  ();      }   }   

Lähtö
Software name is: Visual Studio Software price is: 0.0  

Tapoja luoda objektia Javassa

Java tukee neljää standardilähestymistapaa.

1. Uuden avainsanan käyttäminen

Suorin tapa luoda esine.

Java
   // creating object of class Test    Test     t     =     new     Test  ();   

2. Reflectionin käyttäminen

Käytetään dynaamiseen luokkalataukseen, kuten näkyy kehyksissä, kuten Spring.

Java
   class   Student     {      public     Student  ()     {}   }   public     class   Main     {      public     static     void     main  (  String  []     args  )     {      try     {      Class        c     =     Class  .  forName  (  'Student'  );      Student     s     =     (  Student  )     c  .  getDeclaredConstructor  ().  newInstance  ();      System  .  out  .  println  (  s  );      }     catch     (  Exception     e  )     {      e  .  printStackTrace  ();      }      }   }   

Lähtö
Student@1dbd16a6  

3. Clone()-menetelmän käyttö

clone() luo kopion olemassa olevasta objektista. Luokan on otettava käyttöön Cloneable.

Java
   class   Geeks     implements     Cloneable     {      String     name     =     'GeeksForGeeks'  ;      @Override      protected     Object     clone  ()     throws     CloneNotSupportedException     {      return     super  .  clone  ();      }      public     static     void     main  (  String  []     args  )     {      try     {      Geeks     g1     =     new     Geeks  ();      Geeks     g2     =     (  Geeks  )     g1  .  clone  ();      System  .  out  .  println  (  g2  .  name  );      }     catch     (  Exception     e  )     {      e  .  printStackTrace  ();      }      }   }   

Lähtö
GeeksForGeeks  

4. Deserialization-toiminnon käyttäminen

Sarjanpoisto on tekniikka, jolla objekti luetaan tallennetusta tilasta tiedostossa. Objekti luodaan uudelleen tallennetusta tavuvirrasta.

Katso Serialisointi/de-serialisointi Javassa .

Java
   import     java.io.*  ;   class   Student     implements     Serializable     {      private     String     name  ;      public     Student  (  String     name  )     {     this  .  name     =     name  ;     }      public     String     toString  ()     {     return     'Student: '     +     name  ;     }   }   public     class   Main     {      public     static     void     main  (  String  []     args  )     {      try     (  ObjectOutputStream     out     =      new     ObjectOutputStream  (  new     FileOutputStream  (  'student.ser'  )))     {      out  .  writeObject  (  new     Student  (  'Alice'  ));      }     catch     (  IOException     e  )     {     e  .  printStackTrace  ();     }      try     (  ObjectInputStream     in     =      new     ObjectInputStream  (  new     FileInputStream  (  'student.ser'  )))     {      Student     s     =     (  Student  )     in  .  readObject  ();      System  .  out  .  println  (  s  );      }     catch     (  Exception     e  )     {     e  .  printStackTrace  ();     }      }   }   

Lähtö
Student: Alice  

Yksittäinen viittaus voi viitata eri objekteihin eri aikoina.

Java
   Test     test     =     new     Test  ();   test     =     new     Test  ();   

Periytymisessä on yleistä käyttää emoviittausta aliobjekteille.

Java
   Animal     obj     =     new     Dog  ();   obj     =     new     Cat  ();   

Viittauksettomat kohteet tulevat kelvollisiksi roskien keräämiseen.

Nimettömät objektit

Anonyymit objektit luodaan ilman viittausta ja niitä käytetään välittömästi kertaluonteisiin toimiin.

  • Ei viitemuuttujaa: Objektia ei voi käyttää uudelleen.
  • Luotu ja käytetty säästää hetkessä muistia lyhytaikaisia ​​tehtäviä varten.
  • Yleistä tapahtumien käsittelyssä (esim. painikkeen napsautukset).
Java
   new     Dog  (  'Max'       'Labrador'       3       'Black'  ).  getName  ();   

Yleistä käyttöliittymän tapahtumien käsittelyssä.

Luo tietokilpailu