Ruby-模块和类
首先看下他们的关系
- irb(main):100:0> String.class
- => Class
- irb(main):101:0> String.class.superclass
- => Module
- irb(main):102:0> String.class.superclass.superclass
- => Object
class < Module < Object
1、类 只能单继承,但是可以包含多个模块
module AA
def AA.prints1(str)
print "A:"+str
end
end
module BB
def BB.prints2(str)
print "B:"+str
end
end
class CC
include AA
AA.prints1("aa")
include BB
BB.prints2("bb")
end
2、模块 就和c#接口类似,包含一些公共接口方法,无法实例化
类调用模块的两种方式
A.rb 在方法前加 模块名.方法名 (AA.prints1) , 在其引用类中就可以直接调用 AA.prints1
module AA
def AA.prints1(str)
print "A:"+str
end
end
B.rb 如果没有加模块名则需要在其引用类中添加 include BB把方法包含进引用类中,相当于继承了方法,然后就可以直接调用了prints2
module BB
def prints2(str)
print "B:"+str
end
end
Ruby-模块和类的更多相关文章
- Ruby模块与类
Ruby是单一继承,一个类只能有一个直接的母类 Mix-in 模式来处理复合需求 多重包含: 由下往上回溯,重复的只看最上方的 换句话说,程序由上往下执行,由具体到抽象,第二次发现同一个模块 ...
- 雷林鹏分享:Ruby 模块(Module)
Ruby 模块(Module) 模块(Module)是一种把方法.类和常量组合在一起的方式.模块(Module)为您提供了两大好处. 模块提供了一个命名空间和避免名字冲突. 模块实现了 mixin 装 ...
- Ruby模块(module)
Ruby模块(module) 2013-04-03 16:47:09| 分类: Ruby | 标签:ruby require load extend include |字号 订阅 ...
- VBA标准模块与类模块
大家通过之前的介绍,已知道怎么将一个空模块插入VBA的工程中.从插入模块中可以看到,模块有有两种——标准模块与类模块.类模块是含有类定义的特殊模块,包括其属性和方法的定义.在后面会有介绍与说明. 随着 ...
- js模块,类,继承,命名空间,私有属性等相关概念梳理
js确切的说是一种基于对象的语言,和纯面向对象的语言(比如as)稍微有点区别,js中没有类的概念.虽然有继承但是基于原型的继承.随着前段越来越受重视,jser们利用js的一些特性他们制造出了和纯面向对 ...
- 模块工具类--utils
File: js\utils.js/** * 模块工具类,用来初始化各模块视图.自定绑定事件以及其他辅助功能等 * @class Utils */Utils = (function() { var i ...
- Python第十一天 异常处理 glob模块和shlex模块 打开外部程序和subprocess模块 subprocess类 Pipe管道 operator模块 sorted函数 os模块 hashlib模块 platform模块 csv模块
Python第十一天 异常处理 glob模块和shlex模块 打开外部程序和subprocess模块 subprocess类 Pipe管道 operator模块 sorted函 ...
- 【Python基础】lpthw - Exercise 40 模块、类和对象
一. 模块(module) 模块中包含一些函数和变量,在其他程序中使用该模块的内容时,需要先将模块import进去,再使用.操作符获取函数或变量,如 # This goes in mystuff.py ...
- python模块和类的通用转换规则(2),三步转oo
介绍模块和类怎么互相转换,不谈面向对象的继承 封装 多态等特点. 一个person_module模块,有人的基本属性和功能. person_module.py如下 # coding=utf8 name ...
- Python模块和类.md
模块的定义 代码的层次结构 对于python的层次结构一般为包->模块 包也就是文件夹,但是文件夹下必须有文件"init.py"那么此文件夹才可以被识别为包."in ...
随机推荐
- CRM 启用或禁用自定义代码执行
启用自定义代码执行 1.打开 Windows PowerShell 命令窗口. 2.添加 Microsoft Dynamics 365 PowerShell 管理单元: Add-PSSnapin Mi ...
- WIN7 OEM Nin1 地址
WIN7 SP1 OEM Nin1 201205 一.映像版本列表 Windows 7 旗舰版 32位 LENOVOWindows 7 旗舰版 32位 ASUSWindows 7 旗舰版 32位 AC ...
- FreeRadius服务器安装以及error while loading shared libraries问题
服务器安装过程: 1. Down from www.freeradius.org 我下载的版本是freeradius-server-2.1.8.tar.gz 2. tar zx ...
- 问题解决_WCF_WCF 接收我服务的 HTTP 响应时发生错误
原文地址:http://www.cnblogs.com/tianma3798/p/5470974.html 错误内容: System.ServiceModel.CommunicationExcepti ...
- centos 7 + mono + jexus 环境安装
1.安装 mlocate yum list|grep locate yum install mlocate.x86_64 updatedb 2.安装 yum-utils yum list|grep y ...
- 为什么要使用Mac系统?
1.键盘手感,电脑外形设计轻薄,舒适,金属感比较舒服: 2.Mac炫酷方便的手势操作: 3.Mission Control的多桌面操作,方便切换工作: 4.软件安装卸载方便(相比Windows): 5 ...
- 【原创】loadrunner12.53 录制脚本时 打不开网页或者打开网页慢?
问题描述: 之前刚装12.5版本时候,用 WebTours测试过,应用程序选择自己本地IE浏览器.exe程序,输入url地址就可以成功录制了 . 但是由于公司网络配置环境改变了(猜测),现 ...
- .net网站能走多远
刚写好了学校网站,请大家帮忙测试一下.不知道怎么sql注入,或者DDoS攻击,我也是大四什么都是摸索阶段,不过这个网站 做了好长时间了,现在终于可以上架了,希望大家能指点一二,谢谢! 地址:http: ...
- LVS+keepalived负载均衡实战
1 首先安装虚拟机 安装系统 这里 配置两台虚拟机 1:192.168.137.102 2:192.168.137.103 分别安装tomcat 默认80端口,同时都是开启状态 配置192.168 ...
- 【转】C#大文件读取和查询--内存映射
笔者最近需要快速查询日志文件,文件大小在4G以上. 需求如下: 1.读取4G左右大小的文件中的指定行,程序运行占用内存不超过500M. 2.希望查询1G以内容,能控制在20s左右. 刚开始觉得这个应该 ...