প্রোগ্রামিং সিরিজ: কাক আর object এর সম্পর্ক

পুরোটা পড়ার সময় নেই? ব্লগটি একবার শুনে নাও।

এই লেখাটি নেয়া হয়েছে “আদর্শ” থেকে প্রকাশিত এবং ঝংকার মাহবুব লিখিত ২য় বই “প্রোগ্রামিংয়ের বলদ টু বস” বই থেকে।

মন ভালো করার উত্তম জায়গা হচ্ছে হাসপাতাল। হাসপাতালে হাজারো লোকের হাজারো সমস্যা, দুর্দশা, কষ্ট দেখলে নিজের মনে আর কষ্ট থাকে না। তবে প্রাইভেট হাসপাতালের চেয়ে সরকারি হাসপাতাল বেশি ভালো লাগে রাশেদের। সেখানে বিশেষজ্ঞ ডাক্তারের পরামর্শ পাওয়া যায় অল্প টাকায়। অচেনা, অজানা মানুষকে হেল্প করা যায়। তবে কখনো কখনো থাকার জায়গা না থাকলে, রাশেদ আশপাশের হাসপাতাল খুঁজে বের করে। যাতে হাসপাতালের বারান্দায় অন্যান্য রোগীর আত্মীয়স্বজনের মতো সোজা হয়ে শুয়ে রাত কাটিয়ে দিতে পারে।

| Object |  Object property |  Property-র মান change |

কাক object-এর জোড়া

পার্কের বেঞ্চিতে বসে বসে রাশেদ বলতে শুরু করল, ছোট বেলায় মুখস্থ করছিলি না- আমাদের চারপাশে যা কিছু আছে তা-ই নিয়ে আমাদের পরিবেশ। অর্থাৎ চারপাশের গাছপালা, পশু-পাখি, নদী-নালা, রাস্তা-ঘাট, ঘরবাড়ি সবকিছুই পরিবেশের অন্তর্ভুক্ত।

এই পরিবেশের টানে কোনো জঙ্গল বা গাছ-গাছালি ভরা গ্রামের রাস্তা দিয়ে হাঁটতে শুরু করলে রংবেরঙের পাখি দেখতে পাবি। কপাল ভালো হলে একঝাঁক ঘুঘু, একদল পায়রা, সারিবদ্ধ বক উড়ে যেতে দেখবি। আর অনেকগুলা পাখি একসাথে দেখতে পেলেই বুঝতে পারবি, একই জাতের বা একই টাইপের পাখিদের প্রায় একই রকমের সাইজ, একই রকমের গলার স্বর, একই রকমের গায়ের রং। এ কারণেই শুধু কিছু বৈশিষ্ট্য দেখে কোনটা কোন পাখি বলে দিতে পারবি।

আমি যদি জিজ্ঞেস করি, এমন একধরনের পাখি আছে, যাদের গায়ের রং কালো, তারের ওপর বসে সারা দিন কা কা করে আর রাস্তা দিয়ে কাউকে ফিটফাট হয়ে যেতে দেখলে ওপর থেকে সাদা সাদা জিনিস শুট করে। এইটুক বললেই তুই চোখ বন্ধ করে বলে দিতে পারবি, আমি কোন পাখির কথা বলছি।

শুধু পাখি না। পশু-প্রাণীদেরও বৈশিষ্ট্য অনুসারে চেনা যায়। সে জন্যই এক পাল গরুর ভিতরে কয়েকটা ছাগল থাকলে তুই বুঝে ফেলবি, কোনগুলা গরু আর কোনগুলা ছাগল। কারণ গরু সাহেবদের বৈশিষ্ট্য এক রকম। ছাগল বাবুদের বৈশিষ্ট্য আরেক রকম। একইভাবে ড্রেস দেখেই বলে দেওয়া যায় : কে পুলিশ, কে উকিল, কে নার্স আর কে আর্মি অফিসার। আবার চাকার সংখ্যা, দৈর্ঘ্য, প্রস্থ, উচ্চতা দেখেই বলে দেওয়া যায় কোনটা বাস, কোনটা ট্রেন, কোনটা রিকশা আর কোনটা প্রাইভেট কার।

বৈশিষ্ট্য দেখে দুনিয়ার যেকোনো জিনিস চেনা যায়। বৈশিষ্ট্য দেখে সেটা কোন জিনিস বা কোন বস্তু তা বলে দেওয়া যায়। জিনিস বা বস্তু, এগুলা বাংলা শব্দ। ইংরেজিতে জিনিস বা বস্তুকে object বলতে পারস। তাই প্রোগ্রামিং করার সময় বাস্তব দুনিয়ার যেসব জিনিস বা বস্তু ব্যবহার করা হয়, সেগুলাকে object বলা হয়। এমনকি প্রোগ্রামিং করার সময় জীব-জড় নির্বিশেষে সবকিছুকেই object বলা হয়।  

