অন্যান্য ওওপি ভাষার অভ্যন্তর শ্রেণি রয়েছে যা উচ্চ স্তরের শ্রেণিতে আবদ্ধ না হয়ে তাত্ক্ষণিকভাবে চলতে পারে না। উদাহরণস্বরূপ, জাভাতে,
class Car {
class Wheel { }
}
Car
ক্লাসে শুধুমাত্র পদ্ধতিগুলি Wheel
এস তৈরি করতে পারে ।
রুবির এমন আচরণ নেই।
রুবিতে,
class Car
class Wheel
end
end
থেকে পৃথক
class Car
end
class Wheel
end
শুধুমাত্র ক্লাসের নামে Wheel
বনাম Car::Wheel
। নামের এই পার্থক্যটি প্রোগ্রামারদের কাছে স্পষ্ট করে তুলতে পারে যে Car::Wheel
ক্লাসটি একটি সাধারণ চক্রের বিপরীতে কেবল একটি গাড়ির চক্রকেই উপস্থাপন করতে পারে। রুবীতে বাসা বাঁধার শ্রেণি সংজ্ঞাটি পছন্দের বিষয়, তবে এটি এই উদ্দেশ্যে একটি উদ্দেশ্য পরিবেশন করে যে এটি দুটি শ্রেণীর মধ্যে একটি চুক্তি আরও দৃ strongly়তার সাথে কার্যকর করে এবং এটি করার ফলে তাদের এবং তাদের ব্যবহার সম্পর্কে আরও তথ্য সরবরাহ করে।
তবে রুবি ইন্টারপ্রেটারের কাছে এটি নামের মধ্যে কেবল একটি পার্থক্য।
আপনার দ্বিতীয় পর্যবেক্ষণ হিসাবে, মডিউলগুলির ভিতরে বাসা বাঁধার ক্লাসগুলি সাধারণত ক্লাসের নাম স্থানটিতে ব্যবহৃত হয়। এই ক্ষেত্রে:
module ActiveRecord
class Base
end
end
থেকে পৃথক
module ActionMailer
class Base
end
end
যদিও এটি মডিউলগুলির ভিতরে বাসা বাঁধতে পারে এমন ক্লাসগুলির একমাত্র ব্যবহার নয়, এটি সাধারণত সবচেয়ে সাধারণ।
Car.new
এবং এর মধ্যে সম্পর্ক স্থাপনের মাধ্যমে কী বোঝাতে চাইছেনCar::Wheel.new
। রুবিতে অবজেক্টটিCar
আরম্ভ করার জন্য আপনাকে অবশ্যই কোনও অবজেক্টটি আরম্ভ করার দরকার নেইCar::Wheel
, তবে ব্যবহারযোগ্য হওয়ারCar
জন্য ক্লাসটি লোড এবং সম্পাদনCar::Wheel
করতে হবে।