Java Classes এবং Objects

Java Technologies - জাভা দিয়ে ডাটা স্ট্রাকচার এবং অ্যালগরিদম (DSA using Java) - জাভার বেসিক এবং জেনেরিক কনসেপ্ট (DSA এর জন্য)
624

Java একটি অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং (OOP) ভাষা, যার মূল ভিত্তি হলো Classes এবং Objects। Java-তে, Classes ডেটা এবং মেথডগুলির একটি ব্লুপ্রিন্ট (blueprint) হিসেবে কাজ করে, এবং Objects হল সেই ক্লাসের ইনস্ট্যান্স যা প্রকৃত ডেটা ধারণ করে।

এই নিবন্ধে, আমরা Java Classes এবং Objects এর ধারণা, তাদের গঠন এবং ডাটা স্ট্রাকচারঅ্যালগরিদম তৈরিতে কীভাবে ব্যবহৃত হয় তা আলোচনা করব।


1. Java Class কি?

Class হল একটি ব্লুপ্রিন্ট যা Object তৈরি করতে ব্যবহৃত হয়। ক্লাসে সাধারণত দুটি প্রধান উপাদান থাকে:

  • Fields (অথবা ভেরিয়েবল): যে ডেটাগুলি আমরা ক্লাসে স্টোর করতে চাই তা রাখা হয়।
  • Methods: যে কার্যক্রম বা আচরণগুলি ক্লাসের অবজেক্টগুলির জন্য উপলব্ধ থাকে তা গঠন করা হয়।

একটি ক্লাস তৈরি করতে, class কিওয়ার্ড ব্যবহার করা হয় এবং তারপরে ক্লাসের নাম দেওয়া হয়।

ক্লাসের সাধারণ গঠন:

public class Car {
    // Fields (ভেরিয়েবল)
    String color;
    String model;
    int year;

    // Methods (ফাংশন)
    public void displayDetails() {
        System.out.println("Car Model: " + model);
        System.out.println("Car Color: " + color);
        System.out.println("Car Year: " + year);
    }
}

ব্যাখ্যা:

  • Car ক্লাসের মধ্যে তিনটি ফিল্ড রয়েছে: color, model, এবং year
  • displayDetails() মেথডটি একটি অ্যাকশন বা কার্যক্রমের প্রতিনিধিত্ব করে, যা গাড়ির বিস্তারিত প্রদর্শন করে।

2. Java Object কি?

Object হল একটি ক্লাসের ইনস্ট্যান্স, যা ক্লাসে সংজ্ঞায়িত ডেটা এবং আচরণ ধারণ করে। একটি ক্লাস থেকে একাধিক অবজেক্ট তৈরি করা যায় এবং প্রতিটি অবজেক্টের নিজস্ব ডেটা থাকে। অবজেক্ট তৈরি করতে new কিওয়ার্ড ব্যবহার করা হয়।

উদাহরণ:

public class Main {
    public static void main(String[] args) {
        // Car ক্লাসের একটি অবজেক্ট তৈরি করা
        Car myCar = new Car();

        // অবজেক্টের ফিল্ডে মান দেওয়া
        myCar.color = "Red";
        myCar.model = "Toyota Corolla";
        myCar.year = 2020;

        // অবজেক্টের মেথড কল করা
        myCar.displayDetails();
    }
}

ব্যাখ্যা:

  • এখানে myCar একটি Car অবজেক্ট, যা Car ক্লাসের একটি ইনস্ট্যান্স।
  • myCar.color, myCar.model, এবং myCar.year ফিল্ডগুলিতে মান সেট করা হয়েছে এবং অবশেষে displayDetails() মেথডের মাধ্যমে গাড়ির বিস্তারিত প্রদর্শন করা হয়েছে।

3. Class এবং Object এর মধ্যে পার্থক্য

দিকClassObject
সংজ্ঞাএকটি ব্লুপ্রিন্ট যা অবজেক্ট তৈরির জন্য ব্যবহৃত হয়।একটি ক্লাসের ইনস্ট্যান্স বা উদাহরণ।
ডেটাডেটা ধারণ করে না, কেবল গঠন ও আচরণ নির্দেশ করে।ক্লাসের ডেটা এবং আচরণ ধারণ করে।
মেমরিক্লাসের জন্য মেমরি এক্সটেনশন তৈরি হয় না।অবজেক্ট তৈরির সময় মেমরি এক্সটেনশন তৈরি হয়।
ব্লুপ্রিন্টহ্যাঁ, অবজেক্ট তৈরির জন্য।না, এটি একটি বাস্তব অবজেক্ট।
কোডক্লাসে ফিল্ড এবং মেথড থাকে।এটি ক্লাসের একটি কনক্রিট (নির্দিষ্ট) ইনস্ট্যান্স।

4. Constructors in Java

Constructor হল একটি বিশেষ মেথড যা একটি ক্লাসের অবজেক্ট তৈরি করার সময় স্বয়ংক্রিয়ভাবে কল করা হয়। কনস্ট্রাক্টরের প্রধান কাজ হল অবজেক্টের ইনিশিয়ালাইজেশন। কনস্ট্রাক্টরের নাম ক্লাসের নামের মতো হয় এবং এটি রিটার্ন টাইপ ছাড়া থাকে।

কনস্ট্রাক্টরের উদাহরণ:

public class Car {
    String color;
    String model;
    int year;

    // Constructor
    public Car(String color, String model, int year) {
        this.color = color;
        this.model = model;
        this.year = year;
    }

