কম্পিউটার টিউটোরিয়াল

জাভাতে মেম্বার ইনার ক্লাস কীভাবে ইনস্ট্যানশিয়েট করবেন?


একটি ক্লাসের ভিতরে ডিক্লেয়ার করা ক্লাস কিন্তু মেথডের বাইরে তাকে মেম্বার ইনার ক্লাস বলা হয়।

আমরা একটি মেম্বার ইনার ক্লাস দুটি উপায়ে ইনস্ট্যানশিয়েট করতে পারি

  • ক্লাসের ভিতরে আহ্বান (Invoked within the class)
  • ক্লাসের বাইরে আহ্বান (Invoked outside the class)

ইনার ক্লাসের নিয়ম

  • আউটার ক্লাস (ইনার ক্লাস ধারণকারী ক্লাস) তার কোডের ভিতরে যতখানি ইচ্ছে ততখানি ইনার ক্লাস অবজেক্ট ইনস্ট্যানশিয়েট করতে পারে।
  • যদি ইনার ক্লাস পাবলিক হয় এবং কন্টেইনিং ক্লাসটিও পাবলিক হয়, তবে অন্য কোনো অলগ ক্লাসের কোডও ইনার ক্লাসের ইনস্ট্যান্স তৈরি করতে পারে।
  • আউটার ক্লাস অবজেক্টের সাথে কোনো ইনার ক্লাস অবজেক্ট অটোমেটিক্যালি ইনস্ট্যানশিয়েট হয় না।
  • যদি ইনার ক্লাস স্ট্যাটিক হয়, তবে স্ট্যাটিক ইনার ক্লাস আউটার ক্লাস ইনস্ট্যান্স ছাড়া ইনস্ট্যানশিয়েট করা যায়। অন্যথায়, ইনার ক্লাস অবজেক্ট অবশ্যই আউটার ক্লাসের একটি ইনস্ট্যান্সের সাথে অ্যাসোসিয়েটেড হতে হবে।
  • আউটার ক্লাস ইনার ক্লাসের প্রাইভেট মেথডও কল করতে পারে।

ক্লাসের ভিতরে আহ্বান করা মেম্বার ইনার ক্লাস

নিচের উদাহরণে, আমরা OuterClass-এর display() মেথড থেকে মেম্বার ইনার ক্লাসের মেথড আহ্বান করছি।

উদাহরণ

public class OuterClass {
    private int value = 20;
    class InnerClass {
        void show() {
            System.out.println("Value is: " + value);
        }
    }
    void display() {
        InnerClass ic = new InnerClass();
        ic.show();
    }
    public static void main(String args[]){
        OuterClass oc = new OuterClass();
        oc.display();
    }
}
Value is: 20

ক্লাসের বাইরে আহ্বান করা মেম্বার ইনার ক্লাস

নিচের উদাহরণে, আমরা Test ক্লাস থেকে OuterClass-এর বাইরে InnerClass-এর show() মেথড আহ্বান করছি।

উদাহরণ

class OuterClass {
    private int value = 20;
    class InnerClass {
        void show() {
            System.out.println("Value is: "+ value);
        }
    }
}
public class Test {
    public static void main(String args[]) {
        OuterClass obj = new OuterClass();
        OuterClass.InnerClass in = obj.new InnerClass();
        in.show();
    }
}

আউটপুট

Value is: 20
  1. জাভাতে JTextField-এ প্যাডিং যোগ করুন

  2. জাভাতে ইন্টারফেস

  3. জাভাতে ফাইনাল ক্লাস

  4. জাভাতে সাব-প্যাকেজ ব্যবহার করা