类定义
方式一:通过执行类代码体创建或扩展类Class的对象
ruby 代码
- class [scope::] classname [<superexpr]
- body
- end
注意:
1、如果superexpr存在,那么该superexpr应当是一个以Class对象为结果的表达式,而且它将是被定义的类的超类。
如果省略superexpr,则默认为类Object
2、所有类定义是在代码执行时候生成的。
3、所有类定义在执行后都是一个Class类的对象。
4、所有的这些对象都将赋给名为classname的常量。
5、使用域作用符(::)可以为类定义中的classname前置一个已存在的类或模块名。这样会将新的定义插入到前面定义
的模块和/或类的名字空间中,但不是在这些外部类的作用域中解释此定义。前面带有域作用符的classname将被放置在
那个类或模块所处的顶层(这样作有个什么好处)
方式二、匿名类
ruby 代码
该类是一个匿名类,将会和指定的对象关联。这时这个匿名类将是该关联对象的虚拟类,原来该对象的类,变成了该虚拟 类的超类。
注意:如果直接在类定义外,给你对象新增一些方法和这样为一个对象创建一个类是等价的。同样是创建一个虚拟类。
Ruby类定义和其他语言不一样,其他语言都是在编译期处理的。而ruby是在代码运行时候根据类的定义创建的。这样如下特点:
1、可以在运行时候决定类的定义。这样根据不同条件,得出不同的类的定义结构
2、如果类定义是可执行的代码,那么它一定是在某个对象的上下文中执行的。Ruby中直接把该类作为当前对象
3、这个对象的类属于Class。说明,所有创建类就是一个对象,他们的类就是Class
分享到:
- 2007-05-09 09:23
- 浏览 3137
- 评论(1)
- 论坛回复 / 浏览 (1 / 2976)
- 查看更多
相关推荐
在Ruby中,方法和类是构建程序的基本元素,它们是实现代码重用和组织的关键概念。 ### 方法(Methods) 方法在Ruby中是可重复使用的代码块,它们接受参数,执行特定任务,并可能返回值。方法定义使用`def`关键字...
类是Ruby中的核心概念,它定义了对象的结构和行为。Referral可以帮助开发者快速定位到类的定义,理解其属性和方法。方法是类或模块中定义的行为,Referral能找出方法的调用位置和实现,这对于理解代码流程和优化性能...
索引功能安装构建用法管理Ruby的虚拟机调用Ruby方法定义Ruby方法定义Ruby类定义Ruby子类捕获Ruby异常平台支持库比较Rosy与Helix Rosy与Rutie作者许可功能性能:Rosy使您可以编写性能最高的代码,因此直接使用C API...
本文将深入探讨Ruby语言中的类变量、全局变量、实例变量,以及多态的概念,并结合Ruby编码规范来阐述如何有效地编写代码。 一、类变量 类变量在Ruby中以`@@`前缀表示,它们是属于类或模块的共享变量,不会被类的...
Ruby 类定义 当您定义一个类时,您实际是定义了一个数据类型的蓝图。这实际上并没有定义任何的数据,而是定义了类的名称意味着什么,也就是说,定义了类的对象将由什么组成,以及在该对象上能执行什么操作。 类
目录散列检索键和值将键映射到值将值映射到键重复的枚举键或重复的值遗产贡献版权和许可相关项目 用法枚举可以定义为常量或类方法来访问,这是优先考虑的问题。 常数定义枚举,并将其作为常量引用。 class ...
Ruby的枚举通常指的是枚举类(Enum Class),这是一种自定义枚举类型的方法,允许我们创建具有特定行为的枚举。在本篇文章中,我们将深入探讨Ruby如何实现面向对象的枚举以及它在实际开发中的应用。 首先,让我们...
- **动态性**:Ruby支持运行时修改代码结构,允许开发者在程序运行过程中改变类和方法的行为。 - **元编程能力**:Ruby提供了一种称为元编程的技术,使得程序可以自我修改和自我扩展。 ### 二、Ruby编程基础 #### ...
Ruby-Behaves是一个用于Ruby编程语言的开源库,它是一个gem,主要目的是帮助开发者更加灵活地定义类的行为。在面向对象编程中,类是对象的蓝图,定义了它们的属性和方法,而行为则指代类可以执行的操作。Behaves gem...
1. **模型定义**:你可以定义一个Ruby类并继承自`MongoMapper::Document`,然后使用`key`方法声明属性,这类似于ActiveRecord中的`attr_accessor`。例如: ```ruby class User include MongoMapper::Document ...
2. **类和模块的开放性**:Ruby的类和模块在运行时可以被修改,这意味着你可以在程序的任何时刻向它们添加新的方法或属性。`class 语法常用于在类的上下文中定义方法。 3. **消息发送**:`send`或`__send__`方法...
Java的OOP体系严谨,类定义严格,而Ruby则更加灵活,允许动态地添加和修改类的方法。Ruby的块和闭包是其独特之处,它们提供了强大的控制流和数据处理能力,这是Java中匿名内部类和接口不能比拟的。 其次,Ruby的...
Ruby标准库提供了大量预先定义的模块和类,方便开发者在各种场景下快速开发。其中包括文件操作、网络通信、XML解析、日期和时间处理、数学运算等功能。例如,`File`类用于处理文件和目录,`Net::HTTP`用于HTTP通信,...
- **类与对象**:教授如何定义类、创建实例,并进行方法的定义与调用。 - **继承与多态**:探讨继承机制,以及如何实现多态性来增强代码的灵活性。 - **封装与访问控制**:讲解如何合理地隐藏对象的内部状态,...
变量在Ruby中有四种类型:局部变量(以小写字母或下划线开头)、实例变量(以`@`开头)、类变量(以`@@`开头)和全局变量(以`$`开头)。数据类型包括字符串、数字、布尔值、数组、哈希等。控制结构包括条件语句(如...
8. **标准库丰富**:Ruby的标准库包含了大量实用的模块和类,如文件操作、网络通信、XML解析等,为开发者提供了便利。 提到Ruby,就不得不提Rails框架。Ruby on Rails(简称Rails)是由David Heinemeier Hansson...
1. **类与模块**:在Ruby中,类和模块都是对象。你可以动态地创建和修改它们。例如,你可以通过`Class.new`创建一个新的类,或者在运行时添加方法到一个已存在的类。模块用于代码复用和命名空间管理,但也可作为混入...