Java'da Nesne Sınıfı

Java'da Nesne Sınıfı

Nesne sınıfı Java'da mevcut java.lang paket.

  • Her sınıf doğrudan veya dolaylı olarak Object sınıfından türetilir. Eğer bir sınıf başka bir sınıfı genişletmiyorsa o sınıfın doğrudan alt sınıfıdır. Java Nesne sınıfı ve eğer başka bir sınıfı genişletiyorsa dolaylı olarak türetilir.
  • Object sınıfı aşağıdakiler gibi çeşitli yöntemler sağlar: toString() eşittir() hashCode() ve diğerleri.
  • Object sınıfı, herhangi bir Java Programındaki miras hiyerarşisinin kökü olarak görev yapar.

Burada şunu kullanıyoruz: toString() Ve hashCode() Object sınıfının yöntemleri bir sınıf için özel bir dize gösterimi sağlamak .

Java
   // Java Code to demonstrate Object class   class   Person     {      String     n  ;     //name      // Constructor      public     Person  (  String     n  )     {      this  .  n     =     n  ;      }      // Override toString() for a       // custom string representation      @Override      public     String     toString  ()     {      return     'Person{name:''     +     n     +     ''}'  ;      }      public     static     void     main  (  String  []     args  )     {          Person     p     =     new     Person  (  'Geek'  );          // Custom string representation      System  .  out  .  println  (  p  .  toString  ());          // Default hash code value      System  .  out  .  println  (  p  .  hashCode  ());         }   }   

Çıkış
Person{name:'Geek'} 321001045  

Açıklama: Yukarıdaki örnekte geçersiz kıldık toString() sağlamak için bir yöntem Person sınıfının özel dize gösterimi ve şunu kullan hashCode() nesnenin varsayılan karma kodu değerini görüntüleme yöntemi.

Nesne Sınıfı Yöntemleri

Object sınıfı aşağıdaki gibi birden fazla yöntem sağlar:

  • toString() yöntemi
  • hashCode() yöntemi
  • equals(Object obj) yöntemi
  • finalize() yöntemi
  • getClass() yöntemi
  • klon() yöntemi
  • wait() notify() notifyAll() (Eşzamanlılık yöntemleri)
Java

1. toString() Yöntemi

toString() bir nesnenin String gösterimini sağlar ve bir nesneyi String'e dönüştürmek için kullanılır. Object sınıfı için varsayılan toString() yöntemi, nesnenin bir örneği olduğu sınıfın adından, at-sign karakteri `@' ve nesnenin karma kodunun imzasız onaltılık gösteriminden oluşan bir dize döndürür.

Not: Herhangi bir Object referansını yazdırmaya çalıştığımızda dahili olarak toString() yöntemi çağrılır.

Örnek:

genel sınıf Öğrenci {

public String toString() {

'Öğrenci nesnesini' döndür;

}

}

Açıklama: toString() yöntemi, Öğrenci nesnesinin özel bir dize temsilini döndürmek için geçersiz kılınır.

2. hashCode() Yöntemi

Her nesne için JVM, hashcode olan benzersiz bir sayı üretir. Farklı nesneler için farklı tamsayılar döndürür. Bu yöntemle ilgili yaygın bir yanılgı, hashCode() yönteminin nesnenin doğru olmayan adresini döndürmesidir. Bir algoritma kullanarak nesnenin dahili adresini bir tamsayıya dönüştürür. hashCode() yöntemi yerli çünkü Java'da bir nesnenin adresini bulmak imkansızdır, dolayısıyla nesnenin adresini bulmak için C/C++ gibi yerel dilleri kullanır.

hashCode() yönteminin kullanımı:

Bir koleksiyondaki nesneleri aramak için kullanılan bir karma değeri döndürür. JVM (Java Virtual Machine), nesneleri HashSet HashMap Hashtable vb. gibi karma ile ilgili veri yapılarına kaydederken karma kodu yöntemini kullanır. Nesneleri karma koduna dayalı olarak kaydetmenin temel avantajı, aramanın kolaylaşmasıdır. 

