Razredi in objekti v Javi

Razredi in objekti v Javi

V Javi so razredi in objekti temelj objektno usmerjenega programiranja (OOP). Pomagajo modelirati entitete iz resničnega sveta in organizirajo kodo na strukturiran način.

  • Razred je načrt, ki se uporablja za ustvarjanje predmetov, ki imajo skupne lastnosti in vedenje.
  • Objekt je primerek razreda. Predstavlja specifično entiteto, ustvarjeno iz predloge razreda.

Na primer Pes je razred Tommy je objekt tega razreda.

Class_Object_exampleRazredi in predmeti (tukaj je pes razred, Bobby pa predmet)

Java razred

Razred je načrt, ki definira podatke in obnašanje objektov. Združuje povezana področja in metode v eno samo enoto. Pomnilnik za njegove člane se dodeli šele, ko je objekt ustvarjen.

  • Deluje kot predloga za ustvarjanje predmetov s skupno strukturo.
  • Ne zasede pomnilnika za polja do instanciacije.
  • Lahko vsebuje polja, metode, konstruktorje, ugnezdene razrede in vmesnike.
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  );      }   }   

Izhod
10 Alice  

Java predmeti

Objekt je primerek razreda, ustvarjen za dostop do njegovih podatkov in operacij. Vsak objekt ima svoje stanje.

  • Država : Vrednosti, shranjene v poljih.
  • Vedenje : Dejanja, opredeljena z metodami.
  • Identiteta : Razlikuje en predmet od drugega.

Predmeti odsevajo predmete iz resničnega sveta, kot je izdelek stranke ali krog. Neprimitivni objekti so shranjeni na kupu, medtem ko njihove reference ostanejo na skladu.

Objekti v JaviObjekti Java (primer psov)

Instanciacija predmeta

Ustvarjanje predmeta je znano kot instanciranje. Vsi primerki razreda imajo skupno strukturo in vedenje, medtem ko shranjujejo različne vrednosti stanja.

Deklariranje objektov v JaviDeklaracija objekta Java

Izjava:

Pasji tuffy;

To samo deklarira referenco. Objekt ni ustvarjen in sklic je ničelen.

Inicializacija:

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

Razredi-in-predmeti-v-javi-3-768Inicializacija

Operator new dodeli pomnilnik in prikliče konstruktor.

Primer: Definiranje in uporaba razreda

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

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

Opomba: Vsak razred ima vsaj enega konstruktorja. Če nobena ni definirana, Java nudi privzeti konstruktor brez argumentov, ki kliče nadrejeni konstruktor.

Inicializirajte predmet z metodo/funkcijo

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

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

Načini ustvarjanja predmeta v Javi

Java podpira štiri standardne pristope.

1. Uporaba nove ključne besede

Najbolj neposreden način za ustvarjanje predmeta.

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

2. Uporaba refleksije

Uporablja se za dinamično nalaganje razredov, kot je vidno v ogrodjih, kot je 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  ();      }      }   }   

Izhod
Student@1dbd16a6  

3. Uporaba metode clone().

clone() ustvari kopijo obstoječega predmeta. Razred mora izvajati 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  ();      }      }   }   

Izhod
GeeksForGeeks  

4. Uporaba deserializacije

Deserializacija je tehnika branja predmeta iz shranjenega stanja v datoteki. Objekt je ponovno ustvarjen iz shranjenega toka bajtov.

Nanašajte se na Serializacija/de-serializacija v Javi .

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

Izhod
Student: Alice  

En sam sklic lahko kaže na različne predmete ob različnih časih.

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

Pri dedovanju je običajno uporabiti nadrejeno referenco za podrejene objekte.

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

Nereferencirani objekti postanejo primerni za zbiranje smeti.

Anonimni predmeti

Anonimni objekti so ustvarjeni brez sklicevanja in takoj uporabljeni za enkratne operacije.

  • Ni referenčne spremenljivke: predmeta ni mogoče ponovno uporabiti.
  • Ustvarjeno in uporabljeno takoj shrani pomnilnik za kratkotrajna opravila.
  • Pogost pri obravnavanju dogodkov (npr. kliki gumbov).
Java
   new     Dog  (  'Max'       'Labrador'       3       'Black'  ).  getName  ();   

Pogosti pri obravnavanju dogodkov uporabniškega vmesnika.

Ustvari kviz