Ruby 类和对象
Ruby 类和对象
Ruby 是一种纯面向对象的编程语言。在 Ruby 中,将一些有着相同属性和功能的代码封装在一起被称为类。创建类的过程被称为类定义。类定义是 Ruby 的核心特性之一,它使得 Ruby 具有了极高的扩展性和重用性。
类的定义
在 Ruby 中,我们可以使用关键字 class
来定义类。以下是一个简单的类定义例子:
class Person
def initialize(name, age)
@name = name
@age = age
end
end
在类中我们可以为其添加属性或者方法,例如:
class Person
def initialize(name, age)
@name = name
@age = age
end
def introduction
puts "My name is #{@name} and I am #{@age} years old."
end
end
在 Ruby 中,所有以 @
开头的变量被称为实例变量,它们的作用域限定在对象实例内,不能被其他实例直接访问。在以上例子中,@name
和 @age
就是对象的实例变量,initialize
方法则是对象的构造方法。
对象的创建
在类定义完成之后,我们可以通过调用 new
方法来创建一个新的对象:
person = Person.new("Tom", 25)
以上代码将会创建一个名叫 Tom
年龄为 25
的 Person
对象,变量 person
将指向该对象。
方法调用
当对象被创建之后,我们可以调用方法来操作对象的状态或者执行对象的功能。方法调用的方式有两种:
- 使用点号
.
- 使用两个冒号
::
点号用于调用对象的公共方法,语法如下:
person.introduction
以上代码将会调用 person
对象的 introduction
方法。
双冒号用于调用类或者模块中的静态方法,例如:
Math::sqrt(16)
以上代码将会调用 Math
模块中的 sqrt
方法,计算 16
的算术平方根。
继承
在 Ruby 中,我们可以通过继承来扩展和重用现有类的功能。使用关键字 class
和 <
来定义一个类的继承,例如:
class Man < Person
def introduction
puts "I am a man named #{@name} and I am #{@age} years old."
end
end
以上代码定义了一个名叫 Man
的类,它继承自 Person
类,重写了 introduction
方法。当我们创建一个 Man
对象,并调用 introduction
方法时,将会得到以下输出:
I am a man named Tom and I am 25 years old.
在继承中,子类不仅可以重写父类的方法,还可以定义自己的属性和方法。
总结
Ruby 中的类和对象是这门语言的核心特性之一,它们为我们提供了高度组织化和面向对象化的编程模式。类定义和对象创建是 Ruby 编程的基础,重载、方法调用和继承则为我们提供了丰富的扩展和重用功能。熟练掌握类和对象的使用,将会使我们的代码更加简单、明确和易于维护。