এই যে তুই এখন যেই বেঞ্চিতে বসে আছস, সেটা একটা object। যে চায়ের কাপে করে চা খাস, সেটা একটা অবজেক্ট। বাসায় গিয়ে যে চেয়ারে বসে থাকস, সেটাও একটা object। মোবাইল, গ্লাস, ঘর, বাড়ি, গরু, ছাগল সবকিছুই এক একটা অবজেক্ট। এমনকি তুই নিজেও একটা object। এক কথায় বললে, আমাদের চারপাশে, আমাদের পরিবেশে যা কিছু আছে তার সবকিছুই এক একটা object।

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

এখন চেয়ার অবজেক্টের মধ্যে পা-এর বৈশিষ্ট্য লিখতে গেলে প্রথমেই বৈশিষ্ট্যের নাম লিখবি। তারপর কোলন চিহ্ন (:) দিয়ে বৈশিষ্ট্যের মান লিখবি। চেয়ারের যেহেতু চারটা পা আছে, সেহেতু চেয়ারের পা বৈশিষ্ট্য (legs)-এর মান 4 হবে।

আর সেটা চেয়ার অবজেক্টের ভিতরে নিচের মতো করে লিখলেই তোর জীবনের প্রথম অবজেক্ট লেখা হয়ে যাবে।

{

     legs : 4  

}

তবে অবজেক্টের একটা নাম দিতে হবে। যাতে নাম ধরে অবজেক্টকে ডাক দিতে পারস। অনেকটা ভেরিয়েবলের নাম দেওয়ার মতো। আসলে অবজেক্টও এক ধরনের ভেরিয়েবল। কারণ এক একটা অবজেক্টের এক এক রকম বৈশিষ্ট্য থাকতে পারে। তাই তোর জীবনের প্রথম অবজেক্টের নাম দিবি, আমার চেয়ার (myChair), তারপর সমান চিহ্ন দিয়ে অবজেক্টটা লিখবি। আর অবজেক্ট যেহেতু এক প্রকারের ভেরিয়েবল, তাই অবজেক্টের নাম লেখার আগে var লিখে নিবি। নিচের মতো করে—

var myChair = {

      legs: 4

}

সাধারণত অবজেক্টের একাধিক বৈশিষ্ট্য থাকে। চেয়ারেরও একাধিক বৈশিষ্ট্য আছে। চারটা পা ছাড়াও দুইটা হাতল আছে। হাতলকে সহজ করে হাত বলতে পারস। তুই যে চেয়ারে বসে আছস, সেটার দুইটা হাতল আছে। অর্থাৎ হাতলের সংখ্যা বা hands-এর মান 2। আরেকটা কথা মনে রাখবি, অবজেক্টের একাধিক বৈশিষ্ট্য থাকলে যেকোনো দুইটা বৈশিষ্ট্যের মাঝখানে কমা চিহ্ন দিয়ে আলাদা করতে হয়। তাই তোর myChair অবজেক্টের দ্বিতীয় বিশিষ্ট্য লিখার জন্য নিচের মতো লিখে ফেল।

var myChair = {

     legs: 4,

     hands: 2

}

অনেক সময় চেয়ারে বসার জায়গায় পাতলা ফোম বা গদি থাকে। আবার অনেক চেয়ারে গদি থাকে না। গদির ইংরেজি হচ্ছে foam। তাই এই বৈশিষ্ট্যের নাম দিবি hasFoam অর্থাৎ ফোম আছে কি না। এখন ফোম থাকলে hasFoam বৈশিষ্ট্যের মান true হবে আর ফোম না থাকলে hasFoam বৈশিষ্ট্যের মান false হবে। আর তুই যে চেয়ারে বসে আছস, সেটাতে যেহেতু ফোম আছে তাই তোর hasFoam বৈশিষ্ট্যের মান true হবে। তাই তোর myChair অবজেক্টে নিচের মতো করে hasFoam বৈশিষ্ট্য যোগ কর।

var myChair = {

     legs: 4,

     hands: 2,

     hasFoam: true

}

