প্রব্লেম / সমস্যা:
এখানে আমরা ফলের জন্য একটি ক্লাস ডিক্লেয়ার করতে পারি যেখানে আমরা ফলের নাম, প্রাইস প্রাইভেট করে রাখতে পারি গেটার (Getter) এবং সেটার (Setter) মেথডগুলি প্রদান করে ফিল্ডের অ্যাক্সেস প্রদান করতে পারি। আর একটি অর্ডার ক্লাস নিতে পারি যেখানে কাস্টমারের নাম, অর্ডার লিস্ট এবং টোটাল কস্ট থাকবে। এখানেও কাস্টমারের নাম, টোটাল কস্ট, অর্ডারলিস্ট এবং টোটাল কস্ট প্রাইভেট করে রাখতে পারি এবং গেটার এবং সেটার মেথডগুলি প্রদান করে ডেটার অ্যাক্সেস প্রদান করতে পারি।
কাস্টমারের জন্য একটা আলাদা ক্লাস থাকবে যেখানে কাস্টমারের নাম, ইমেইল, ডেট অফ বার্থ, এবং আড্রেস থাকবে যেগুলা আমরা প্রাইভেট করে রাখবো। আমরা চাইলে এখানে পারসিয়ালি ডাটা হাইড করতে পারি অর্থ্যাৎ আমরা কলারকে কিছু ইনফরমেশঅন দিব বাকিটা দিব না। ধরুন আমরা এখানে কাস্টমারের ক্লাসে আড্রাসের জন্য কোনো গেটার মেথড প্রদান করব না, শুধুমাত্র কাস্টমারের নাম, টোটাল কস্ট, অর্ডারলিস্ট এর জন্য গেটার মেথড প্রদান করব।
আসুন আমরা একটা কোডিং এর মাধ্যমে এক্সাম্পল দেখি
import java.util.Date; public class Customer { private String customerName; private String customerEmail; private Date dateOfBirth; private String customerAddress; public String getName() { return customerName; } public void setName(String name) { customerName = name; } public String getEmail() { return customerEmail; } public void setEmail(String email) { customerEmail = email; } public Date getDateOfBirth() { // Property for Date of Birth return dateOfBirth; } public void setDateOfBirth(Date dob) { dateOfBirth = dob; } public void setAddress(String address) { customerAddress = address; } } public class Program { public static void main(String[] args) { Customer customer = new Customer(); // Set values using setters customer.setName(“Alim”); customer.setEmail(“Alim@gmail.com”); // Create a Date object for Date of Birth Date dateOfBirth = new Date(99, 8, 18); // Year: 1999, Month: September (0-based), Day: 18 customer.setDateOfBirth(dateOfBirth); customer.setAddress(“Banani”); // Retrieve values using getters String name = customer.getName(); String email = customer.getEmail(); Date dob = customer.getDateOfBirth(); // Print the values System.out.println(name); System.out.println(email); System.out.println(dob); } }
using System; public class Customer { private string customerName; private string customerEmail; private DateTime dateOfBirth; private string customerAddress; public string Name { get { return customerName; } set { customerName = value; } } public string Email { get { return customerEmail; } set { customerEmail = value; } } public DateTime DateOfBirth { get { return dateOfBirth; } set { dateOfBirth = value; } } public void SetAddress(string address) { customerAddress = address; } }
Link: https://dotnetfiddle.net/zcuH7T
public class Program { public static void Main(string[] args) { Customer customer = new Customer(); // Set values using setters customer.Name = “Alim”; customer.Email = “Alim@gmail.com”; // Create a DateTime object for Date of Birth DateTime dateOfBirth = new DateTime(1999, 9, 18); customer.DateOfBirth = dateOfBirth; customer.SetAddress(“Banani”); // Retrieve values using getters string name = customer.Name; string email = customer.Email; DateTime dob = customer.DateOfBirth; // Print the values Console.WriteLine(name); Console.WriteLine(email); Console.WriteLine(dob); } }
এখানে আমরা কাস্টমারের ইনফরমেশনের জন্য একটা ক্লাস তৈরি করছি যেখানে আমরা কাস্টমারের ইনফরমেশনগুলা প্রাইভেট রাখছি এবং গেটার (Getter) এবং সেটারের (Setter) মাধ্যমে সেগুলার আক্সেস প্রদান করছি। কিন্তু এখানে আমরা কাস্টমারের আড্রেসের জন্য কোনো গেটার মেথড ইমপ্লিমেন্ট করা হয় নি যাতে বাইরে থেকে কেউ আড্রেস আক্সেস করতে না পারে।