คุณทำถูกวิธี วิธีการเรียน (คล้ายกับวิธี 'คงที่' ใน C ++ หรือ Java) ไม่ได้เป็นส่วนหนึ่งของอินสแตนซ์ดังนั้นพวกเขาจะต้องมีการอ้างอิงโดยตรง
ในบันทึกย่อนั้นในตัวอย่างของคุณคุณควรใช้วิธีการปกติ 'default_make' ดีกว่า:
#!/usr/bin/ruby
class Truck
def default_make
# Class method.
"mac"
end
def initialize
# Instance method.
puts default_make # gets the default via the class's method.
end
end
myTruck = Truck.new()
วิธีการเรียนจะมีประโยชน์มากขึ้นสำหรับฟังก์ชั่นประเภทยูทิลิตี้ที่ใช้ชั้นเรียน ตัวอย่างเช่น:
#!/usr/bin/ruby
class Truck
attr_accessor :make
def default_make
# Class method.
"mac"
end
def self.buildTrucks(make, count)
truckArray = []
(1..count).each do
truckArray << Truck.new(make)
end
return truckArray
end
def initialize(make = nil)
if( make == nil )
@make = default_make()
else
@make = make
end
end
end
myTrucks = Truck.buildTrucks("Yotota", 4)
myTrucks.each do |truck|
puts truck.make
end