ওপরের চেয়ারের বৈশিষ্ট্যগুলা লেখার সময় প্রথমেই বৈশিষ্ট্যের নাম লিখছস, তারপর কোলন (:) চিহ্ন দেওয়ার পরে বৈশিষ্ট্যের মান লিখছস। আর যেকোনো দুইটা বৈশিষ্ট্যের মাঝখানে কমা চিহ্ন দিছস। বৈশিষ্ট্য শব্দটাকে ইংরেজিতে প্রপার্টি (property) বলে। আর একসাথে অনেকগুলা বৈশিষ্ট্য থাকলে বহুবচন বোঝাতে properties বলে। যেমন ওপরের চেয়ার অবজেক্টের properties হচ্ছে: পা ৪টা, হাতল ২টা ও গদি আছে।

অবজেক্ট লিখার সিস্টেম শিখলি। এখন অবজেক্ট আউটপুট হিসেবে দেখতে চাইলে পুরা অবজেক্টকে নিচের মতো console.log করে দে।

console.log(myChair);

আর যদি পুরা অবজেক্ট আউটপুট হিসেবে না দেখে শুধু একটা বৈশিষ্ট্য আউটপুট হিসেবে দেখতে চাস, তাহলে অবজেক্টের নাম লিখে ডট চিহ্ন দিয়ে বৈশিষ্ট্যের নাম লিখবি। যেমন : তুই চেয়ারের পা বৈশিষ্ট্যকে আউটপুট হিসেবে দেখতে চাস। সে জন্য console.log লিখে তার ভিতরে myChair লিখে ডট চিহ্ন দিয়ে legs লিখে দিবি।

console.log(myChair.legs);

তাহলে আউটপুট হিসেবে চেয়ারের legs বৈশিষ্ট্যের মান পাবি। আবার তুই চাইলে কোনো একটা বৈশিষ্ট্যকে একটা ভেরিয়েবলেও রাখতে পারস। যেমন ধর, তুই চেয়ারের legs বৈশিষ্ট্যের মানকে chairLegs ভেরিয়েবলের মান হিসেবে সেট করতে চাস। তাহলে নিচের মতো করে লিখবি।

var chairLegs = myChair.legs;

একটু আগে অবজেক্টের নামের পর ডট চিহ্ন দিয়ে বৈশিষ্ট্যের নাম লিখে সেটার মান বের করছস। এটাকে সারা জীবন মনে রাখার জন্য, লিখে রাখ— ডট দিয়ে কট (caught); অর্থাৎ ডট দিয়ে কোনো একটা বৈশিষ্ট্যের মান কট করা যায়।

তোর লক্কড়ঝক্কড় মার্কা দাদার আমলের চেয়ারের একটা পা লটরপটর করতে করতে একদিন ভেঙে গেল। এখন যেহেতু এক ঠ্যাং ভেঙে ল্যাংড়া হয়ে গেছে। অর্থাৎ চেয়ারের চারটা পা থেকে তিনটা পা হয়ে গেছে। তাই তোর myChair অবজেক্টের legs বৈশিষ্ট্যের মান চারকে চেইঞ্জ করে তিন বানানো লাগবে।  

কোনো একটা অবজেক্টের বৈশিষ্ট্য চেঞ্জ করা খুবই সোজা। জাস্ট অবজেক্টের নাম লিখে ডট (.) চিহ্ন দিয়ে যে বৈশিষ্ট্য চেঞ্জ করতে চাস, সেই বৈশিষ্ট্য লিখবি। তারপর সমান চিহ্ন দিয়ে নতুন যে মান সেট করতে চাস সেটা বসায় দিবি। তার মানে চার ঠ্যাংয়ের চেয়ারকে তিন ঠ্যাংয়ের ল্যাংড়া চেয়ার বানানোর জন্য লিখবি—

myChair.legs = 3;

আবার ধর কিছুদিন পরে, চেয়ারের গদির মধ্যে ছারপোকা ঢুকে গেছে। চেয়ারে বসার দুই মিনিটের মধ্যেই ছারপোকার কুটুর কুটুর কামড় খেয়ে তোর পশ্চাৎদেশ লাল হয়ে যায়। ছারপোকার অত্যাচারে লাইফ ছ্যাড়াব্যাড়া হওয়ায় তুই রাগে, দুঃখে চেয়ারের গদি খুলে ফেলে দিছস। তোর চেয়ারের hasFoam বৈশিষ্ট্যের মান এখন আর true থাকবে না। false হয়ে যাবে। তাই নিচের মতো করে hasFoam বৈশিষ্ট্যের মান আপডেট করে নিবি।

myChair.hasFoam = false;

এখন তোর স্মার্টফোন বা ল্যাপটপ দিয়ে ডাইরেক্ট www.habluderadda.com/console-এ চলে যা। সেখানে গিয়ে প্রথমেই myChair অবজেক্টটা ডিক্লেয়ার করবি। সেটা আউটপুট হিসেবে দেখবি। তারপর যেকোনো একটা প্রপার্টির মান চেঞ্জ করে আবারও আউটপুট হিসেবে দেখবি।

