Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Java

जावा में सभी वर्गों के लिए ऑब्जेक्ट क्लास सुपर क्लास क्यों है?


Java.lang.Object वर्ग वर्ग पदानुक्रम का मूल या सुपरक्लास है, जो java.lang पैकेज . में मौजूद है . सभी पूर्वनिर्धारित वर्ग और उपयोगकर्ता-परिभाषित वर्ग ऑब्जेक्ट . के उपवर्ग हैं कक्षा।

ऑब्जेक्ट क्लास एक सुपरक्लास क्यों है

पुन:प्रयोज्य

  • हर वस्तु में 11 सामान्य गुण होते हैं, इन गुणों को प्रत्येक जावा डेवलपर द्वारा लागू किया जाना चाहिए।
  • डेवलपर पर बोझ कम करने के लिए सन ने इन सभी 11 गुणों को 11 तरीकों से लागू करके ऑब्जेक्ट नामक एक वर्ग विकसित किया।
  • इन सभी विधियों में सभी उपवर्गों के लिए सामान्य तर्क हैं, यदि यह तर्क उपवर्ग की आवश्यकता को पूरा नहीं कर रहा है तो उपवर्ग इसे ओवरराइड कर सकता है

रनटाइम बहुरूपता

  • रनटाइम बहुरूपता प्राप्त करने के लिए ताकि हम किसी भी प्रकार की क्लास ऑब्जेक्ट को तर्क के रूप में और रिटर्न प्रकार के रूप में प्राप्त करने और भेजने के लिए एक ही विधि लिख सकें।

हर वर्ग वस्तु की सामान्य कार्यात्मकता

दो वस्तुओं की तुलना करना

  • सार्वजनिक बूलियन बराबर (ऑब्जेक्ट obj)

हैशकोड पुनर्प्राप्त करना

  • सार्वजनिक इंट हैशकोड ()

रन टाइम क्लास ऑब्जेक्ट रेफरेंस पुनर्प्राप्त करना

  • सार्वजनिक अंतिम कक्षा getClass()

ऑब्जेक्ट जानकारी को स्ट्रिंग प्रारूप में पुनर्प्राप्त करना

  • सार्वजनिक स्ट्रिंग टूस्ट्रिंग ()

ऑब्जेक्ट को क्लोन करना

  • संरक्षित ऑब्जेक्ट क्लोन () CloneNotSupportedException फेंकता है

ऑब्जेक्ट क्लीन-अप कोड/संसाधन जारी करने वाला कोड

  • संरक्षित शून्य को अंतिम रूप दें () फेंकने योग्य फेंकता है

वर्तमान थ्रेड की प्रतीक्षा करने के लिए जब तक कोई अन्य थ्रेड सूचित नहीं करता ()

  • सार्वजनिक अंतिम शून्य प्रतीक्षा() इंटरप्टेड एक्सेप्शन फेंकता है

वर्तमान थ्रेड के लिए प्रतीक्षा करने के लिए जब तक कि कोई अन्य थ्रेड सूचित () को निर्दिष्ट समय तक नहीं बुलाता

  • सार्वजनिक अंतिम शून्य प्रतीक्षा (लंबी समयबाह्य) इंटरप्टेड एक्सेप्शन फेंकता है

वर्तमान थ्रेड के लिए प्रतीक्षा करने के लिए जब तक कि कोई अन्य थ्रेड सूचित () को निर्दिष्ट समय तक नहीं बुलाता

  • सार्वजनिक अंतिम शून्य प्रतीक्षा (लंबे समय तक, इंट नैनो) इंटरप्टेड एक्सेप्शन फेंकता है

वेटिंग थ्रेड के लिए ऑब्जेक्ट लॉक उपलब्धता के बारे में सूचित करें

  • सार्वजनिक अंतिम शून्य सूचना ()

वेटिंग थ्रेड्स के लिए ऑब्जेक्ट लॉक उपलब्धता के बारे में सूचित करें

  • सार्वजनिक अंतिम शून्य सूचित सभी ()

उदाहरण

class Thing extends Object implements Cloneable {
   public String id;
   public Object clone() throws CloneNotSupportedException {
      return super.clone();
   }
   public boolean equals(Object obj) {
      boolean result = false;
      if ((obj!=null) && obj instanceof Thing) {
         Thing t = (Thing) obj;
         if (id.equals(t.id)) result = true;
      }
      return result;
   }
   public int hashCode() {
      return id.hashCode();
   }
   public String toString() {
      return "This is: "+id;
   }
}
public class Test {
   public static void main(String args[]) throws Exception {
      Thing t1 = new Thing(), t2;
      t1.id = "Raj";
      t2 = t1; // t1 == t2 and t1.equals(t2)
      t2 = (Thing) t1.clone(); // t2!=t1 but t1.equals(t2)
      t2.id = "Adithya"; // t2!=t1 and !t1.equals(t2)
      Object obj = t2;
      System.out.println(obj); //Thing = Adithya
   }
}

आउटपुट

This is: Adithya

  1. जावा 9 में @Deprecated एनोटेशन के लिए क्या सुधार हैं?

    कोई भी तत्व जिसे @Deprecated से एनोटेट किया जा सकता है यह दर्शाता है कि इस विशेष तत्व का अब निम्न कारणों से उपयोग नहीं किया जाएगा इसका उपयोग करना जोखिम भरा है और इससे त्रुटियां हो सकती हैं। भविष्य के संस्करणों में असंगत हो सकता है। भविष्य के संस्करणों में हटाया जा सकता है। एक बेहतर और अधिक कुशल समा

  1. कंस्ट्रक्टर का नाम जावा में क्लास के नाम के समान क्यों है?

    हर क्लास ऑब्जेक्ट एक ही नए कीवर्ड का उपयोग करके बनाया जाता है, इसलिए इसमें उस क्लास के बारे में जानकारी होनी चाहिए जिससे उसे ऑब्जेक्ट बनाना चाहिए। इस कारण से, कंस्ट्रक्टर का नाम वर्ग के नाम के समान होना चाहिए। उदाहरण class MyConstructor{    public MyConstructor() {       Sys

  1. जावा में सुपर कीवर्ड

    सुपर वेरिएबल तत्काल पैरेंट क्लास इंस्टेंस को संदर्भित करता है। सुपर वैरिएबल तत्काल पैरेंट क्लास मेथड को लागू कर सकता है। super() तत्काल पैरेंट क्लास कंस्ट्रक्टर के रूप में कार्य करता है और चाइल्ड क्लास कंस्ट्रक्टर में पहली पंक्ति होना चाहिए। एक ओवरराइड विधि के सुपरक्लास संस्करण को लागू करते समय सुप