Object কি ?
সাধারনভাবে object বলতে বুজায় কোন বস্তু, আপনি real-world এ অনেক উদাহরণ খুঁজে পাবেন: আপনার desk, আপনার টেলিভিশন, আপনার bicycle একটি অবজেক্ট, বই, কলম, খাতা, কম্পিউটার এগুলো প্রত্যকটিই এক একটি অবজেক্ট। প্রতিটি অবজেক্টের কিছু বৈশিষ্ট থাকে, যেগুলোর জন্য একটি object অন্য একটি object থেকে অলাদা। OOP প্রোগ্রামিং পদ্বতির রান টাইম এনটিটি হল object। object হল software bundle of related state and behavior।
পূবের টিউনটি ছিল: জাভা প্রোগ্রামিং লেনগুয়েজ হাতেখড়ি- প্রথম পর্ব। লিংক- https://www.techtunes.io/programming/tune-id/18859/#comment-38781 **লেখকের (এম ইয়াকুব)অনুমতি ব্যতিরেকে এই লেখার আংশিক বা পূর্ণ অংশ কোন ধরনের মিডিয়ায় পুনঃপ্রকাশ করা যাবে না।
Objects are key to understanding object-oriented technology। ঠিক আপনার ধারে কাছে দেখুন এবং আপনি real-world বস্তুর অনেক উদাহরণ খুঁজে পাবেন: আপনার পোষা প্রানী, আপনার desk, আপনার টেলিভিশন, আপনার bicycle, গাড়ী ইত্যাদি । Real-world বস্তু দুই গুণাবলিসমূহ ভাগাভাগি করে: state and behavior/অবস্থান এবং আচরণ। পোষা প্রানীর অবস্থান রয়েছে (নাম, রং, breed, ক্ষুধার্ত) এবং আচরণ (barking, আনা হচ্ছে, wagging লিজ)। উদাহরন স্বরূপ Bicycles এর অবস্থান রয়েছে (বর্তমান gear, বর্তমান pedal cadence, বর্তমান গতি) এবং আচরণ (পরিবর্তনশীল gear, পরিবর্তনশীল cadence, applying brakes pedalয়)। অবস্থান সনাক্ত করছে এবং real-world বস্তুর জন্য state and behavior objects is a great way to begin thinking in terms of object-oriented programming.
আপনি লক্ষ্য করবেন যে real-world objects vary in complexity আপনার টেবিল ল্যাম্প এর কথাই ধরুন এটি only two possible states (on and off) and two possible behaviors (turn on, turn off) থাকতে পারে , কিন্তু আপনার ডেস্কটপ রেডিওটির কথা ভাবুন radio টিতে additional states (on, off, current volume, current station) and behavior (turn on, turn off, increase volume, decrease volume, seek, scan, and tune). এই real-world পর্যবেক্ষণগুলিই translate into the world of object-oriented programming.
প্রত্যেকটি বস্তু লক্ষ্য করুন দেখুন এবং নিজেই দুটি প্রশ্ন করুন: "What possible states can this object be in?" and "What possible behavior can this object perform?".আপনি পর্যবেক্ষণ করে দেখুন যে আপনার ডেস্কটপে যে লাইটটি অছে তা only two possible states (on and off) and two possible behaviors (turn on, turn off)থাকতে পারে।কিন্তু আপনার টিভির ক্ষত্রে অতিরিক্ত states (on, off, current volume, current station) and behavior (turn on, turn off, increase volume, decrease volume, seek, scan, and tune) আপনি ও লক্ষ্য করতে পারেন যে some objects, in turn, will also contain other objects. এই real-world পর্যবেক্ষণগুলি সমস্ত object-oriented প্রোগ্রামিংএ translate করে। নীম্নের চিত্রে একটি সাইকেলের গিয়ার লক্ষ্য করুন- এটা একটা software object এর উদাহরন.
Software objects are conceptually similar to real-world objects: they too consist of state and related behavior. এই পদ্ধতি একটি বস্তুর অভ্যন্তরীণ state পরিচালনা করে এবং object-to-object যোগাযোগের জন্য প্রাথমিক কৌশল হিসেবে সরবরাহ করে। অভ্যন্তরীণ গোপন করে এবং requiring সমস্ত পারস্পরিক যোগাযোগ object-oriented প্রোগ্রামিংএর ডেটা একটি মৌলিক মূলনীতি হিসেবে একটি object এর মধ্য দিয়ে কর্ম সম্পাদন করে।
উদাহরণের জন্য একটি bicycle, বিবেচনা করুন:
By attributing state (বর্তমান গতি, বর্তমান pedal cadence, এবং বর্তমান gear) সেই state পরিবর্তন করার জন্য এবং providing পদ্ধতিটি, বস্তুটির নিয়ন্ত্রণে থাকে যেমন বাইরে বিশ্ব এটি ব্যবহার করতে অনুমোদন করা হয়। উদাহর স্বরূপ, bicycleএর ৬ gears কেবল রয়েছে, gears পরিবর্তন করতে একটি পদ্ধতি যেকোন মূল্য বাতিল করতে পারে যে ৬এর চেয়ে ১ অথবা বৃহত্তরের চেয়ে কম।
Bundling code into individual software objects provides a number of benefits, including:
১। Modularity: একটি object এর জন্য উৎস কোড লেখা যাবে এবং অন্যান্য বস্তুর জন্য উৎস কোডের রক্ষণাবেক্ষণ করা যাবে স্বাধীনভাবে। Once created, an object can be easily passed around inside the system.
২। Information-hiding: By interacting only with an object's methods এর অভ্যন্তরীণ প্রয়োগের বিশদ বর্ণনা বাইরে বিশ্ব থেকে লুকানো থাকে।
৩। Code re-use: If an object already exists (perhaps written by another software developer), you can use that object in your program. This allows specialists to implement/test/debug complex, task-specific objects, which you can then trust to run in your own code.
৪। Pluggability and debugging ease: If a particular object turns out to be problematicআপনি আপনার অ্যাপলিকেশন থেকে এটি সহজভাবে সরিয়ে দিতে পারেন এবং এর বদলি হিসেবে একটি আলাদা object রিপ্লেস করতে পারেন।এটি আসল বিশ্বে mechanical সমস্যা মেরামতের অনুরূপ। শুধু মেরামত করা হয় সমগ্র মেশিন প্রতিস্থাপন হয় না।
class কি?
প্রকৃত বিশ্বে, আপনি একই ধরনের অনেক স্বতন্ত্র বস্তু সামজস্য প্রায়শই খুঁজে পাবেন। bicyclesএর হাজার হাজার একই রকম তৈরি করা এবং একই মডেলের । প্রত্যেক bicycle blueprintsএর একই সেট থেকে নির্মাণ করা হয়েছিল... চলবে...........
****লেখকের (এম ইয়াকুব)অনুমতি ব্যতিরেকে এই লেখার আংশিক বা পূর্ণ অংশ কোন ধরনের মিডিয়ায় পুনঃপ্রকাশ করা যাবে না।
অনেক জটিল মনে হচ্ছে ,ভাল করে পড়তে হবে।একটু সহজ করে কি লিখা যাবে ভাইয়া ।