Getter এবং Setter এর মাধ্যমে প্রপার্টি Access করা

Bean Property Access (বিন প্রপার্টি অ্যাক্সেস) - জাভা বীনইউটিলস (Java BeanUtils) - Computer Programming

363

Java Beans এবং সাধারণ Java ক্লাসগুলিতে প্রপার্টি অ্যাক্সেস করার জন্য getter এবং setter মেথড ব্যবহৃত হয়। Getter মেথড সাধারণত প্রপার্টি (field) এর মান রিটার্ন করে এবং Setter মেথড সেই প্রপার্টিতে নতুন মান সেট করতে ব্যবহৃত হয়। এই মেথডগুলি ডেটা এনক্যাপসুলেশন নিশ্চিত করতে সহায়ক, যাতে প্রপার্টি সরাসরি অ্যাক্সেস করা না হয়ে getter এবং setter মেথডের মাধ্যমে ডেটা পরিচালনা করা যায়।


Getter এবং Setter এর ভূমিকা:

  1. Getter মেথড:
    • এটি একটি প্রপার্টি বা ফিল্ডের মান রিটার্ন করে।
    • নামের প্রথম অক্ষর সাধারণত get দিয়ে শুরু হয় (যেমন getName(), getAge()), তবে বুলিয়ান প্রপার্টির জন্য এটি is দিয়েও শুরু হতে পারে (যেমন isActive())
  2. Setter মেথড:
    • এটি একটি প্রপার্টি বা ফিল্ডে নতুন মান সেট করে।
    • নামের প্রথম অক্ষর সাধারণত set দিয়ে শুরু হয় (যেমন setName(), setAge())

এটি একটি Encapsulation কৌশল, যেখানে প্রপার্টি সরাসরি অ্যাক্সেস না করে, শুধুমাত্র এই getter/setter মেথডের মাধ্যমে ডেটা অ্যাক্সেস এবং ম্যানিপুলেশন করা হয়।


Getter এবং Setter মেথডের উদাহরণ:

public class Person {
    private String name;
    private int age;

    // Getter for name
    public String getName() {
        return name;
    }

    // Setter for name
    public void setName(String name) {
        this.name = name;
    }

    // Getter for age
    public int getAge() {
        return age;
    }

    // Setter for age
    public void setAge(int age) {
        this.age = age;
    }
}

ব্যাখ্যা:

  1. Person ক্লাসের দুটি প্রপার্টি রয়েছে: name এবং age
  2. Getter এবং Setter মেথড ব্যবহার করে এই প্রপার্টিগুলির মান অ্যাক্সেস এবং পরিবর্তন করা হয়।

Getter এবং Setter মেথড ব্যবহার:

public class Main {
    public static void main(String[] args) {
        // Create a new Person object
        Person person = new Person();

        // Using setter methods to set properties
        person.setName("John");
        person.setAge(30);

        // Using getter methods to get properties
        System.out.println("Name: " + person.getName());  // Output: John
        System.out.println("Age: " + person.getAge());    // Output: 30
    }
}

ব্যাখ্যা:

  1. setName("John") এবং setAge(30) মেথড ব্যবহার করে Person অবজেক্টের প্রপার্টি সেট করা হয়েছে।
  2. getName() এবং getAge() মেথড ব্যবহার করে সেই প্রপার্টির মান রিটার্ন করা হয়েছে।

Getter এবং Setter এর সুবিধা:

  1. ডেটা এনক্যাপসুলেশন (Data Encapsulation):
    • প্রপার্টির অ্যাক্সেস সীমাবদ্ধ করা হয়, যাতে আপনি সরাসরি প্রপার্টি অ্যাক্সেস না করে মেথডের মাধ্যমে সেটি পরিচালনা করতে পারেন।
  2. কন্ট্রোলড ডেটা অ্যাক্সেস (Controlled Data Access):
    • আপনি setter মেথডে বৈধতা চেক করতে পারেন, যাতে ভুল ডেটা সেট না হয়।
    • getter মেথডে আপনি প্রপার্টির মান পরিবর্তন করতে পারেন, যেমন, একটি ফর্ম্যাটিং বা ক্যালকুলেশন।
  3. ভাল পারফরম্যান্স (Better Performance):
    • Getter এবং Setter ব্যবহার করে কোডের ভাল পারফরম্যান্স নিশ্চিত করা যায়, বিশেষত যখন আপনি প্রপার্টি কপি, ট্র্যাক বা লোগিং করতে চান।