Not: Geçersiz kılma hashCode() yöntemin her nesne için benzersiz bir sayı oluşturacak şekilde yapılması gerekir. Örneğin bir Öğrenci sınıfı için rulo numarasını döndürebiliriz. benzersiz olduğu için hashCode() yönteminden bir öğrencinin. 

Örnek:

genel sınıf Öğrenci {

int rulo;

@Geçersiz kıl

genel int hashCode() {

dönüş rulosu;

}

}

Açıklama: hashCode() yöntemi, Öğrenci nesnesinin yuvarlanmasına dayalı olarak özel bir karma değeri döndürmek için geçersiz kılınır.

3. equals(Object obj) Yöntemi

eşittir() Yöntem, verilen nesneyi geçerli nesneyle karşılaştırır. Özel eşitlik koşullarını tanımlamak için bu yöntemin geçersiz kılınması önerilir.

Not: Genellikle geçersiz kılmak gerekir hashCode() eşit nesnelerin eşit hash kodlarına sahip olması gerektiğini belirten hashCode yönteminin genel sözleşmesini korumak için bu yöntem geçersiz kılındığında yöntem. 

Örnek:

genel sınıf Öğrenci {

int rulo;


@Geçersiz kıl

public boolean equals(Object o) {

if (o Öğrenci örneği) {

return this.roll == ((Öğrenci) o).roll;

}

yanlış döndür;

}

}

Açıklama: eşittir() karşılaştırma için yöntem geçersiz kılındı rulo iki Öğrenci nesnesi arasında.

4. getClass() yöntemi

getClass() yöntemi 'this' nesnesinin sınıf nesnesini döndürür ve nesnenin gerçek çalışma zamanı sınıfını elde etmek için kullanılır. Bu sınıfın meta verilerini almak için de kullanılabilir. Döndürülen Class nesnesi, temsil edilen sınıfın statik senkronize yöntemleri tarafından kilitlenen nesnedir. Nihai olduğu için onu geçersiz kılmıyoruz.

Örnek:

Java
   // Demonstrate working of getClass()   public     class   Geeks     {      public     static     void     main  (  String  []     args  )      {      Object     o     =     new     String  (  'GeeksForGeeks'  );      Class     c     =     o  .  getClass  ();      System  .  out  .  println  (  'Class of Object o is: '      +     c  .  getName  ());      }   }   

Çıkış
Class of Object o is: java.lang.String  

Açıklama: getClass() yöntemi 'o' nesnesinin çalışma zamanı sınıfını yazdırmak için kullanılır.

Not: Bir .class dosyasını yükledikten sonra JVM, şu türden bir nesne yaratacaktır: java.lang.Class Yığın bölgesinde. Bu sınıf nesnesini Sınıf düzeyinde bilgi almak için kullanabiliriz. Yaygın olarak kullanılır Refleks  

5. finalize() yöntemi

sonuçlandırmak() yöntem, bir nesnenin çöp toplanmasından hemen önce çağrılır. buna denir Çöp Toplayıcı çöp toplayıcı nesneye daha fazla başvuru olmadığını belirlediğinde bir nesne üzerinde. Sistem kaynaklarını imha etmek, temizleme faaliyetleri gerçekleştirmek ve bellek sızıntılarını en aza indirmek için finalize() yöntemini geçersiz kılmalıyız. Örneğin, Servlet nesnelerini yok etmeden önce, oturumun temizleme faaliyetlerini gerçekleştirmek için her zaman finalize yöntemi adı verilen web konteyneri kullanılır. 

Not: Sonlandırma yöntemi sadece denir bir kere Bir nesnenin birden çok kez çöp toplama işlemine uygun olmasına rağmen. 

Örnek:

Java
   // Demonstrate working of finalize()   public     class   Geeks     {      public     static     void     main  (  String  []     args  )     {          Geeks     t     =     new     Geeks  ();      System  .  out  .  println  (  t  .  hashCode  ());      t     =     null  ;      // calling garbage collector      System  .  gc  ();      System  .  out  .  println  (  'end'  );      }      @Override     protected     void     finalize  ()      {      System  .  out  .  println  (  'finalize method called'  );      }   }   

Çıkış
1510467688 end finalize method called  

