- 浏览: 256968 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (293)
- web (1)
- [随笔分类]项目管理 (30)
- [随笔分类]WCF (14)
- 未分类 (1)
- [随笔分类]Linq (4)
- [随笔分类]C#基础 (24)
- 项目 (1)
- [网站分类]3.非技术区(技术之外的文章,但不要涉及任何政治内容) (8)
- [网站分类]1.首页原创精华.NET区(包含架构设计、设计模式)(对首页文章的要求:原创、高质量、经过认真思考并精心写作) (9)
- [随笔分类]Ubuntu (4)
- ASP.Net (1)
- [网站分类]2..NET新手区(用于发表不合适发表在首页的.NET技术文章,包括小经验、小技巧) (30)
- [随笔分类]ASP.NET MVC (20)
- [随笔分类]ASP.NET (3)
- [随笔分类]程序员厨房 (4)
- [随笔分类]英语学习 (28)
- [网站分类]4.其他技术区 (1)
- [随笔分类]Silverlight (12)
- [随笔分类]CodeSmith (8)
- [随笔分类]其他 (4)
- [随笔分类]Ruby (4)
- [发布至博客园首页] (34)
- [网站分类]其他技术区 (3)
- [随笔分类]Ruby on Rails (2)
- [网站分类].NET新手区 (33)
- [随笔分类]TDD (1)
- [随笔分类]不谈技术 (2)
- [网站分类]非技术区 (7)
最新评论
-
yicone:
You make a mistake when paste t ...
WCF步步为营(一):简单示例 -
jinweijie:
你好,这个实现不错,但是在用了scriptmanager以后就 ...
在服务器端保存ViewState
1. Class, Module, Object,Kernel的关系
我们看到Ruby里,可以直接写puts, print等,感觉像是命令动词一样,这和我们说的Ruby里一切都是对象有点冲突,其实我们理解了Ruby中Class, Module,Object,Kernel的关系,就明白了,通过下面的代码,我们知道Module是Class的父类.
- 通过上图可以看出Class, Module, Object 都是class,而Kernel是Module。
- Object是Ruby中所有类的父类,Object混入了Kernel这个模块,所以Kernel中内建的核心函数就可以被Ruby中所有的类和对象访问。
- Object的实例方法由Kernel模块定义。
2. Kernel
我们可以把Kernel理解为系统预定义的一些方法,我们可以在所有的对象上使用,使用时不需要使用类型作为前缀,当然我们也可以加上Kernel,看起来像C#的静态方法。
Kernel模块中定义了private method和public method,我们可以在irb里输入Kernel.methods, Kernel.public_methods, Kernel.private_methods.
对于一个普通的对象,可以直接调用Kernel的public method
而要想调用一个普通对象所包含的Kernel的函数,用一般的调用方法无法做到,只有通过Send来实现.
本文作者:王德水
未经本人同意,禁止转载
发表评论
-
ASP.NET MVC源码现在可以下载了(翻译)
2008-03-22 09:44 941上个月我在blog里介绍了ASP.NET MVC Roadm ... -
ASP.NET MVC+LINQ开发一个图书销售站点
2008-03-29 17:12 1324园子里已经有很多人讲解了其理论知识,网上也有不少示例,但是很多 ... -
Linq to SQL Dynamic 动态查询
2008-04-01 15:09 1053在开发中我们常需要使用动态的条件来组合查询,scotte博客里 ... -
使用ASP.NET 3.5 Extensions管理浏览器历史:使用服务器端
2008-04-08 13:15 620我们知道当我们使用ASP.NET AJAX的一些方便的服务端控 ... -
客户比产品更重要
2008-04-12 15:49 659发现博客园里99%都是技术文章,很少有管理的经验分享 ... -
WPF 全球化和本地化(图解)
2008-04-12 16:15 826当您将自己的产品限制为只能通过一种语言使用时,您便将潜在的客户 ... -
项目经理如何参与任务管理
2008-04-14 17:55 678每个项目经理可能都会 ... -
.NET环境下每日集成
2008-04-24 17:36 1386本系列主要介绍了.Net环境下如何使用CruiseContro ... -
项目经理虚拟管理客户
2008-05-28 11:26 559项目经理做项目时经常 ... -
从中国男足看项目管理
2008-06-16 11:39 431国足1:2 不敌伊拉克后,彻底无缘本届世界杯,我想比赛时和赛后 ... -
敏捷的 "道"
2008-11-19 14:10 508本文摘要 敏捷的路上 ... -
在服务器端保存ViewState
2008-11-20 16:51 5741.比较 Asp.net 的一个强大的功能就是ViewStat ... -
TDD实验2:使用VSTS 的单元测试功能
2008-12-10 08:25 797我们要实现的功能是,发工资时自动向我们发送邮件,如果工资少于1 ... -
TDD Tip:方法内部New出来的对象如何Mock
2008-12-16 00:27 1243解决的问题:方法内部new的对象在测试时希望能够用mock对象 ... -
Web测试:Selenium使用
2008-12-23 10:49 1621<style> .confluenceTable ... -
谈软件协作:君子和而不同,小人同而不和
2008-12-31 18:39 705我们知道现在的软件开 ... -
如何进行ASP.NET MVC 的测试
2009-01-05 00:48 1338本文参考了http://stephenwalther.com/ ... -
如何使ASP.NET MVC Controller易测试呢?
2009-01-05 23:25 983昨天那篇文章如何进行ASP.NET MVC 的测试,虽然通过自 ... -
ASP.NET MVC AJAX的调用
2009-01-10 08:21 3767在ASP.NET MVC beta中我们可以使用Ajax.Be ... -
IIS7 配置ASP.NET 2.0, WCF, ASP.NET MVC
2009-01-16 17:50 4634ASP.NET 2.0 部署 1.首先打开win7 的特性,路 ...
相关推荐
不包含 实施Module#uninclude和Object#unextend 经过测试的Ruby版本 ... ancestors # => [Foo, Bar, Object, Kernel, BasicObject] Foo . class_eval { uninclude Bar } p Foo . ancestors # => [Foo,
### Ruby语言介绍与基础知识 #### 一、Ruby语言概述 **1.1 Ruby的历史** Ruby是一种面向对象的脚本语言,由日本人松本行弘(Matsumoto Yukihiro)于1993年开始开发。起初,Ruby是作为一种兴趣项目而诞生的,但...
class TestModule def piyo # ... end end dp %w[ 100 101 102 ] dp test : 1000 dp TestModule . method ( :instance_method ) dp TestModule . instance_method ( :piyo ) 运行 ruby 脚本: $ ruby -...
Ruby有一些特殊的类和方法,如`Object`类是所有类的基类,`Kernel`类包含常用的基本函数。 **3.5 类变量与类方法** 类变量以`@@`开头,可在所有实例间共享;类方法则使用`self`关键字定义: ```ruby class ...
### Ruby 程序设计知识点概览 #### 一、Ruby语言概述 ##### §1.1 Ruby的历史 - **起源与发展**:Ruby是由日本程序员松本行弘(Yukihiro Matsumoto)于1995年开始开发的一种面向对象的脚本语言。它结合了Perl的...
- **Lists of Methods:** The book provides comprehensive lists of methods available in the Object, String, Array, and Hash classes and the Kernel module. These lists are invaluable for understanding ...
### RUBY基础入门指南 #### 一、Ruby语言概述 **1.1 Ruby的历史** Ruby是一种面向对象的脚本语言,由日本人松本行弘(Yukihiro Matsumoto)于1995年开始开发。它结合了Perl的灵活性、Smalltalk的强大功能以及Ada...
- `Comparable`和`Kernel`出现在`String`的祖先链中是因为`String`继承自`Object`,而`Object`包含了这些模块。 #### 十、总结 通过本文的学习,我们了解了Ruby面向对象编程中类与方法的基本概念,包括类的定义、...
7. **反射API**:`ObjectSpace`、`Kernel::caller`、`Method`、`Proc`等类提供了对运行时对象和方法的深入洞察,帮助开发者了解和操控程序的内部状态。 8. **Metaclasses**:每个Ruby对象都有一个元类,用于存储...
ruby语法基础教程,比较全的。 目 录 Ruby语言 1 Grant Ren 1 第一部分 Ruby语言基础 8 第一章 Ruby语言概述 8 §1.1 Ruby的历史 8 §1.2 Ruby名字的由来 8 §1.3 Ruby的特点 8 §1.4 Ruby和Python的比较 9 第二章...
在Ruby编程语言中,模块(Module)是一个重要的概念,它在代码组织和功能复用方面起到了关键作用。在《Ruby基础教程(第四版)》的第8章中,我们探讨了模块的基本特性以及如何利用模块来扩展类的功能。 首先,模块...