在這里,我們將了解和學(xué)習(xí)Ruby中的對(duì)象和類。 在面向?qū)ο缶幊陶Z言中,使用對(duì)象和類設(shè)計(jì)程序。
對(duì)象是物理和邏輯實(shí)體,而類只是一個(gè)邏輯實(shí)體。
Object類是所有Ruby對(duì)象的默認(rèn)根。 Ruby對(duì)象繼承自BasicObject(它是Ruby中所有類的父類)類,允許創(chuàng)建替代對(duì)象層次結(jié)構(gòu)。
對(duì)象混合在內(nèi)核模塊中,使得內(nèi)置的內(nèi)核功能可以全局訪問。
Ruby中的對(duì)象是通過調(diào)用類的new方法來創(chuàng)建的。 它是一種獨(dú)特的方法,并在Ruby庫中預(yù)定義。
Ruby對(duì)象是類的實(shí)例。
語法
objectName = className.new
示例:
假設(shè)我們有一個(gè)名為Stuent的類。 現(xiàn)在,創(chuàng)建一個(gè)對(duì)象stu,并使用以下命令,
stu = Studen.new("John")
完整示例代碼 -
class Student
attr_accessor :name, :phone
def introduction()
puts "Hi , I'm #{name}!"
end
def say_hello(name, toname)
puts "Hello, #{toname}! I'm #{name}"
end
end
stu = Student.new
stu.name = "Maxsu"
stu.introduction()
stu.say_hello('Katrina', 'Maxsu')
將上面代碼保存到文件:student.rb,執(zhí)行上面代碼,得到以下結(jié)果 -
F:\worksp\ruby>ruby Student.rb
Hi , I'm Maxsu!
Hello, Maxsu! I'm Katrina
F:\worksp\ruby>
每個(gè)Ruby類都是Class類的一個(gè)實(shí)例。 Ruby中的類是一流的對(duì)象。
Ruby類始終以class關(guān)鍵字后接類名開頭。 通常對(duì)于類名,使用駝峰命名規(guī)則(CamelCase)。 類的名稱應(yīng)始終以大寫字母開頭。定義類是用end關(guān)鍵字完成的。
語法
class ClassName
codes...
end
如下示例代碼中,定義一個(gè)名稱為:Dog 的類 -
class Dog
def initialize(breed, name)
# Instance variables
@breed = breed
@name = name
end
def bark
puts 'Ruff! Ruff!'
end
def display
puts "I am of #{@breed} breed and my name is #{@name}"
end
end
# make an object
# Objects are created on the heap
d = Dog.new('Labrador', 'Benzy')
d.bark
d.display
在上面的例子中,我們使用class關(guān)鍵字創(chuàng)建了一個(gè)Dog類。 d是一個(gè)實(shí)例變量,可用于調(diào)用Dog類的所有方法。