文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Ruby中的类

Ruby中的类

时间:2008-12-24  来源:jadehill

类定义:

class Dog

   ...

end

ruby中,类定义由class ... end包围,任何类调用new方法都可生成该类一个对象。如果没有对生成的对象赋予一个名字,即对于匿名对象,ruby垃圾收集器会认为这是一个可回收对象。

类的继承:

class Mammal

 ...

end

 

class Cat < Mammal

 ...

end

在子类中,只需要对与父类不同部分进行添加或重新定义。

方法的重新定义:

class Person

  def indentify

    print "i am a person!"

  end

end

 

class Student < Person

  def indentify

    super

    print "i am a student!"

  end

end

如果是增强父类的方法而不是完全替代父类同名方法,可以在子类方法中使用super来调用父类中的同名方法。

全局方法:

def fun

  ...

end

ruby中没有函数只有方法。全局方法是被ruby认为是Object类的方法,由于Object是所有类的父类,因此所有类中均有fun这个方法,但fun在类内的访问权限被限制为private,因此只有类内函数可以访问,外部用户无法访问。

私有函数的定义:

class Test

  def engine(b)

    b*2

  end

  private :engine

end

首先定义函数,然后用private将函数符号(":"+函数名)对外部隐藏。

单例方法:

class SingletonTest

  def size

    print "25\n"

  end

end

 

test1 = SingletonTest.new

test2 = SingletonTest.new

 

def test2.size

  print "10\n"

end

 

test1.size

test2.size

对象的行为是由类决定的,很多时候需要某个对象具有特殊的行为,大部分语言采用的方法是定义另外一个类并只实例化一次,非常麻烦。ruby赋予具体对象改变行为的能力。对于某个对象,可以修改原先类中定义的行为,也可以增加只属于对象自身的行为。

相关阅读 更多 +
排行榜 更多 +
别惹神枪手安卓版

别惹神枪手安卓版

冒险解谜 下载
坦克战争世界

坦克战争世界

模拟经营 下载
丛林反击战

丛林反击战

飞行射击 下载