Klases un objekti Java valodā

Klases un objekti Java valodā

Java klasēs un objekti veido objektorientētās programmēšanas (OOP) pamatu. Tie palīdz modelēt reālās pasaules entītijas un sakārtot kodu strukturētā veidā.

  • Klase ir plāns, ko izmanto, lai izveidotu objektus, kuriem ir kopīgas īpašības un uzvedība.
  • Objekts ir klases gadījums. Tas apzīmē noteiktu entītiju, kas izveidota no klases veidnes.

Piemēram, Suns ir klase Tomijs ir šīs klases objekts.

Class_Object_exampleKlases un objekti (šeit suns ir klase un Bobijs ir priekšmets)

Java klase

Klase ir projekts, kas nosaka objektu datus un uzvedību. Tas sagrupē saistītos laukus un metodes vienā vienībā. Atmiņa tās dalībniekiem tiek piešķirta tikai tad, kad tiek izveidots objekts.

  • Darbojas kā veidne, lai izveidotu objektus ar kopīgu struktūru.
  • Neaizņem atmiņu laukiem līdz instancē.
  • Var saturēt lauku metodes konstruktoru ligzdotās klases un saskarnes.
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  );      }   }   

Izvade
10 Alice  

Java objekti

Objekts ir klases gadījums, kas izveidots, lai piekļūtu tā datiem un darbībām. Katram objektam ir savs stāvoklis.

  • valsts : laukos saglabātās vērtības.
  • Uzvedība : darbības, kas noteiktas, izmantojot metodes.
  • Identitāte : atšķir vienu objektu no cita.

Objekti atspoguļo reālās pasaules vienumus, piemēram, klienta produktu vai apli. Neprimitīvi objekti tiek glabāti kaudzē, kamēr to atsauces paliek kaudzē.

Objekti Java valodāJava objekti (suņu piemērs)

Objekta inscenēšana

Objekta izveide ir pazīstama kā instantiācija. Visi klases gadījumi koplieto struktūru un uzvedību, vienlaikus saglabājot dažādas stāvokļa vērtības.

Objektu deklarēšana Java valodāJava objektu deklarācija

Deklarācija:

Suņu pūkains;

Tas tikai deklarē atsauci. Objekts netiek izveidots, un atsauce ir nulle.

Inicializācija:

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

Classes-and-Objects-java-3-768Inicializācija

Jaunais operators piešķir atmiņu un izsauc konstruktoru.

Piemērs: klases definēšana un izmantošana

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  );      }   }   

Izvade
Name is: tuffy Breed age and color are: papillon 5 white  

Piezīme: Katrā klasē ir vismaz viens konstruktors. Ja nav definēts, Java nodrošina noklusējuma konstruktoru bez argumentiem, kas izsauc vecāku konstruktoru.

Inicializējiet objektu, izmantojot metodi/funkciju

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  ();      }   }   

Izvade
Software name is: Visual Studio Software price is: 0.0  

Objektu izveides veidi Java

Java atbalsta četras standarta pieejas.

1. Jauna atslēgvārda izmantošana

Tiešākais veids, kā izveidot objektu.

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

2. Izmantojot Reflection

Izmanto dinamiskai klašu ielādei, kā redzams tādos ietvaros kā 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  ();      }      }   }   

Izvade
Student@1dbd16a6  

3. Izmantojot clone() metodi

clone() izveido esoša objekta kopiju. Klasei jāievieš 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  ();      }      }   }   

Izvade
GeeksForGeeks  

4. Deserializācijas izmantošana

Deserializācija ir paņēmiens objekta nolasīšanai no saglabātā stāvokļa failā. Objekts tiek atkārtoti izveidots no saglabātās baitu straumes.

Atsaucieties uz Serializācija/de-serializācija Java .

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  ();     }      }   }   

Izvade
Student: Alice  

Viena atsauce var norādīt uz dažādiem objektiem dažādos laikos.

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

Mantojumā ir ierasts izmantot vecāku atsauci bērnu objektiem.

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

Neatsauces objekti kļūst piemēroti atkritumu savākšanai.

Anonīmi objekti

Anonīmi objekti tiek izveidoti bez atsauces un tiek nekavējoties izmantoti vienreizējām darbībām.

  • Nav atsauces mainīgā: objektu nevar izmantot atkārtoti.
  • Izveidots un izmantots uzreiz ietaupa atmiņu īslaicīgiem uzdevumiem.
  • Bieži sastopams notikumu apstrādē (piemēram, pogu klikšķi).
Java
   new     Dog  (  'Max'       'Labrador'       3       'Black'  ).  getName  ();   

Izplatīts lietotāja saskarnes notikumu apstrādē.

Izveidojiet viktorīnu