`
yjjxf
  • 浏览: 42060 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Ruby 类定义

    博客分类:
  • Ruby
阅读更多

类定义
    方式一:通过执行类代码体创建或扩展类Class的对象

  

ruby 代码
  1. class [scope::] classname [<superexpr]   
  2.     body   
  3.   end  


     注意:

1、如果superexpr存在,那么该superexpr应当是一个以Class对象为结果的表达式,而且它将是被定义的类的超类。
如果省略superexpr,则默认为类Object
2、所有类定义是在代码执行时候生成的。
3、所有类定义在执行后都是一个Class类的对象。
4、所有的这些对象都将赋给名为classname的常量。
5、使用域作用符(::)可以为类定义中的classname前置一个已存在的类或模块名。这样会将新的定义插入到前面定义
的模块和/或类的名字空间中,但不是在这些外部类的作用域中解释此定义。前面带有域作用符的classname将被放置在
那个类或模块所处的顶层(这样作有个什么好处)


   方式二、匿名类
       

ruby 代码
  1. class << obj   
  2.          body   
  3. end  

      

       该类是一个匿名类,将会和指定的对象关联。这时这个匿名类将是该关联对象的虚拟类,原来该对象的类,变成了该虚拟  类的超类。
注意:如果直接在类定义外,给你对象新增一些方法和这样为一个对象创建一个类是等价的。同样是创建一个虚拟类。

 

       Ruby类定义和其他语言不一样,其他语言都是在编译期处理的。而ruby是在代码运行时候根据类的定义创建的。这样如下特点:
   1、可以在运行时候决定类的定义。这样根据不同条件,得出不同的类的定义结构
   2、如果类定义是可执行的代码,那么它一定是在某个对象的上下文中执行的。Ruby中直接把该类作为当前对象
   3、这个对象的类属于Class。说明,所有创建类就是一个对象,他们的类就是Class
     

分享到:
评论
1 楼 cino 2007-05-10  
原来是这样,懂了一点

相关推荐

    sys rosy-Rust的Ruby绑定-Rust开发

    索引功能安装构建用法管理Ruby的虚拟机调用Ruby方法定义Ruby方法定义Ruby类定义Ruby子类捕获Ruby异常平台支持库比较Rosy与Helix Rosy与Rutie作者许可功能性能:Rosy使您可以编写性能最高的代码,因此直接使用C API...

    Ruby 面向对象知识总结

    Ruby 类定义 当您定义一个类时,您实际是定义了一个数据类型的蓝图。这实际上并没有定义任何的数据,而是定义了类的名称意味着什么,也就是说,定义了类的对象将由什么组成,以及在该对象上能执行什么操作。 类

    Ruby语言进阶教程

    Ruby语言进阶教程

    Ruby的面向对象编程的基础教程

    Ruby 类定义 当您定义一个类时,您实际是定义了一个数据类型的蓝图。这实际上并没有定义任何的数据,而是定义了类的名称意味着什么,也就是说,定义了类的对象将由什么组成,以及在该对象上能执行什么操作。 类

    ruby-enum:在Ruby中定义枚举的便捷方法

    目录散列检索键和值将键映射到值将值映射到键重复的枚举键或重复的值遗产贡献版权和许可相关项目 用法枚举可以定义为常量或类方法来访问,这是优先考虑的问题。 常数定义枚举,并将其作为常量引用。 class ...

    Ruby-Referral一个命令行工具用于查找过滤和排序Ruby代码的定义和引用

    Referral是一个CLI,可帮助您进行Ruby代码库的复杂分析和重构。 它在整个代码中查找,过滤和排序大多数类型的Ruby标识符(例如类,方法和变量)的定义和引用。

    ruby教程.rar

    类/方法的定义 标准库 内部函数 内部变量 内部常数 内部类/模块/异常类 附加库 Ruby变更记录 ruby 1.6 特性 ruby 1.7 特性 ruby 1.8 特性 1.6.8到1.8.0的变更点(总结) ruby 1.9 特性 obsolete 对应...

    易语言ruby脚本交互

    易语言ruby脚本交互源码,ruby脚本交互,信息框_,加载内存DLL,释放内存DLL,取DLL导出函数地址,GetIntegerAddress,GetArrayDataAddress,脚本_直接执行,脚本_定义模块,脚本_初始化,脚本_定义类,脚本_定义类方法,脚本_...

    Ruby常见面试题.pdf

    1. 什么是Ruby?简要介绍Ruby的特点和主要用途。...10. 在Ruby中如何进行模块(Module)和类(Class)的定义?请说明在Ruby中模块和类的创建方法。 11. 什么是Ruby中的符号(Symbol)?请说明在Ruby中符号的作用

    Ruby的教程.txt

    类与对象:理解Ruby中的类和对象的概念,学习如何定义类、创建对象以及使用对象的属性和方法。 继承与多态:掌握Ruby中的继承机制,了解子类如何继承父类的属性和方法,并实现自己的特定功能。同时,学习多态的...

    Ruby 的通用遗传算法_Ruby_代码_下载

    Ruby 的通用遗传算法是一种非常简单易用的 Ruby 遗传算法: ...拿一个类来进化它并定义适应度、重组和变异方法。 使用种群创建一个 GeneticAlgorithm 对象。 根据需要多次调用进化方法,并查看最佳进化。

    Ruby编程语言

     7.1定义一个简单类214  7.2方法可见性:PUBLIC、PROTECTED、PRIVATE232  7.3子类化和继承234  7.4对象创建和初始化241  7.5模块247  7.6加载和请求模块252  7.7单键方法和EIGENCLASS257  7.8方法查找258  ...

    用 Ruby 实现的脚本:可以提取 iOS 项目中的类继承关系

    这个Ruby脚本的目的是从iOS项目中提取出类的继承关系,并以JSON格式导出结果文件。利用这个脚本,我们可以便捷地分析一个iOS项目的类结构。 脚本的工作原理是遍历iOS项目中的所有Swift文件,通过解析语法树来找出类...

    ruby 类常量 解析

    ANSI版的eval.rb不会报告这一警告) ruby&gt;fluid=30 30 ruby&gt;fluid=31 31 ruby&gt;Solid=32 32 ruby&gt;Solid=33 (eval):1: warning: already initialized constant Solid 33 常量可以定义在类里,但不像实变量,它们...

    Ruby语言教程及案例.docx

    Ruby是一种简单而强大的面向对象编程语言,它具有清晰的语法和丰富的内置功能。以下是一个简要的Ruby语言教程和一个基本的案例: ### Ruby语言教程: #### 1. Hello World 程序 ```ruby puts "Hello, World!" ```...

    Ruby的概要介绍与分析

    它支持类和对象的定义、继承、多态等面向对象的特性,使得开发者能够以面向对象的方式组织和管理代码。 Ruby社区也是一个充满活力的地方,为开发者提供了丰富的资源和支持。从初学者教程到高级编程技巧,从社区论坛...

    Ruby-Behaves是一个gem可以帮助您定义类之间的行为

    Behaves是一个gem,可以帮助您定义类之间的行为

    ruby语法基础教程

    §3.1 类的定义 17 §3.2 对象,属性和方法 18 §3.3 继承 20 §3.4 特殊方法与特殊类 21 §3.5 类变量与类方法 23 §3.4 存取控制 23 §3.6 元类 25 §3.7 Ruby的动态性 26 §3.8 变量 26 §3.8.1 局部变量 27 §...

    精华ruby学习笔记和代码

    这个笔记里包含了ruby的整型,字符串,浮点数,布尔等基础数据类型,还有数组,哈希hash的用法, 类的定义,函数方法,以及对象定义,其他高级用法解释,除了笔记记录的语法糖之外,还包含了一些解释性的代码,帮助...

Global site tag (gtag.js) - Google Analytics