• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >ruby > Ruby面向对象编程中类的方法与类的扩展

Ruby面向对象编程中类的方法与类的扩展

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了面向对象 抽象类,面向对象 类,面向对象中的类,面向对象类图,java面向对象和类等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

类方法

类方法其实质是生活在该类的单件类中的单件方法。其定义方法有三种,分别是:

# 法一
def MyClass.a_class_method; end


# 法二
class MyClass
  def self.anther_class_method; end
end


# 法三*
class MyClass
  class << self
    def yet_another_class_method; end
  end
end

</div>

其中第三种方法道出了,类方法的实质,特别记忆一下!

类扩展

类扩展通过向类的单件类中添加模块来定义类方法。

module MyModule
  def my_method; ‘hello'; end
end

class MyClass
  class < self
    include MyModule
  end
end

MyClass.my_method

</div>

上面代码展示了具体类扩展的实现方式,将一个MyModule模块引入到MyClass类的单件类中,因为my_method方法是MyClass的单件类的一个实例方法,这样,my_method方法也是MyClass的一个类方法。

对象扩展

类方法是单件方法的特例,因此可以把类扩展这种技巧应用到任意对象上,这种技巧即为对象扩展
 

# 法一: 打开单件类来扩展
module MyModule
  def my_method; ‘hello'; end
end

obj = Object.new
class << obj
  include MyModule
end

obj.my_method  # => “hello”
obj.singleton_methods  # => [:my_method]
# 法二:Object#extend方法
module MyModule
  def my_method; ‘hello'; end
end

obj = Object.new
#对象扩展
obj.extend MyModule
obj.my_method  # => “hello” 
#类扩展
class MyClass
  extend MyModule
end

MyClass.my_method # => “hello”

</div>

Object#extend是在接受者的单件类中包含模块的快键方式。

</div>

您可能想查找下面的文章:

  • Ruby面向对象编程中类的方法与类的扩展

相关文章

  • 简单的Ruby中的Socket编程教程
  • Ruby中case表达式详解
  • Ruby优化继承类实例
  • 采用UTF-8解决Ruby on Rails程序的中问题
  • Ruby中使用SWIG编写ruby扩展模块实例
  • Python的Flask框架中SERVER_NAME域名项的配置教程
  • Ruby on Rails中Rack中间件的基础学习教程
  • Ruby对比Python的优势和劣势
  • 初步了解一下什么是ruby
  • 深入剖析Ruby设计模式编程中对命令模式的相关使用

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Ruby中变量引用时的一些注意点
    • Ruby On Rails中如何避免N+1问题
    • ruby环境中自动编译sass教程
    • 在Ruby中处理日期和时间的教程
    • ruby 过程对象 解析
    • 收集的多个ruby遍历文件夹代码实例
    • 使用Ruby来处理文本的教程
    • Ruby on Rails迁移时的一些注意事项
    • ruby安装gem包失败的通用解决方法
    • Ruby学习笔记之gem 命令详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有