Nested Properties (নেস্টেড প্রপার্টি)

Nested Properties হল একটি প্রপার্টি যার মান আরেকটি অবজেক্ট হতে পারে। অর্থাৎ, একটি Java Bean এর মধ্যে অন্য একটি Java Bean থাকতে পারে, এবং এর প্রপার্টিগুলি সরাসরি অ্যাক্সেস করা সম্ভব নয়। তবে getter এবং setter মেথড ব্যবহার করে আপনি এই nested properties-এর মান অ্যাক্সেস বা পরিবর্তন করতে পারবেন।

উদাহরণ: Nested Property Access

public class Address {
    private String street;
    private String city;

    // Constructor, getters, and setters
    public Address(String street, String city) {
        this.street = street;
        this.city = city;
    }

    public String getStreet() {
        return street;
    }

    public void setStreet(String street) {
        this.street = street;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }
}

public class Person {
    private String name;
    private Address address;

    // Constructor, getters, and setters
    public Person(String name, Address address) {
        this.name = name;
        this.address = address;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Address getAddress() {
        return address;
    }

    public void setAddress(Address address) {
        this.address = address;
    }
}

Nested Property Access Example:

public class Main {
    public static void main(String[] args) {
        // Create a new Address object
        Address address = new Address("Street 123", "City A");

        // Create a new Person object with the Address object
        Person person = new Person("John", address);

        // Accessing nested properties
        System.out.println("Name: " + person.getName());                // Output: John
        System.out.println("Street: " + person.getAddress().getStreet());  // Output: Street 123
        System.out.println("City: " + person.getAddress().getCity());      // Output: City A
    }
}

ব্যাখ্যা:

  • Person ক্লাসে একটি Address অবজেক্ট রয়েছে।
  • Nested properties অ্যাক্সেস করতে person.getAddress().getStreet() এবং person.getAddress().getCity() ব্যবহার করা হয়েছে।

Indexed Properties (ইন্ডেক্সড প্রপার্টি)

Indexed Properties হল এমন প্রপার্টি যা array বা list টাইপের হতে পারে। এটি getter এবং setter মেথডের মাধ্যমে ইন্ডেক্স ব্যবহার করে অ্যাক্সেস করা যায়।

উদাহরণ: Indexed Property Access

public class Team {
    private String[] members;

    // Constructor, getter, and setter
    public Team() {
        members = new String[5];  // Assume the team can have 5 members
    }

    public String getMember(int index) {
        return members[index];
    }

    public void setMember(int index, String name) {
        members[index] = name;
    }
}

Indexed Property Access Example:

public class Main {
    public static void main(String[] args) {
        // Create a new Team object
        Team team = new Team();

        // Set members using indexed setter
        team.setMember(0, "Alice");
        team.setMember(1, "Bob");

        // Get members using indexed getter
        System.out.println("Member 1: " + team.getMember(0));  // Output: Alice
        System.out.println("Member 2: " + team.getMember(1));  // Output: Bob
    }
}

ব্যাখ্যা:

  • Team ক্লাসে একটি String array ব্যবহার করা হয়েছে যা সদস্যদের নাম ধারণ করে।
  • Indexed properties অ্যাক্সেস করতে getMember() এবং setMember() মেথড ব্যবহার করা হয়েছে।

সারাংশ

  • Getter এবং Setter মেথড ব্যবহার করে Java Beans বা সাধারণ Java ক্লাসগুলিতে প্রপার্টি অ্যাক্সেস এবং ম্যানিপুলেশন করা হয়। এটি Encapsulation পদ্ধতির অংশ, যা ডেটা নিরাপত্তা এবং কোড পরিস্কার রাখে।
  • Nested Properties অন্য একটি Bean এর মধ্যে প্রপার্টি অ্যাক্সেস করতে সাহায্য করে, যা Java Beans এ সাধারিত।
  • Indexed Properties array বা list ধরনের প্রপার্টি অ্যাক্সেস করার জন্য ব্যবহৃত হয়, যেখানে প্রপার্টির মান ইন্ডেক্সের মাধ্যমে অ্যাক্সেস করা যায়।
Content added || updated By
Promotion

Are you sure to start over?

Loading...