📅  最后修改于: 2023-12-03 15:19:52.146000             🧑  作者: Mango
实例变量是在 Ruby 对象中存储数据的一种方式。它们属于特定的对象实例,每个实例都可以拥有自己的一组实例变量。实例变量以 @
符号开头,后跟变量名。
@name = "John"
@age = 30
实例变量可以用于存储对象的属性或状态。通过将数据存储在实例变量中,对象可以在不同的方法之间共享和访问这些数据。这为我们提供了一种方便的方式来管理对象的内部状态,并将其封装在对象的内部。
要访问实例变量,可以使用对象实例的 getter 和 setter 方法,或者在对象内部使用 self
关键字。
例如,假设我们有一个 Person
类,具有 @name
和 @age
实例变量:
class Person
def initialize(name, age)
@name = name
@age = age
end
def name
@name
end
def age
@age
end
def info
"Name: #{@name}, Age: #{@age}"
end
end
在上面的示例中,我们定义了 name
和 age
方法来访问 @name
和 @age
实例变量的值。info
方法使用 @name
和 @age
来生成一个描述性字符串。
person = Person.new("John", 30)
person.name # 返回 "John"
person.age # 返回 30
person.info # 返回 "Name: John, Age: 30"
我们还可以使用 self
关键字在对象内部访问实例变量:
class Person
def initialize(name, age)
@name = name
@age = age
end
def info
"Name: #{self.name}, Age: #{self.age}"
end
end
在上面的示例中,我们使用 self.name
和 self.age
来访问实例变量。
实例变量的作用域限定在对象实例中。这意味着每个对象实例都有自己独立的一组实例变量,它们不同于其他对象。
person1 = Person.new("John", 30)
person2 = Person.new("Jane", 25)
person1.name # 返回 "John"
person2.name # 返回 "Jane"
在上面的示例中,person1
和 person2
是两个不同的对象实例,它们拥有自己独立的 @name
实例变量。
实例变量是 Ruby 中用于存储对象属性或状态的一种方式。它们通过对象的 getter 和 setter 方法或 self
关键字进行访问。每个对象实例都拥有自己的一组实例变量,并且它们的作用域限定在对象实例中。使用实例变量可以提高对象的封装性和灵活性,从而更好地管理对象的内部状态。