Ruby शुद्ध object-oriented हो — तपाईले क्लास (blueprints) परिभाषित गर्नुहुन्छ र अबजेक्ट (instances) सिर्जना गर्नुहुन्छ। क्लासहरूले कन्स्ट्रक्टरको लागि initialize, उदाहरण अवस्थाको लागि @variables, र encapsulation को लागि access modifiers प्रयोग गर्छन्। Ruby को क्लास syntax स्वच्छ र अभिव्यक्तिपूर्ण छ।
क्लास परिभाषित गर्दै
class Person
def initialize(name, age) # the CONSTRUCTOR (called on .new)
@name = name # @ → instance variable (per object)
@age = age
end
def greet # an instance method
"Hi, I'm #{@name}"
end
end
person = Person.new("Ann", 30) # create an instance (calls initialize)
person.greet # "Hi, I'm Ann"
initialize विधि कन्स्ट्रक्टर हो (.new द्वारा स्वचालित रूपमा कल गरिन्छ), र @name उदाहरण चर प्रति-अबजेक्ट अवस्था राख्छन्। विधिहरू def को साथ परिभाषित गरिन्छन्।
उदाहरण चर अ्याक्सेस गर्दै (accessor विधि चाहिन्छ)
class Person
attr_accessor :name # generates getter AND setter for @name
attr_reader :age # getter only (read-only)
def initialize(name, age)
@name = name
@age = age
end
end
person.name # "Ann" — getter
person.name = "Bob" # setter
उदाहरण चर (@name) पूर्वनिर्धारित रूपमा निजी हुन्छन् — तपाईले तिनलाई accessor विधिहरूको साथ उजागर गर्नुहुन्छ। attr_accessor/attr_reader/attr_writer यी getter/setter विधिहरू स्वचालित रूपमा उत्पन्न गर्छन् (एक Ruby सुविधा)।
Access control र class methods
class Account
def deposit(amount) # public by default
update_balance(amount)
end
private # methods below are PRIVATE
def update_balance(amount)
@balance += amount
end
def self.create # CLASS method (self.) — called on the class, not an instance
new(...)
end
end
Account.create # class method
विधिहरू पूर्वनिर्धारित रूपमा सार्वजनिक हुन्छन्; private/protected अ्याक्सेस सीमित गर्छन्। def self.method एक class method परिभाषित गर्छ (क्लास स्वयमा कल गरिन्छ)।
यो किन महत्त्वपूर्ण छ
क्लास र अबजेक्ट Ruby मा मौलिक छन्, जो एक शुद्ध object-oriented भाषा हो, त्यसैले यिनलाई बुझ्नु कुनै पनि Ruby विकासको लागि आवश्यक छ — लगभग सबै Ruby कोड (र Rails जस्ता frameworks) क्लासहरूमा संगठित हुन्छ।
initialize कन्स्ट्रक्टर को साथ क्लास परिभाषित गर्न, प्रति-अबजेक्ट अवस्थाको लागि @instance चर प्रयोग गर्न (र तिनी पूर्वनिर्धारित रूपमा निजी हुन्छन्, तिनलाई उजागर गर्न accessor विधि चाहिन्छ), उदाहरण र class methods परिभाषित गर्न (def self.method), र access control लागू गर्न (private/protected) कसरी गर्ने भनेर जान्नु मौलिक दैनिक ज्ञान हो।
विशेष गरी महत्त्वपूर्ण Ruby सुविधा attr_accessor/attr_reader/attr_writer हो, जसले उदाहरण चरहरूको लागि getter/setter विधिहरू स्वचालित रूपमा उत्पन्न गर्छ — boilerplate हटाएर र Ruby को सुन्दरता प्रतिबिम्बित गर्दै (धेरै भाषाहरूमा स्पष्ट getters/setters लेख्नु को सट्टा, तपाईले तिनलाई एक लाइनमा घोषणा गर्नुहुन्छ)।
Ruby को स्वच्छ क्लास syntax, कन्स्ट्रक्टर र उदाहरण-चर मोडेल, accessor विधिहरू, र class methods बुझ्नु मूल, अवश्य-जान्न सामग्री हो object-oriented Ruby को लागि।
क्लासहरू Ruby अनुप्रयोगहरू जुर्को डेटा र व्यवहार कसरी मडेल गर्नु हो त्यो हो, र Ruby को क्लास सुविधाहरू (को initialize सम्मेलन, @ उदाहरण चर, attr_* accessors, public/private नियन्त्रण) Ruby को object-oriented कोडन कसरी लेखिन्छ त्यो हो, तिनलाई आयत्त गर्नु आवश्यक, मौलिक ज्ञान हो जसले सबै Ruby विकास अधारमा राख्छ र language को object-oriented प्रकृति बुझ्नको लागि अक्सर सुरुवात बिन्दु हो।
