1. 类(Class):
类是一种抽象数据类型,用于封装数据和行为。在Ruby中,类由关键字class定义。一个简单的类如下:
class Dog
def bark
puts "Woof, woof!"
end
end
这定义了一个名为Dog的类,它具有一个名为bark的方法。
2. 对象(Object):
对象是类的实例。在Ruby中,你可以使用new方法创建一个对象:
my_dog = Dog.new
my_dog是Dog类的一个实例,现在你可以调用该实例的方法:
my_dog.bark # 输出 "Woof, woof!"
3. 初始化方法(Constructor):
每当创建一个类的新实例时,Ruby会调用initialize方法。这个方法通常用于初始化对象的状态。
class Dog
def initialize(name)
@name = name
end
def bark
puts "#{@name} says Woof!"
end
end
my_dog = Dog.new("Buddy")
my_dog.bark # 输出 "Buddy says Woof!"
4. 实例变量(Instance Variable):
实例变量以@开头,用于在对象内部存储状态。
class Dog
def initialize(name)
@name = name
end
def bark
puts "#{@name} says Woof!"
end
end
my_dog = Dog.new("Buddy")
5. 访问器方法(Accessor Methods):
你可以使用访问器方法来获取和设置实例变量的值。Ruby提供了attr_accessor、attr_reader和attr_writer来简化这个过程。
class Dog
attr_accessor :name
def initialize(name)
@name = name
end
def bark
puts "#{@name} says Woof!"
end
end
my_dog = Dog.new("Buddy")
puts my_dog.name # 获取实例变量的值
my_dog.name = "Max" # 设置实例变量的值
6. 继承(Inheritance):
Ruby支持类的继承。一个类可以继承另一个类的行为和属性。
class Animal
def speak
puts "Animal makes a sound."
end
end
class Dog < Animal
def bark
puts "Woof, woof!"
end
end
my_dog = Dog.new
my_dog.speak # 继承了父类的方法
my_dog.bark # 自身的方法
7. 模块(Module):
模块用于组织和封装代码。它可以包含方法、常量和类。
module Swimmable
def swim
puts "I'm swimming!"
end
end
class Dog
include Swimmable
end
my_dog = Dog.new
my_dog.swim # 使用模块中的方法
8. 多态性(Polymorphism):
多态性是一种允许使用相同的接口处理不同类型对象的概念。在Ruby中,你可以使用相同的方法名称处理不同类的对象。
class Cat
def speak
puts "Meow!"
end
end
class Dog
def speak
puts "Woof!"
end
end
def make_sound(animal)
animal.speak
end
my_cat = Cat.new
my_dog = Dog.new
make_sound(my_cat) # 输出 "Meow!"
make_sound(my_dog) # 输出 "Woof!"
以上是一些关于Ruby类和对象的基础概念。类和对象是Ruby中面向对象编程的核心,它们使得代码更具结构、可维护性,也更易于理解。
转载请注明出处:http://www.zyzy.cn/article/detail/6445/Ruby