Açıklama: sonuçlandırmak() yöntem, nesne çöp toplanmadan hemen önce çağrılır.

6. clone() yöntemi 

klon() yöntem, geçerli nesnenin kopyası olan yeni bir nesne oluşturur ve döndürür.

Örnek:

genel sınıf Kitap Klonlanabilir {'i uygular

özel Dize t; //başlık


herkese açık Kitap(Dize t) {

this.t = t;

}

@Geçersiz kıl

public Object clone(), CloneNotSupportedException {'i atar

super.clone()'u döndürün;

}

}

Açıklama: klon() klonlanmış bir kopyasını döndürmek için yöntem geçersiz kılındı Kitap nesnesi .

7. Eşzamanlılık Yöntemleri: wait() notify() ve notifyAll()

Bu yöntemler ile ilgili Java'da iş parçacığı İletişimi . Eşzamanlı programlamada iş parçacıklarını bekletmek veya diğerlerini bilgilendirmek için kullanılırlar.

Java'daki tüm Nesne Sınıfı Yöntemlerini kullanma örneği

Java
   import     java.io.*  ;   public     class   Book     implements     Cloneable     {      private     String     t  ;     // title      private     String     a  ;     // author      private     int     y  ;     // year      public     Book  (  String     t       String     a       int     y  )      {      this  .  t     =     t  ;      this  .  a     =     a  ;      this  .  y     =     y  ;      }      // Override the toString method      @Override     public     String     toString  ()      {      return     t     +     ' by '     +     a     +     ' ('     +     y     +     ')'  ;      }      // Override the equals method      @Override     public     boolean     equals  (  Object     o  )      {      if     (  o     ==     null     ||     !  (  o     instanceof     Book  ))     {      return     false  ;      }      Book     other     =     (  Book  )  o  ;      return     this  .  t  .  equals  (  other  .  getTitle  ())      &&     this  .  a  .  equals  (  other  .  getAuthor  ())      &&     this  .  y     ==     other  .  getYear  ();      }      // Override the hashCode method      @Override     public     int     hashCode  ()      {      int     res     =     17  ;      res     =     31     *     res     +     t  .  hashCode  ();      res     =     31     *     res     +     a  .  hashCode  ();      res     =     31     *     res     +     y  ;      return     res  ;      }      // Override the clone method      @Override     public     Book     clone  ()      {      try     {      return     (  Book  )  super  .  clone  ();      }      catch     (  CloneNotSupportedException     e  )     {      throw     new     AssertionError  ();      }      }      // Override the finalize method      @Override     protected     void     finalize  ()     throws     Throwable      {      System  .  out  .  println  (  'Finalizing '     +     this  );      }      public     String     getTitle  ()     {     return     t  ;     }      public     String     getAuthor  ()     {     return     a  ;     }      public     int     getYear  ()     {     return     y  ;     }      public     static     void     main  (  String  []     args  )      {      // Create a Book object and print its details      Book     b1     =     new     Book  (      'The Hitchhiker's Guide to the Galaxy'        'Douglas Adams'       1979  );      System  .  out  .  println  (  b1  );      // Create a clone of the Book object and print its      // details      Book     b2     =     b1  .  clone  ();      System  .  out  .  println  (  b2  );      // Check if the two objects are equal      System  .  out  .  println  (  'b1 equals b2: '      +     b1  .  equals  (  b2  ));      // Get the hash code of the two objects      System  .  out  .  println  (  'b1 hash code: '      +     b1  .  hashCode  ());      System  .  out  .  println  (  'b2 hash code: '      +     b2  .  hashCode  ());      // Set book1 to null to trigger garbage collection      // and finalize method      b1     =     null  ;      System  .  gc  ();      }   }   

Çıkış
The Hitchhiker's Guide to the Galaxy by Douglas Adams (1979) The Hitchhiker's Guide to the Galaxy by Douglas Adams (1979) b1 equals b2: true b1 hash code: 1840214527 b2 hash code: 1840214527  

Açıklama: Yukarıdaki örnek kullanımını göstermektedir toString() eşittir() hashCode() Ve klon() içindeki yöntemler Kitap sınıfı .