class এ যদি কোন constructor না থাকে তাহলে কম্পাইলার অটোম্যাটিক্যালি এটা ক্রিয়েট করে নেয় কেন?

এইটার তো অবশ্যই কোন প্রয়োজনীয়তা আছে যে জন্য কম্পাইলার এইটা অটোম্যাটিকালি ক্রিয়েট করে নেয়। এই প্রয়োজনীয়তা টা কি?

asked 14 Jul '16, 10:47

_Shaon_'s gravatar image

_Shaon_
796323


Java তে ডিফল্ট constructor নিচের মত করে থাকে,

public class Account {
    Account() {

    }
}

এখন আপনি যদি কোন Constructor ক্রিয়েট না করেন তবে এটা অটোমেটিক জেনারেত হবে । আর এটার কারণেই আপনি যদি Account ob = new Account(); এই ভাবে কোন অবজেক্ট ক্রিয়েট করেন তবে সেটা কোন এরর দেখাবে না ।

permanent link

answered 15 Jul '16, 16:13

menon's gravatar image

menon
4.7k335

জাভাতে যখন কোন অবজেক্ট ক্রিয়েট করা হয় সেটা করা হয় Constructor এর মাধ্যমে।

ধরুন যে একটা সেম্পল ক্লাস আছে যার নাম SampleClass

public class SampleClass {

}

তো আমরা চাচ্ছি এই SampleClass এর অবজেক্ট তৈরি করতে যার নাম sampleObject । কী করতে হবে তাহলে? নিচের এই একটা লাইন লিখতে হবে।

SampleClass sampleObject = new SampleClass();

এবার একটা বিষয় কল্পনা করুন। ধরুন, আপনি একটি ক্লাসের একটি মেথডকে কল করতে চাচ্ছেন যে মেথডের কোন অস্তিত্ব নেই। ব্যাপারটা কেমন হাস্যকর শোনাচ্ছে তাই না?

খেয়াল করে দেখুন SampleClass এ কিন্তু কোন Constructor নাই। অর্থাৎ public SampleClass() এই নামে কিছুই লিখা নাই। যেহেতু অবজেক্ট তৈরি করতে Constructor লাগে, অর্থাৎ Constructor কে কল দিতে হয়, তাই ওটার অস্তিত্ব যেন থাকে সেজন্য কোন Constructor না থাকলেও ক্লাসে ডিফল্ট কনসট্রাক্টর(ফ্রি) থাকে।

অবশ্য Constructor explicitly লিখা হলে ডিফল্ট Constructor আর থাকে না। explicitly যেটা লিখা হল সেটাই কাজ করে।

permanent link

answered 24 May '17, 04:41

ashif-ar's gravatar image

ashif-ar
453

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:

×210
×11
×6

question asked: 14 Jul '16, 10:47

question was seen: 822 times

last updated: 24 May '17, 04:41