在Ruby中,封裝數(shù)據(jù)的方法通常是使用實(shí)例變量和訪問器方法(getter和setter方法)來控制對(duì)數(shù)據(jù)的訪問和修改。通過定義類的實(shí)例變量和對(duì)應(yīng)的訪問器方法,可以保護(hù)數(shù)據(jù)的完整性并提供對(duì)外的接口,使得外部代碼可以通過訪問器方法來獲取或修改數(shù)據(jù),而無(wú)法直接訪問實(shí)例變量。這樣可以確保數(shù)據(jù)的安全性和可維護(hù)性。以下是一個(gè)簡(jiǎn)單的示例:
class Person
def initialize(name, age)
@name = name
@age = age
end
def name
@name
end
def age
@age
end
def age=(new_age)
@age = new_age
end
end
person = Person.new("Alice", 30)
puts person.name #=> "Alice"
puts person.age #=> 30
person.age = 35
puts person.age #=> 35
在上面的示例中,通過定義name
和age
方法來獲取實(shí)例變量@name
和@age
的值,以及通過定義age=
方法來設(shè)置@age
的值,實(shí)現(xiàn)了數(shù)據(jù)的封裝。外部代碼可以通過調(diào)用這些方法來訪問和修改數(shù)據(jù),而無(wú)法直接訪問實(shí)例變量。