Object -এর সরাসরি সাক্ষাৎকার

কোরবানির গরু-ছাগলের হাট টিভিতে লাইভ দেখানো হচ্ছে। সেই টিভি সাংবাদিক ক্রেতাদের বলছে, অবজেক্ট কী জিনিস? এইটা যে বলতে পারবে তাকে টিভিতে লাইভ দেখানো হবে। তখন তুই গোবরে পদ্মফুল হয়ে বলে দিবি, আমাদের চারপাশে যা কিছু আছে তার সবকিছুই এক একটা অবজেক্ট। এর পরেও টিভি সাংবাদিক ক্যাবলা মুখে তাকিয়ে থাকলে বলে দিবি, এই ক্যামেরা একটা অবজেক্ট। আপনি একটা অবজেক্ট। আমি নিজেও একটা অবজেক্ট। এমনকি এই টুকটুকে ছাগলটাও একটা অবজেক্ট।

নিজে নিজে কর

৪.১ : তোর বাসার কোনো একটা জিনিসের নামে একটা অবজেক্ট ডিক্লেয়ার কর। সেই অবজেক্টের একটা নাম দিবি। তারপর সেকেন্ড ব্র্যাকেটের ভিতরে সেই অবজেক্টের তিনটা প্রপার্টি লিখবি।

উত্তর :

৪.২ : রাস্তাঘাটে, বাসার বাইরে অনেক কিছু দেখা যায়। সেখান থেকে যেকোনো একটা জিনিসের নামে একটা অবজেক্ট ডিক্লেয়ার কর। তারপর সেকেন্ড ব্র্যাকেটের ভিতরে সেই অবজেক্টের তিনটা প্রপার্টি লিখ।  

উত্তর :

৪.৩ : তোর নিজের নাম দিয়ে একটা অবজেক্ট ডিক্লেয়ার কর। সেখানে তিনটা প্রপার্টি লিখবি। যার মধ্যে একটা প্রপার্টির নাম হবে জান পাখি (jaanPakhi) এবং সেই প্রপার্টির মান হবে তোর প্রিয়জনের নাম। ধর, কিছুদিন পরে তোর আগের রিলেশন ভেঙে নতুন আরেকজনের সাথে সিস্টেম হয়ে গেছে। তাই তুই তোর jaanPakhi প্রপার্টির মান চেঞ্জ করে নতুন নাম সেট করে ফেল। যাতে তোর নতুন প্রিয়জন আগেরজনের নাম না জেনে যায়।

উত্তর :

… চেয়ার-বিষয়ক আলোচনা দেখে এলাকার চেয়ারম্যান তোদের চেয়ার দখল করতে চাইলে তাকে হাসি মুখে www.habluderAdda.com/bolod/object.html-এ নিয়ে যাবি। খুশি মনে চেয়ারে বসাবি। কিন্তু চেয়ারের গদিতে যে ছারপোকা আছে, সেটা বলে দিবি না। কিছুক্ষণ পরে দেখবি সে নিজেই গান ধরবে— কাঁটা লাগা, হায়! ছারপোকার, কাঁটা-আ-আ-আ।

ঝংকার মাহবুবের অন্যান্য লেখা সম্পর্কে জানতে চলে যাও এই লিংকে!
ঝংকার মাহবুবকে ফলো করতে পারো ফেসবুক পেইজেও!


১০ মিনিট স্কুলের লাইভ এডমিশন কোচিং ক্লাসগুলো অনুসরণ করতে সরাসরি চলে যেতে পারো এই লিঙ্কে: www.10minuteschool.com/admissions/live/

১০ মিনিট স্কুলের ব্লগের জন্য কোনো লেখা পাঠাতে চাইলে, সরাসরি তোমার লেখাটি ই-মেইল কর এই ঠিকানায়: [email protected]

Author

Jhankar Mahbub

খুব অল্প বয়সেই লেখালেখি শুরু করেন ঝংকার মাহবুব। শুরুটা ছিল বাসার দেয়ালে, বোনদের বইয়ের পাতাতে, কিংবা ঘুমন্ত অবস্থায় বাবার শরীরে আঁকাআঁকি করে। তারপর থেকে তিন দশক ধরে উনার লেখালেখির পুরোটাই গেছে পরীক্ষার খাতায়, পাশ নম্বরের আশায়।
Jhankar Mahbub
এই লেখকের অন্যান্য লেখাগুলো পড়তে এখানে ক্লিক করুন
What are you thinking?