### Ruby面向对象知识总结 #### 一、Ruby的面向对象特性 **Ruby**是一种完全面向对象的编程语言,这意味着在Ruby中,一切事物都是对象。无论是字符串、数字、布尔值甚至是`true`和`false`这样的基本数据类型,都是作为对象处理的。类本身也是对象,是`Class`类的一个实例。 #### 二、类和对象的基本概念 1. **类(Class)**:类定义了对象的形式,包括其属性和行为。在Ruby中,类是一个数据类型的蓝图,定义了对象的结构和功能。 2. **对象(Object)**:对象是由类创建的具体实体。每个对象都具有类定义的属性和行为,并且每个对象都是独立存在的,拥有自己独特的状态。 #### 三、类的定义与使用 - **类的定义**:在Ruby中,类通过`class`关键字开始定义,后面紧跟类名,通常类名首字母大写,采用驼峰命名法(CamelCase),例如`Box`或`MySpecialClass`。类定义以`end`关键字结束。 ```ruby class Box # 类体 end ``` - **对象的创建**:对象是通过调用类的`new`方法创建的。例如,创建一个`Box`类的对象: ```ruby box1 = Box.new box2 = Box.new ``` #### 四、初始化方法 - **`initialize`方法**:这是一个特殊的构造函数,用来初始化对象的状态。在创建对象时,会自动调用这个方法。 ```ruby class Box def initialize(width, height) @width = width @height = height end end ``` 上述示例中,`initialize`方法接受两个参数`width`和`height`,并将这两个值分别赋给实例变量`@width`和`@height`。 #### 五、实例变量 - **实例变量**:以`@`符号开头的变量称为实例变量。实例变量是在类中定义并在创建对象时初始化的。每个对象都有自己的实例变量副本,这意味着不同对象间的实例变量互不影响。 ```ruby class Box def initialize(width, height) @width = width @height = height end end ``` #### 六、访问器(Getter)和设置器(Setter)方法 - **访问器方法**:用于从类的外部获取对象的实例变量的值。 ```ruby class Box def initialize(width, height) @width = width @height = height end def width @width end def height @height end end ``` - **设置器方法**:用于从类的外部设置对象的实例变量的值。 ```ruby class Box def initialize(width, height) @width = width @height = height end def width @width end def width=(value) @width = value end def height @height end def height=(value) @height = value end end ``` #### 七、简化访问器和设置器 - **`attr_accessor`**:同时提供访问器和设置器的方法。例如: ```ruby class Box attr_accessor :width, :height def initialize(width, height) @width = width @height = height end end ``` - **`attr_reader`**:仅提供访问器的方法。 ```ruby class Box attr_reader :width, :height def initialize(width, height) @width = width @height = height end end ``` - **`attr_writer`**:仅提供设置器的方法。 ```ruby class Box attr_writer :width, :height def initialize(width, height) @width = width @height = height end end ``` 通过上述介绍,我们可以看到Ruby的面向对象设计哲学是非常灵活和强大的。使用这些核心概念,开发者可以构建出高度可维护和扩展的应用程序。理解这些基础是非常重要的,因为它们是更高级Ruby编程的基础。
剩余7页未读,继续阅读
- 粉丝: 5
- 资源: 977
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助