ক্

ক্লাস মধ্যে Java

12টি অনুশীলনী

ক্লাস সম্পর্কে

Java-এর প্রধান অবজেক্ট-ওরিয়েন্টেড গঠনটি হলো ক্লাস, যা ডেটা (ফিল্ড), অর্থাৎ ইনস্ট্যান্স ভ্যারিয়েবল, এবং আচরণ (মেথড)-এর সমন্বয়। একটি ক্লাসের ফিল্ড ও মেথডগুলোকে তার মেম্বার বলা হয়।

অ্যাক্সেস মডিফায়ার দিয়ে মেম্বারগুলোর অ্যাক্সেস নিয়ন্ত্রণ করা যায়, যার মধ্যে দুটি সবচেয়ে কমন:

  • public: যেকোনো কোড থেকে মেম্বারটি অ্যাক্সেস করা যায় (কোনো নিষেধাজ্ঞা নেই)।
  • private: শুধু একই ক্লাসের কোড থেকে মেম্বারটি অ্যাক্সেস করা যায়।

Java-তে কোনো অ্যাক্সেস মডিফায়ার না দিলে ডিফল্ট হলো প্যাকেজ ভিজিবিলিটি। সেক্ষেত্রে মেম্বারটি একই প্যাকেজে ডিফাইন করা সব ক্লাসের কাছেই দৃশ্যমান থাকে।

সম্পর্কিত ডেটা ও আচরণ একসাথে রাখা এবং মেম্বারগুলোর অ্যাক্সেস সীমিত করাকে এনক্যাপসুলেশন বলা হয়, যা অবজেক্ট-ওরিয়েন্টেড ধারণাগুলোর একটি মূল ভিত্তি।

আপনি একটি ক্লাসকে সেই ক্লাসের ইনস্ট্যান্স তৈরির টেমপ্লেট হিসেবে ভাবতে পারেন। একটি ক্লাসের ইনস্ট্যান্স তৈরি করতে (যা অবজেক্ট নামেও পরিচিত) new কিওয়ার্ড ব্যবহার করা হয়:

class Car {
}

// Create two car instances
Car myCar = new Car();
Car yourCar = new Car();

ফিল্ড-এর একটি টাইপ ও একটি নাম থাকে (নাম লেখা হয় camelCase-এ) এবং ক্লাসের যেকোনো জায়গায় ডিফাইন করা যায় (ক্লাসের নাম লেখা হয় PascalCase-এ)।

class Car {
    // Accessible by anyone
    public int weight;

    // Only accessible by code in this class
    private String color;
}

একটি ফিল্ডে ইচ্ছেমতো শুরুর একটি মান অ্যাসাইন করা যায়। কোনো ফিল্ডে শুরুর মান না দিলে সেটি তার টাইপের ডিফল্ট মান হিসেবে সেট হয়ে যায়। ডট-নোটেশন দিয়ে একটি ইনস্ট্যান্সের ফিল্ডের মান অ্যাক্সেস ও আপডেট করা যায়।

class Car {
    // Will be set to specified value
    public int weight = 2500;

    // Will be set to default value (0)
    public int year;
}

Car newCar = new Car();
newCar.weight; // => 2500
newCar.year;   // => 0

// Update value of the field
newCar.year = 2018;

প্রাইভেট ফিল্ড সাধারণত কোনো মেথড কল করার পার্শ্বপ্রতিক্রিয়া হিসেবে আপডেট হয়। এমন মেথড সাধারণত কোনো মান রিটার্ন করে না, সেক্ষেত্রে রিটার্ন টাইপ void হওয়া উচিত:

class CarImporter {
    private int carsImported;

    public void importCars(int numberOfCars)
    {
        // Update private field
        carsImported = carsImported + numberOfCars;
    }
}

মনে রাখবেন, Java ক্লাসে পাবলিক ফিল্ড ব্যবহার করা প্রথাগত নয়। সাধারণত প্রাইভেট ফিল্ড ব্যবহার করা হয়, যেগুলো গেটার ও সেটার-এর মাধ্যমে অ্যাক্সেস করা হয়।

একটি ক্লাসের ভেতরে this কিওয়ার্ড বর্তমান ক্লাসকে বোঝায়। কোনো প্যারামিটারের নাম কোনো ফিল্ডের নামের সাথে একই হলে এটি বিশেষভাবে কাজে লাগে:

class CarImporter {
    private int carsImported;

    public void setImportedCars(int carsImported)
    {
        // Update private field from public method
        this.carsImported = carsImported;
    }
}
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি নতুন একটি উইন্ডো বা ট্যাবে খুলবে

ক্লাস শিখুন