`n 如何在Ruby中定义和使用类?

如何在Ruby中定义和使用类?

Clock Icon 发布时间:2026/8/9 4:38  · 

在Ruby中定义类是一项基本的技能,能够让程序员创建对象并封装数据与行为。定义类的基本语法如下:使用`class`关键字后接类的名称,通常采用驼峰命名法。类体内可包含属性和方法。
```rubyclass Person attr_accessor :name, :age end```通过`attr_accessor`可以为类定义属性,这会自动创建获取和设置这些属性的方法。
在定义类的方法时,关键字`def`用于声明方法,方法名应为小写字母开头。以下是一个简单的实例,添加了一个方法以显示对象的信息。
```rubyclass Person attr_accessor :name, :age def display_info puts "Name: #{@name}, Age: #{@age}" endend```可以通过`new`方法创建类的实例,并通过设置属性值来初始化对象。
```rubyperson = Person.newperson.name = "Alice"person.age = 30person.display_info # 输出: Name: Alice, Age: 30```创建类时,可以通过初始化方法`initialize`设定属性的初始值,这个方法会在使用`new`创建对象时自动调用。
```rubyclass Person attr_accessor :name, :age def initialize(name, age) @name = name @age = age end def display_info puts "Name: #{@name}, Age: #{@age}" endendperson = Person.new("Bob", 25)person.display_info # 输出: Name: Bob, Age: 25```通过类,开发者可以实现继承,以便创建具有父类特性的子类,增强代码的复用性。
```rubyclass Employee < Person attr_accessor :salary def initialize(name, age, salary) super(name, age) # 调用父类的初始化方法 @salary = salary end def display_info super # 调用父类的方法 puts "Salary: #{@salary}" endend```在这种情况下,`Employee`类继承自`Person`类,扩展了额外的属性和特性。
```rubyemployee = Employee.new("Charlie", 28, 50000)employee.display_info# 输出:# Name: Charlie, Age: 28# Salary: 50000```类还可以包括模块,使得多个类能够共享相同的行为。使用`include`关键字可以将模块引入到类中。
```rubymodule Greetable def greet puts "Hello, I'm #{@name}" endendclass Person include Greetable attr_accessor :name, :ageend```实例化并调用模块中的方法。
```rubyperson = Person.newperson.name = "Diana"person.greet # 输出: Hello, I'm Diana```在Ruby中,类的定义与使用非常灵活,能够根据不同需求进行扩展,适应各种场景,编写出结构合理、层次分明的程序。

推荐文章

热门文章