কোন জাভা অবজেক্ট এর ডাটা এড করা কিনবা সেইখান থেকে ডাটা নেয়া constructor and getter and setter ২ ভাবেই করা যায় যেমন ঃ with constructor:

public class laptop {
private String model;

public laptop(String brand){
 model=brand;
    }

public String toString(){
    return "Laptop Brand is: "+ model;
}

মেইন মেথডঃ public class laptopRecords {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    laptop laptop1=new laptop("Dell");
    System.out.println(laptop1);
}

}

with getter and setterঃ

public class laptop {
private String model;

public laptop(String brand){
 model=brand;
    }
public void setlaptop(String brand){
    model=brand;        
}
public String getlaptop(){
    return model;       
}
public String toString(){
    return "Laptop Brand is: "+ model;
}
}

এখন প্রশ্ন হচ্ছে ২ টার মধ্যে পারথক্ক কি? খন কোনটা ব্যাবহার করা উচিত ।

asked 03 Aug '17, 19:52

rakib%20hossain's gravatar image

rakib hossain
32910

edited 04 Aug '17, 02:05

menon's gravatar image

menon
4.2k222


এই জিনিসগুলো আপনি যখন একটা রিয়েল লাইফ প্রোজেক্ট করতে যাবেন তখন ক্লিয়ার হবে । তখন দেখবেন যে কোনো একটা কাজ আপনাকে আগে করতে হবে তখন কনস্ট্রাকটর ব্যাবহার করতে হবে । যেমন ডাটাবেস কানেকশন । যখন ডাটাবেজের কোনো প্রোজেক্ট করবেন তখন অবশ্যই আপনাকে সবার আগে ডাটাবেজ কানেকশন ইনিশিয়ালাইজ করতে হবে । তো সেক্ষেত্রে আপনার বার বার মেথড কল করে করাটা একটা বিরক্তিকর ব্যাপার । তখন কন্সট্রাকটর ব্যাবহার করবেন। আবার এক্ষেত্রেই আপনার কোনো ক্ষেত্রে ডাটাবেস থেকে ডাটা আনার জন্য গেটার আবার ডাটা রাখার জন্য আপনাকে একটা সেটার মেথড রাখতেই হবে । তো আসল কথাটা হল আপনি একটা ছোটখাট প্রোজেক্ট করলেই এই ব্যাপারটা বুঝতে পারবেন । যে কাজটা আপনার এখন মনে হচ্ছে সব একই তখন বুঝতে পারবেন যে কেন লাগে এ বিষয়গুলো । যেমন আপনি এখানে কন্সট্রাকটরে ডাটার ব্যালু সেট করেছেন । কিন্তু আপনি বাস্তবে কখনই চাইবেন না একটা অবজেক্ট ক্রিয়েট হবার সাথে সাথে একটা করে ডাটা ডাটাবেসে যুক্ত হবে । আশাকরি ধারনা দিতে পেরেছি ।

permanent link

answered 04 Aug '17, 01:24

shams%20suny's gravatar image

shams suny
833

আপনি যখন কোন অবজেক্ট ক্রিয়েট করবেন ঠিক সেই সময় আপনার অবজেক্ট টি দেখতে কি রকম হবে অর্থাৎ এটার বৈশিষ্ট্য কি হবে সেটা ঠিক করে দেয়ার জন্য আপনাকে constructor ব্যবহার করতে হবে ।

মনে করেন আপনার Circle নামে একটা ক্লাস আছে

public class Circle {
    String color = "";
    double radius = 0;

    Circle(String color, double radius) {
        this.color = color;
        this.radius = radius;
    }

   public void setColor(String c) {
       color = c;
   }
   public void setRadius(double r) {
       radius = r;
   }
   public String getColor(){
       return color;
   }
   public double getRadius(){
       return radius;
   }
}

এখন আপনি যখন অবজেক্ট টি Circle c = new Circle("Green", 10); দিয়ে ক্রিয়েট করবেন তখন এর কালার হবে Green radius = 10

এখন আপনার অবজেক্ট ক্রিয়েট করা হয়ে গেছে । এখন আপনি চাচ্ছেন আপনার c নামে যে অবজেক্ট আছে সেটার রং Green না হয়ে Red হওয়া দরকার ছিল । তখন আপনাকে c.setColor("Red"); দিয়ে সেটা করতে হবে ।

অর্থাৎ constructor হল কোন অবজেক্ট ক্রিয়েট করার সময়ই সেটা কি কি বৈশিষ্ট্য হবে সেগুলো সেট করে দেয়া ।

অন্য দিকে আপনার অবজেক্ট ক্রিয়েট করার পরে আপনি যদি সেটার কোন বৈশিষ্ট্য পরিবর্তন করতে চান তবে আপনাকে সেটার মেথড ব্যবহার করতে হবে ।

ধন্যবাদ :)

permanent link

answered 04 Aug '17, 02:03

menon's gravatar image

menon
4.2k222

edited 04 Aug '17, 02:06

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×204
×26
×6
×2
×2

question asked: 03 Aug '17, 19:52

question was seen: 193 times

last updated: 04 Aug '17, 02:06