`
sunnyshuhai
  • 浏览: 40518 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

<二> Ruby的类的类实例变量、类实例方法和类变量、类方法的区别

阅读更多

    二.  类方法和类的类实例方法

 

     在上一篇文章中,我们讲了类变量和类的类实例变量之间的区别和各自的使用场景。在本文中将介绍一下类方法和类的类实例方法,从表面上来看可能认为二者之间的关系类似于变量间的区别,但是字面上的理解往往具有很大的欺骗性。实际上,二者并没有任何区别,它们本质上是同一个东西的两种不同的定义。我们还是从代码上来看看...

 

 

class A   
 
   #class's class instance method
   class<<A
     def method1
       puts "Class's Class instance method"
     end
   end
   
   #class method
   def A.method2
       puts "Class mthod!"
   end  
end  
  
  
class B<A     
end  


A.method1
A.method2

B.method1
B.method2

 

   程序运行的结果如下:

 

 

Class's Class instance method
Class mthod!
Class's Class instance method
Class mthod!

 

  从结果中我们可以看出,二者之间并没有任何区别。都可以被子类访问。而没有像类变量和类的类实例变量那样的区别。但是,我们应该选者那种定义方式来定义我们的类方法呢?毫无疑问,应该选者清晰易懂的方式------类方法,尽量不要使用类的类实例方法那样的方式。

分享到:
评论

相关推荐

    类变量、全局变量、实例变量, 多态、为什么ruby、ruby编码规范

    类变量、全局变量、实例变量, 多态、为什么ruby、ruby编码规范

    Ruby类实例变量、类实例方法和类变量、类方法的区别

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

    Ruby中类变量和实例变量的比较

    主要介绍了Ruby中类变量和实例变量的比较,本文讲解了4点类变量和实例变量的不同之处,并给出了代码实例,需要的朋友可以参考下

    Ruby中的变量学习总结

    Ruby中的变量有几种形式,分别是局部变量、实例变量、类变量、全局变量,对于初学者来说,常常容易搞混,尤其像本人这种做java的,理解起来还是头痛,经过仔细辨别学习,将这几种变量的差异及使用场景总结如下: ...

    ruby oo基础知识实例变量实验室

    区分实例变量和局部变量。 描述实例变量如何赋予对象属性和属性。 概述 当我们通过自己的类构建对象时,我们知道可以通过实例方法向对象添加行为。 但是,我们如何为对象提供数据呢? 例如,我们将如何教狗的名字...

    variables:类和实例变量的“变量”对象

    变量 类和实例变量的Variable对象Ruby 已经有了Method对象,为什么还没有Variable对象呢?为什么? 一些与类和实例变量交互的方法已经存在: Module#class_variable_defined? Module#class_variable_get Module#...

    类和实例实验室Ruby训练营准备000

    类和实例Lab Ruby 目标 使用class关键字定义新的Ruby类。 实例化一个class实例。 概述 本实验全部关于定义类和实例化实例。 指示 打开这个实验室与learn open ,并运行测试learn 。 1.在lib/dog.rb定义Dog 打开lib...

    ruby语法基础教程

    §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 §3.8.2 实例变量 27 §...

    Ruby菜鸟入门指南.md

    6. 变量命名约定,如局部变量、常量、实例变量、类变量等。 7. 方法命名约定,如?结尾表示返回布尔值,!结尾表示会修改对象。 8. 块(Block)的概念及使用方式,用于扩展方法功能。 9. 迭代器的使用方式,如each, ...

    部分本地人阅读v-000

    当地人偏爱目标使用locals关键字了解为什么在局部变量中使用实例变量不是最优的渲染集合时使用局部使用来自本地控制器的其他控制器中的局部控制器介绍局部帮助我们将代码分解为可重用的块。 它们还经常具有隐式依赖...

    非常好的Ruby中文版项目资源,分享出来.zip

    这是 Ruby User’s Guide的简体中文版本:Ruby用户指南。 本指南基于Mark Slagell的英文译本翻译而来,指南最初的版本由Ruby...实例变量 局部变量 类常量 异常处理:rescue 异常处理:ensure 访问器 对象初始化

    partial-locals-reading-onl01-seng-ft-050420

    当地人偏爱目标使用locals关键字了解为什么在局部变量中使用实例变量不是最优的渲染集合时使用局部使用来自本地控制器的其他控制器中的局部控制器介绍局部帮助我们将代码分解为可重用的块。 它们还经常具有隐式依赖...

    partial-locals-reading-onl01-seng-pt-032320

    当地人偏爱目标使用locals关键字了解为什么在局部变量中使用实例变量不是最优的渲染集合时使用局部使用来自本地控制器的其他控制器中的局部控制器介绍局部帮助我们将代码分解为可重用的块。 它们还经常具有隐式依赖...

    ruby 学习笔记(2) 类的基本使用

    ruby语言跟c#的一些重要差别在于: 1.ruby是动态语言,c#是静态语言–即对象在new出来以后,ruby还可以动态给对象实例添加一些属性或方法(javascript也是如此) 2.ruby中刻意弱化了变量类型这个概念,默认情况下变量/...

    实例讲解Ruby中的五种变量

    Ruby 全局变量 全局变量以 $ 开头。未初始化的全局变量的值为 nil,在使用 -w 选项后,会产生警告。 给全局变量赋值会改变全局状态,所以不建议使用全局变量。 下面的实例显示了全局变量的用法。 #!/usr/bin/ruby ...

    深入分析Ruby 变量

    @开头:实例变量(Instance variable)。 @@开头:类变量(Class variable)类变量被共享在整个继承链中 大写字母开头:常数(Constant)。 Ruby 全局变量 全局变量以 $ 开头。未初始化的全局变量的值为 nil,在...

    Ruby基础知识之类

    创建类: class后跟...在c#中的域,在ruby中称为实例变量,定义时前边加@前缀,表示是一个实例变量。 代码如下: class Customer  def initialize(name,age)  @name,@age=name,age  end end   c1=Customer.

Global site tag (gtag.js) - Google Analytics