在 Ruby 中,类是一种用于封装数据和操作这些数据的方法的结构。通过定义类,我们可以创建对象,并且可以利用类中的方法来操作这些对象的数据。本章将详细介绍如何在 Ruby 中创建和使用类。
类的基本概念
在 Ruby 中,类是定义对象属性和行为的蓝图。每个类都包含属性(也称为实例变量)和方法(也称为函数)。属性用来存储对象的状态,而方法则定义了对象的行为。
定义一个类
要定义一个类,我们使用 class
关键字,后跟类名。类名通常采用驼峰命名法(CamelCase),首字母大写。
class Person end
上述代码定义了一个名为 Person
的类,但这个类目前没有任何属性或方法。
添加属性
属性是类中用来存储数据的部分。在 Ruby 中,属性通常是通过实例变量实现的。实例变量以 @
符号开头,表示它们属于该类的特定实例。
class Person def initialize(name, age) @name = name @age = age end end
上面的代码中,我们定义了一个 initialize
方法,它是一个特殊的构造器方法,用于在创建新对象时初始化实例变量。
添加方法
类中的方法定义了类的行为。可以通过定义方法来实现类的各种功能。例如,我们可以添加一个方法来获取 Person
对象的名字:
-- -------------------- ---- ------- ----- ------ --- ---------------- ---- ----- - ---- ---- - --- --- --- -------- ----- --- ---
在这个例子中,我们定义了一个 get_name
方法,它返回对象的名字。
实例化对象
定义完类之后,我们可以使用 new
方法来创建该类的对象实例。
person = Person.new("Alice", 30) puts person.get_name # 输出 "Alice"
这里我们创建了一个 Person
类的新实例,并传入名字和年龄作为参数。然后,我们调用 get_name
方法来获取并打印出名字。
访问控制
Ruby 提供了访问控制机制来限制对类属性的访问。主要有三种访问级别:公有(public)、保护(protected)和私有(private)。
- 公有:公有方法可以在任何地方被调用。
- 保护:保护方法只能在其自身类及其子类中被调用。
- 私有:私有方法只能在其自身类中被调用。
默认情况下,所有方法都是公有的。如果要将方法设为私有,可以使用 private
关键字。
-- -------------------- ---- ------- ----- ------ --- ---------------- ---- ----- - ---- ---- - --- --- --- -------- ----- --- ------- --- ---------------- ---- - ------- --- ---
在这个例子中,set_age
方法被声明为私有的,这意味着它不能从类的外部直接调用。
继承
继承是面向对象编程的一个重要特性,允许我们创建一个新的类(子类),这个类继承了另一个类(父类)的所有属性和方法。这样可以避免重复代码,提高代码复用性。
-- -------------------- ---- ------- ----- ------- - ------ --- ---------------- ---- ------ ----------- ---- - -------- ------ - ----- --- --- --------- ------ --- ---
在上述代码中,Student
类继承自 Person
类。我们使用 super
关键字来调用父类的构造器,并传入必要的参数。此外,我们还定义了一个新的方法 get_grade
来获取学生的年级信息。
总结
本章介绍了如何在 Ruby 中创建和使用类,包括定义类、添加属性和方法、实例化对象、访问控制以及继承等概念。通过理解这些基础知识,你可以开始构建更复杂的 Ruby 应用程序,并有效地组织和管理你的代码。