`
bollaxu
  • 浏览: 217384 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Ruby类方法的定义

    博客分类:
  • Ruby
 
阅读更多

Ruby定义类方法(即static method)有几种,简单的例子

class Foo
    def Foo.dummy1
        puts "dummy1"
        @name = "dummy1"
        @@var = "dummy1"
        puts @name
    end 

    def Foo::dummy2
        puts "dummy2"
        @name = "dummy2"
        @@var = "dummy2"
        puts @name
    end 

    def self.dummy3
        puts "dummy3"
        @name = "dummy3"
        @@var = "dummy3"
        puts @name
    end 

    def putsName
        puts @name
        puts @@var
    end 
end

Foo.dummy1
Foo.dummy2
Foo.dummy3
a = Foo.new
#a.dummy1 #NoMethodError
#a.dummy2 #NoMethodError
#a.dummy3 #NoMethodError
a.putsName

 值得注意的是,类方法不能在实例里面调用,这个跟C++和Java等有所不同。输出结果是:

dummy1
dummy1
dummy2
dummy2
dummy3
dummy3

dummy3
 这里,同样的,实例属性@name的值虽然在类方法里面引用了,但是不会影响到实例a。而类变量@@var的值则被改变了。

 

 

分享到:
评论

相关推荐

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

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

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

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

    Ruby编程语言

    在对Ruby进行了简要的综述之后,《Ruby编程语言》详细介绍了以下内容:Ruby的句法和语法结构,数据结构和对象,表达式和操作符,语句和控制结构,方法、proc、lambda和闭包,反射和元编程,Ruby平台。本书还包含对...

    Ruby常见面试题.pdf

    1. 什么是Ruby?简要介绍Ruby的特点和主要用途。...10. 在Ruby中如何进行模块(Module)和类(Class)的定义?请说明在Ruby中模块和类的创建方法。 11. 什么是Ruby中的符号(Symbol)?请说明在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类实例变量、类实例方法和类变量、类方法的区别

    主要介绍了Ruby类实例变量、类实例方法和类变量、类方法的区别,本文探讨一下他们的定义和基本的使用场景,需要的朋友可以参考下

    易语言ruby脚本交互

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

    Ruby的教程.txt

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

    Ruby定义私有方法(private)的两种办法

    主要介绍了Ruby定义私有方法(private)的两种办法,本文直接给出代码实例,需要的朋友可以参考下

    详解Ruby中的单件方法和单件类

    单件方法 Ruby允许给单个对象增加方法,这种只针对单个对象生效的方法,称为单件方法 示例代码 str = “just a regular string” def str.title? ...另外,除了上面使用的定义方法,还可以通过Obje

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

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

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

    其定义方法有三种,分别是: # 法一 def MyClass.a_class_method; end # 法二 class MyClass def self.anther_class_method; end end # 法三* class MyClass class << self def yet_another_class_method; ...

    ruby语法基础教程

    §3.5 类变量与类方法 23 §3.4 存取控制 23 §3.6 元类 25 §3.7 Ruby的动态性 26 §3.8 变量 26 §3.8.1 局部变量 27 §3.8.2 实例变量 27 §3.8.3 类变量 27 §3.8.4 全局变量 28 §3.8.5 常量 28 §3.8 与定义...

    Ruby的概要介绍与分析

    它支持动态类型、动态方法定义和元编程,开发者可以在运行时动态地修改类和对象的行为。这种灵活性使得Ruby成为快速原型设计和迭代开发的理想选择。 此外,Ruby拥有强大的面向对象特性,一切皆为对象。它支持类和...

    精华ruby学习笔记和代码

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

    详解Ruby中的方法概念

    方法应该定义Ruby的之前调用他们,否则会引发一个异常未定义的方法调用。 语法: def method_name [( [arg [= default]]...[, * arg [, &expr ]])] expr.. end 所以,可以定义一个简单的方法如下: def method_...

    Ruby菜鸟入门指南.md

    4. Ruby中"一切皆表达式"的设计,控制语句、方法定义等都会返回值。 5. Ruby中"一切皆方法调用",没有直接访问属性的方式,只有方法调用。 6. 变量命名约定,如局部变量、常量、实例变量、类变量等。 7. 方法命名...

    Find‍:female_sign:查找,过滤和排序Ruby代码的定义和引用-Ruby开发

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

Global site tag (gtag.js) - Google Analytics