论坛首页 编程语言技术论坛

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

浏览 1847 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-12-15   最后修改:2008-12-15

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

 

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

 

 

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!

 

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

论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics