Klasės ir objektai Java

Klasės ir objektai Java

Java klasės ir objektai sudaro objektinio programavimo (OOP) pagrindą. Jie padeda modeliuoti realaus pasaulio objektus ir struktūriškai tvarkyti kodą.

  • Klasė yra planas, naudojamas objektams, turintiems bendrų savybių ir elgesio, kurti.
  • Objektas yra klasės egzempliorius. Tai reiškia konkretų objektą, sukurtą iš klasės šablono.

Pavyzdžiui, šuo yra klasė Tommy yra tos klasės objektas.

Class_Object_exampleKlasės ir objektai (čia šuo yra klasė, o Bobis yra objektas)

Java klasė

Klasė yra planas, apibrėžiantis objektų duomenis ir elgesį. Jis sugrupuoja susijusias sritis ir metodus viename vienete. Atmintis jos nariams skiriama tik tada, kai sukuriamas objektas.

  • Veikia kaip šablonas kuriant objektus su bendra struktūra.
  • Iki paleidimo neužima laukų atminties.
  • Gali būti laukų metodų konstruktorių įdėtos klasės ir sąsajos.
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  );      }   }   

Išvestis
10 Alice  

Java objektai

Objektas yra klasės egzempliorius, sukurtas pasiekti jo duomenis ir operacijas. Kiekvienas objektas turi savo būseną.

  • valstybė : laukuose saugomos reikšmės.
  • Elgesys : veiksmai, apibrėžti metodais.
  • Tapatybė : Atskiria vieną objektą nuo kito.

Objektai atspindi realaus pasaulio elementus, pvz., kliento produktą ar ratą. Neprimityvūs objektai saugomi krūvoje, o jų nuorodos lieka krūvoje.

Objektai JavaJava objektai (šunų pavyzdys)

Objekto egzistavimas

Objekto kūrimas yra žinomas kaip egzistavimas. Visi klasės atvejai dalijasi struktūra ir elgesiu išsaugant skirtingas būsenos reikšmes.

Objektų deklaravimas JavaJava objekto deklaracija

Deklaracija:

Šunų pūkas;

Tai tik deklaruoja nuorodą. Objektas nesukuriamas, o nuoroda negalioja.

Inicijavimas:

tuffy = naujas Šuo ('Tuffy' 'Papillon' 5 'Baltas');

Klasės ir objektai Java-3-768Inicijavimas

Naujasis operatorius paskirsto atmintį ir iškviečia konstruktorių.

Pavyzdys: klasės apibrėžimas ir naudojimas

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

Išvestis
Name is: tuffy Breed age and color are: papillon 5 white  

Pastaba: Kiekviena klasė turi bent vieną konstruktorių. Jei neapibrėžta, „Java“ pateikia numatytąjį beargumentinį konstruktorių, kuris iškviečia pagrindinį konstruktorių.

Inicijuokite objektą naudodami metodą / funkciją

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

Išvestis
Software name is: Visual Studio Software price is: 0.0  

Būdai sukurti objektą Java

„Java“ palaiko keturis standartinius metodus.

1. Naujo raktinio žodžio naudojimas

Pats tiesiausias būdas sukurti objektą.

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

2. Refleksijos naudojimas

Naudojamas dinaminiam klasių įkėlimui, kaip matyti tokiose sistemose kaip 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  ();      }      }   }   

Išvestis
Student@1dbd16a6  

3. Clono() metodo naudojimas

clone() sukuria esamo objekto kopiją. Klasė turi įdiegti 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  ();      }      }   }   

Išvestis
GeeksForGeeks  

4. Deserializacijos naudojimas

Išserializavimas yra būdas nuskaityti objektą iš išsaugotos būsenos faile. Objektas atkuriamas iš saugomo baitų srauto.

Nurodykite Serializavimas / de-serializavimas 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  ();     }      }   }   

Išvestis
Student: Alice  

Viena nuoroda gali nurodyti skirtingus objektus skirtingu laiku.

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

Paveldėjimo atveju antriniams objektams įprasta naudoti pirminę nuorodą.

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

Nenuorodiniai objektai tampa tinkami šiukšlių išvežimui.

Anoniminiai objektai

Anoniminiai objektai sukuriami be nuorodos ir naudojami iš karto atliekant vienkartines operacijas.

  • Nėra nuorodos kintamojo: negalima pakartotinai naudoti objekto.
  • Sukurta ir naudojama akimirksniu taupo atmintį trumpalaikėms užduotims atlikti.
  • Įprasta tvarkant įvykius (pvz., mygtukų paspaudimus).
Java
   new     Dog  (  'Max'       'Labrador'       3       'Black'  ).  getName  ();   

Įprasta NS įvykių tvarkyme.

Sukurti viktoriną