在Ruby中,封裝性是通過將數據和操作這些數據的方法組合在一起來實現的。實例變量是類的一個實例所擁有的數據,它們通常用于存儲對象的狀態。要區分實例變量,我們可以使用以下方法:
實例變量的命名:實例變量通常以@
符號開頭,后面緊跟變量名。例如,@name
、@age
等。這種命名方式使得實例變量在類的實例中具有唯一性,因為每個實例都有自己的實例變量副本。
訪問實例變量:要訪問實例變量,我們需要使用實例方法(如getter和setter方法)。這些方法允許我們在外部訪問和修改實例變量的值,同時保持封裝性。例如:
class Person
def initialize(name, age)
@name = name
@age = age
end
def get_name
@name
end
def set_name(name)
@name = name
end
def get_age
@age
end
def set_age(age)
@age = age
end
end
在這個例子中,我們使用get_name
、set_name
、get_age
和set_age
方法來訪問和修改實例變量@name
和@age
。這樣可以確保外部代碼不能直接訪問這些變量,從而保持了封裝性。
self
關鍵字來訪問實例變量。例如:class Person
def initialize(name, age)
@name = name
@age = age
end
def introduce
puts "My name is #{self.get_name} and I am #{self.get_age} years old."
end
end
person = Person.new("Alice", 30)
person.introduce
在這個例子中,我們在introduce
方法中使用self.get_name
和self.get_age
來訪問實例變量。這樣可以確保我們使用的是實例變量,而不是局部變量或其他實例變量。