एक अनाम आंतरिक वर्ग एक आंतरिक वर्ग है जिसे बिना किसी वर्ग के नाम के . घोषित किया जाता है बिल्कुल भी। दूसरे शब्दों में, एक अनाम आंतरिक वर्ग को अनाम आंतरिक वर्ग . कहा जाता है . चूंकि इसका कोई नाम नहीं है, इसलिए इसमें कन्स्ट्रक्टर . नहीं हो सकता है क्योंकि हम जानते हैं कि कंस्ट्रक्टर का नाम क्लास के नाम के समान होता है।
हम एक अनाम आंतरिक वर्ग define को परिभाषित कर सकते हैं और नए . का उपयोग करके इसका ऑब्जेक्ट बनाएं एक ही समय में एक ही चरण में ऑपरेटर।
सिंटैक्स
new(argument-list){ // Anonymous class body }
जावा में बेनामी इनर क्लास के प्रकार
- अनाम आंतरिक वर्ग जो एक वर्ग का विस्तार करता है
- अज्ञात आंतरिक वर्ग जो एक इंटरफ़ेस लागू करता है
- अनाम आंतरिक वर्ग एक तर्क के रूप में
अनाम आंतरिक वर्ग जो एक वर्ग का विस्तार करता है
यहां एक नया कीवर्ड का उपयोग अनाम आंतरिक वर्ग . का ऑब्जेक्ट बनाने के लिए किया जाता है जिसमें पैरेंट वर्ग प्रकार का संदर्भ है।
उदाहरण
class Car { public void engineType() { System.out.println("Turbo Engine"); } } public class AnonymousClassDemo { public static void main(String args[]) { Car c1 = new Car(); c1.engineType(); Car c2 = new Car() { @Override public void engineType() { System.out.println("V2 Engine"); } }; c2.engineType(); } }
आउटपुट
Turbo Engine V2 Engine
अनाम आंतरिक वर्ग जो एक इंटरफ़ेस लागू करता है
यहां एक नया कीवर्ड का उपयोग अनाम आंतरिक वर्ग . का ऑब्जेक्ट बनाने के लिए किया जाता है जिसमें इंटरफ़ेस प्रकार का संदर्भ . है
उदाहरण
interface Software { public void develop(); } public class AnonymousClassDemo1 { public static void main(String args[]) { Software s = new Software() { @Override public void develop() { System.out.println("Software Developed in Java"); } }; s.develop(); System.out.println(s.getClass().getName()); } }
आउटपुट
Software Developed in Java AnonymousClassDemo1$1
अनाम आंतरिक वर्ग एक तर्क के रूप में
हम अनाम आंतरिक वर्ग का उपयोग कर सकते हैं एक तर्क के रूप में ताकि इसे विधियों या कंस्ट्रक्टरों को पास किया जा सके।
उदाहरण
abstract class Engine { public abstract void engineType(); } class Vehicle { public void transport(Engine e) { e.engineType(); } } public class AnonymousInnerClassDemo2 { public static void main(String args[]) { Vehicle v = new Vehicle(); v.transport(new Engine() { @Override public void engineType() { System.out.println("Turbo Engine"); } }); } }
आउटपुट
Turbo Engine