    // Method
    public void displayDetails() {
        System.out.println("Car Model: " + model);
        System.out.println("Car Color: " + color);
        System.out.println("Car Year: " + year);
    }
}

public class Main {
    public static void main(String[] args) {
        // Constructor এর মাধ্যমে অবজেক্ট তৈরি করা
        Car myCar = new Car("Red", "Honda Civic", 2021);
        myCar.displayDetails();
    }
}

ব্যাখ্যা:

  • এখানে, Car ক্লাসে একটি কনস্ট্রাক্টর রয়েছে যা অবজেক্ট তৈরি করার সময় color, model, এবং year এর মান ইনিশিয়ালাইজ করে।
  • new Car("Red", "Honda Civic", 2021) এর মাধ্যমে কনস্ট্রাক্টরটি কল করা হয়েছে এবং অবজেক্ট ইনিশিয়ালাইজ করা হয়েছে।

5. Encapsulation in Java

Encapsulation হল একটি OOP ধারণা যা ডেটা হাইডিংয়ের মাধ্যমে ক্লাসের ভেতরে থাকা ডেটাকে সুরক্ষিত রাখে এবং শুধুমাত্র সেই ডেটাকে অ্যাক্সেস করতে অনুমতি দেয় যা প্রয়োজন।

Java তে encapsulation বাস্তবায়ন করতে আমরা সাধারণত private ফিল্ড এবং gettersetter মেথড ব্যবহার করি।

উদাহরণ: Encapsulation

public class Car {
    // Private Fields
    private String color;
    private String model;
    private int year;

    // Getter Methods
    public String getColor() {
        return color;
    }

    public String getModel() {
        return model;
    }

    public int getYear() {
        return year;
    }

    // Setter Methods
    public void setColor(String color) {
        this.color = color;
    }

    public void setModel(String model) {
        this.model = model;
    }

    public void setYear(int year) {
        this.year = year;
    }

    // Method
    public void displayDetails() {
        System.out.println("Car Model: " + model);
        System.out.println("Car Color: " + color);
        System.out.println("Car Year: " + year);
    }
}

ব্যাখ্যা:

  • এখানে, color, model, এবং year ফিল্ডগুলি private রূপে ডিফাইন করা হয়েছে যাতে সেগুলিতে সরাসরি অ্যাক্সেস করা না যায়।
  • getter এবং setter মেথডের মাধ্যমে আমরা এই ফিল্ডগুলির মান অ্যাক্সেস এবং পরিবর্তন করতে পারি।

6. Inheritance in Java

Inheritance হল OOP এর আরেকটি গুরুত্বপূর্ণ ধারণা যেখানে একটি ক্লাস অন্য একটি ক্লাসের বৈশিষ্ট্য (ফিল্ড এবং মেথড) উত্তরাধিকার হিসেবে পায়। এর মাধ্যমে কোড পুনঃব্যবহার করা যায় এবং নতুন ক্লাস তৈরি করার জন্য পূর্ববর্তী ক্লাসের বৈশিষ্ট্য ব্যবহার করা হয়।

উদাহরণ: Inheritance

public class Vehicle {
    public void start() {
        System.out.println("Vehicle is starting...");
    }
}

public class Car extends Vehicle {
    public void honk() {
        System.out.println("Car is honking...");
    }
}

public class Main {
    public static void main(String[] args) {
        Car myCar = new Car();
        myCar.start();  // Inherited method
        myCar.honk();   // Child class method
    }
}

ব্যাখ্যা:

  • Car ক্লাসটি Vehicle ক্লাস থেকে inherit করেছে, তাই Car ক্লাস Vehicle ক্লাসের start() মেথড ব্যবহার করতে সক্ষম।
  • এটি কোড পুনঃব্যবহার নিশ্চিত করে।

7. Polymorphism in Java

Polymorphism হল OOP-এর একটি গুরুত্বপূর্ণ ধারণা যেখানে একই মেথড নাম বিভিন্ন ধরনের অবজেক্টের জন্য বিভিন্ন কাজ করতে পারে। এটি method overloading এবং method overriding এর মাধ্যমে বাস্তবায়িত হয়।

উদাহরণ: Method Overriding (Runtime Polymorphism)

class Animal {
    public void sound() {
        System.out.println("Animal makes sound");
    }
}

class Dog extends Animal {
    @Override
    public void sound() {
        System.out.println("Dog barks");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal myAnimal = new Animal();
        myAnimal.sound();  // Animal sound

        Dog myDog = new Dog();
        myDog.sound();     // Dog sound
    }
}

ব্যাখ্যা:

  • Dog ক্লাস Animal ক্লাস থেকে sound() মেথড override করেছে, যার ফলে এটি নিজস্ব আচরণ প্রয়োগ করে।
  • এটি runtime polymorphism উদাহরণ হিসেবে কাজ করে।

সারাংশ

Java Classes এবং Objects হল OOP এর মৌলিক ধারণা যা ডেটা এবং কার্যক্রমকে একত্রে সংরক্ষণ করার সুবিধা দেয়। Encapsulation, Inheritance, Polymorphism, এবং Abstraction হল OOP এর অন্যান্য গুরুত্বপূর্ণ বৈশিষ্ট্য যা ডেটা স্ট্রাকচার এবং অ্যালগরিদম তৈরিতে সাহায্য করে। Java-এ Classes এবং Objects ব্যবহার করে আপনি উন্নত এবং পুনঃব্যবহারযোগ্য কোড তৈরি করতে পারেন যা ডেটা স্ট্রাকচার এবং অ্যালগরিদমের কার্যকারিতা আরও সহজ করে তোলে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...