Klase i objekti u Javi

Klase i objekti u Javi

U Javi klase i objekti čine temelj objektno orijentiranog programiranja (OOP). Oni pomažu modelirati entitete stvarnog svijeta i organizirati kod na strukturiran način.

  • Klasa je nacrt koji se koristi za stvaranje objekata koji dijele zajednička svojstva i ponašanje.
  • Objekt je instanca klase. Predstavlja određeni entitet kreiran iz predloška klase.

Na primjer Pas je klasa Tommy je objekt te klase.

Primjer_objekta_klaseKlase i objekti (ovdje je pas klasa, a Bobby objekt)

Java klasa

Klasa je nacrt koji definira podatke i ponašanje objekata. Grupira srodna polja i metode u jednu jedinicu. Memorija za njegove članove se dodjeljuje samo kada se kreira objekt.

  • Djeluje kao predložak za stvaranje objekata sa zajedničkom strukturom.
  • Ne zauzima memoriju za polja do instanciranja.
  • Može sadržavati polja metode konstruktore ugniježđene klase i sučelja.
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  );      }   }   

Izlaz
10 Alice  

Java objekti

Objekt je instanca klase stvorena za pristup njezinim podacima i operacijama. Svaki objekt ima vlastito stanje.

  • Stanje : Vrijednosti pohranjene u poljima.
  • Ponašanje : Akcije definirane kroz metode.
  • Identitet : Razlikuje jedan predmet od drugog.

Objekti odražavaju stavke iz stvarnog svijeta kao što su korisnički proizvod ili krug. Neprimitivni objekti pohranjuju se na gomilu dok njihove reference ostaju na hrpi.

Objekti u JaviJava objekti (primjer pasa)

Instancija objekta

Stvaranje objekta poznato je kao instanciranje. Sve instance klase dijele strukturu i ponašanje dok pohranjuju različite vrijednosti stanja.

Deklariranje objekata u JaviDeklaracija Java objekta

deklaracija:

Pas tuffy;

Ovo samo deklarira referencu. Objekt nije kreiran i referenca je null.

Inicijalizacija:

Klase-i-objekti-u-javi-3-768Inicijalizacija

Novi operator dodjeljuje memoriju i poziva konstruktor.

Primjer: Definiranje i korištenje klase

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

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

Bilješka: Svaka klasa ima najmanje jednog konstruktora. Ako nijedan nije definiran, Java nudi zadani konstruktor bez argumenata koji poziva roditeljski konstruktor.

Inicijalizirajte objekt pomoću metode/funkcije

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

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

Načini stvaranja objekta u Javi

Java podržava četiri standardna pristupa.

1. Korištenje nove ključne riječi

Najizravniji način stvaranja objekta.

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

2. Korištenje odraza

Koristi se za dinamičko učitavanje klase kao što se vidi u okvirima kao što 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  ();      }      }   }   

Izlaz
Student@1dbd16a6  

3. Korištenje metode clone().

clone() stvara kopiju postojećeg objekta. Klasa mora implementirati 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  ();      }      }   }   

Izlaz
GeeksForGeeks  

4. Korištenje deserijalizacije

Deserijalizacija je tehnika čitanja objekta iz spremljenog stanja u datoteci. Objekt se ponovno stvara iz pohranjenog toka bajtova.

Odnosi se na Serijalizacija/De-serijalizacija u 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  ();     }      }   }   

Izlaz
Student: Alice  

Jedna referenca može upućivati ​​na različite objekte u različito vrijeme.

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

U nasljeđivanju je uobičajeno koristiti roditeljsku referencu za podređene objekte.

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

Nereferencirani objekti postaju podobni za skupljanje smeća.

Anonimni objekti

Anonimni objekti stvaraju se bez reference i odmah se koriste za jednokratne operacije.

  • Nema referentne varijable: nije moguće ponovno koristiti objekt.
  • Stvoreno i korišteno trenutno štedi memoriju za kratkotrajne zadatke.
  • Uobičajeno u rukovanju događajima (npr. klikovi gumba).
Java
   new     Dog  (  'Max'       'Labrador'       3       'Black'  ).  getName  ();   

Uobičajeno u rukovanju događajima korisničkog sučelja.

Napravi kviz