Osztályok és objektumok Java nyelven

Osztályok és objektumok Java nyelven

A Java-ban osztályok és objektumok alkotják az objektum-orientált programozás (OOP) alapját. Segítenek valós entitások modellezésében és strukturált módon rendszerezni a kódot.

  • Az osztály egy terv, amelyet közös tulajdonságokkal és viselkedéssel rendelkező objektumok létrehozására használnak.
  • Az objektum egy osztály példánya. Egy adott entitást jelöl, amelyet az osztálysablonból hoztak létre.

Például a Dog egy osztály, Tommy ennek az osztálynak az objektuma.

Class_Object_exampleOsztályok és tárgyak (itt a kutya az osztály, és Bobby a tárgy)

Java osztály

Az osztály egy terv, amely meghatározza az objektumok adatait és viselkedését. A kapcsolódó területeket és módszereket egyetlen egységbe csoportosítja. A tagok memóriája csak az objektum létrehozásakor kerül lefoglalásra.

  • Sablonként működik megosztott szerkezetű objektumok létrehozásához.
  • Nem foglalja el a mezők memóriáját a példányosításig.
  • Tartalmazhat mezőket metódus konstruktorok beágyazott osztályokat és interfészeket.
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  );      }   }   

Kimenet
10 Alice  

Java objektumok

Az objektum egy osztály példánya, amelyet az adatok és a műveletek eléréséhez hoztak létre. Minden objektumnak megvan a maga állapota.

  • Állami : A mezőkben tárolt értékek.
  • Viselkedés : Metódusokon keresztül meghatározott cselekvések.
  • Identitás : Megkülönbözteti az egyik objektumot a másiktól.

Az objektumok valós tárgyakat tükröznek, mint például az ügyfél terméke vagy köre. A nem primitív objektumok a kupacban tárolódnak, míg hivatkozásaik a veremben maradnak.

Java objektumokJava objektumok (példa kutyákra)

Objektum példányosítás

Egy objektum létrehozását példányosításnak nevezik. Egy osztály megosztásának struktúrájának és viselkedésének összes példánya, miközben különböző állapotértékeket tárol.

Objektumok deklarálása Java nyelvenJava objektum deklaráció

Nyilatkozat:

Kutya tuti;

Ez csak egy hivatkozást deklarál. Az objektum nem jön létre, és a hivatkozás nulla.

Inicializálás:

tuffy = new Dog('Puffy' 'Papillon' 5 'Fehér');

Classes-and-Objects-in-java-3-768Inicializálás

Az új operátor lefoglalja a memóriát és meghívja a konstruktort.

Példa: Osztály meghatározása és használata

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

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

Jegyzet: Minden osztálynak van legalább egy konstruktora. Ha nincs megadva, a Java alapértelmezett argumentummentes konstruktort biztosít, amely meghívja a szülő konstruktort.

Inicializálja az objektumot a Method/Function használatával

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

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

Objektumok létrehozásának módjai Java nyelven

A Java négy szabványos megközelítést támogat.

1. Új kulcsszó használata

Az objektum létrehozásának legközvetlenebb módja.

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

2. Reflexió használata

Dinamikus osztálybetöltéshez használják, amint az olyan keretrendszerekben látható, mint a 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  ();      }      }   }   

Kimenet
Student@1dbd16a6  

3. Clone() metódus használata

A clone() létrehoz egy másolatot egy létező objektumról. Az osztálynak implementálnia kell a Cloneable-t.

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

Kimenet
GeeksForGeeks  

4. A deszerializáció használata

A de-szerializálás egy olyan technika, amely egy objektumot a mentett állapotból olvas ki egy fájlban. Az objektum egy tárolt bájtfolyamból jön létre újra.

Lásd Sorozatosítás/de-szerializálás Java nyelven .

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

Kimenet
Student: Alice  

Egyetlen hivatkozás különböző időpontokban különböző objektumokra mutathat.

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

Az öröklődésben gyakori a szülőhivatkozás használata az utódobjektumokhoz.

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

A nem hivatkozott objektumok jogosulttá válnak a szemétgyűjtésre.

Névtelen objektumok

Az anonim objektumok hivatkozás nélkül jönnek létre, és azonnal felhasználhatók egyszeri műveletekhez.

  • Nincs referenciaváltozó: Az objektum nem használható fel újra.
  • A létrehozott és használt azonnal memóriát takarít meg a rövid távú feladatokhoz.
  • Gyakori az eseménykezelésben (pl. gombkattintás).
Java
   new     Dog  (  'Max'       'Labrador'       3       'Black'  ).  getName  ();   

Gyakori a felhasználói felület eseménykezelésében.

Kvíz létrehozása