Java में कक्षाओं के प्रकार
कंक्रीट क्लास
कोई भी सामान्य वर्ग जिसमें कोई अमूर्त विधि या वर्ग नहीं होता है, जिसमें अपने मूल वर्ग या इंटरफ़ेस के सभी तरीकों का कार्यान्वयन होता है और इसकी अपनी विधियाँ एक ठोस वर्ग होती हैं।
उदाहरण
public class Concrete { // Concrete Class static int product(int a, int b) { return a * b; } public static void main(String args[]) { int p = product(2, 3); System.out.println("Product: " + p); } }
आउटपुट
Product: 6
सार वर्ग
अमूर्त कीवर्ड के साथ घोषित एक वर्ग और शून्य या अधिक सार विधियों को अमूर्त वर्ग के रूप में जाना जाता है। अमूर्त वर्ग अपूर्ण वर्ग हैं, इसलिए, इसका उपयोग करने के लिए हमें अमूर्त वर्गों को एक ठोस वर्ग तक विस्तारित करने की सख्त आवश्यकता है।
उदाहरण
abstract class Animal { //abstract parent class public abstract void sound(); //abstract method } public class Dog extends Animal { //Dog class extends Animal class public void sound() { System.out.println("Woof"); } public static void main(String args[]) { Animal a = new Dog(); a.sound(); } }
आउटपुट
Woof
फाइनल क्लास
अंतिम कीवर्ड के साथ घोषित एक वर्ग एक अंतिम वर्ग है और इसे किसी अन्य वर्ग द्वारा विस्तारित नहीं किया जा सकता है, उदाहरण के लिए, java.lang.System वर्ग।
उदाहरण
final class BaseClass { void Display() { System.out.print("This is Display() method of BaseClass."); } } class DerivedClass extends BaseClass { //Compile-time error - can't inherit final class void Display() { System.out.print("This is Display() method of DerivedClass."); } } public class FinalClassDemo { public static void main(String[] arg) { DerivedClass d = new DerivedClass(); d.Display(); } }
उपरोक्त उदाहरण में, DerivedClass, BaseClass(अंतिम) का विस्तार करता है , हम एक अंतिम वर्ग का विस्तार नहीं कर सकते हैं, इसलिए संकलक एक त्रुटि देगा . उपरोक्त प्रोग्राम नहीं निष्पादित करें ।
आउटपुट
cannot inherit from final BaseClass Compile-time error - can't inherit final class
POJO वर्ग
एक वर्ग जिसमें उन चरों का उपयोग करने के लिए केवल निजी चर और सेटर और गेट्टर विधियाँ होती हैं, POJO (सादा पुराना जावा ऑब्जेक्ट) वर्ग कहलाता है। यह पूरी तरह से एनकैप्सुलेटेड क्लास है।
उदाहरण
class POJO { private int value=100; public int getValue() { return value; } public void setValue(int value) { this.value = value; } } public class Test { public static void main(String args[]){ POJO p = new POJO(); System.out.println(p.getValue()); } }
आउटपुट
100
स्थिर वर्ग
स्टेटिक क्लासेस नेस्टेड क्लासेस होते हैं, जिसका अर्थ है कि एक क्लास को किसी अन्य क्लास के भीतर स्टैटिक मेंबर के रूप में घोषित किया जाता है, जिसे स्टैटिक क्लास कहा जाता है।
उदाहरण
import java.util.Scanner; class staticclasses { static int s; // static variable static void met(int a, int b) { // static method System.out.println("static method to calculate sum"); s = a + b; System.out.println(a + "+" + b); // print two numbers } static class MyNestedClass { // static class static { // static block System.out.println("static block inside a static class"); } public void disp() { int c, d; Scanner sc = new Scanner(System.in); System.out.println("Enter two values"); c = sc.nextInt(); d = sc.nextInt(); met(c, d); // calling static method System.out.println("Sum of two numbers-" + s); // print the result in static variable } } } public class Test { public static void main(String args[]) { staticclasses.MyNestedClass mnc = new staticclasses.MyNestedClass(); // object for static class mnc.disp(); // accessing methods inside a static class } }
आउटपुट
static block inside a static class Enter two values 10 20 static method to calculate sum 10+20 Sum of two numbers-30
आंतरिक कक्षा
किसी अन्य वर्ग या विधि के भीतर घोषित वर्ग को आंतरिक वर्ग कहा जाता है।
उदाहरण
public class OuterClass { public static void main(String[] args) { System.out.println("Outer"); } class InnerClass { public void inner_print() { System.out.println("Inner"); } } }
आउटपुट
Outer