Ruby 教程(一)

类与对象:

Ruby是一种真正的面向对象的程序设计语言, 面向对象是指以对象为中心的理论体系
** 封装 (Encapsulation)
** 继承 ()
** 多态 (Polymorphism)
对比Java & Ruby, 获取一个数字的绝对值。
Java : int num = Math.abs(-99)
PS: 将一个数值传递给Math类的一个静态函数abs处理, 因为在Java中数值是基本类型
而不是类
Ruby : c = -99.abs
PS: 在ruby中,任何事物都是对象, 操作及其结果都是对象

 

类的定义
class ClassName (类名首字母必写笮措)
  def method_name(variables)
    #some code
  end
end

 

继承
Ruby 继承的方法很简单, 使用<即可, 并且只支持单继承, 每一个类都只能有一个直接
父类,这样避免了多继承的复杂,但同时它又提供了mixin的机制用来实现多继承,
a)可以使用super关键字来调用父类对象的方法, 当super省略时将使用当前方法的参数来调用
b)如果传入的参数被修改再调用super, 那么将会使用修改后的值
class Base
  def meth(info)
    puts "This is Base #{info}"
  end
end

class Derived < Base
  def meth(info)
    puts  'This is Derived #{info}'
    info = "over"
    super
  end
end

 

 

类变量 : 被一个类的所有实例对象共享, 也可以被类方法访问到。 类变量名以'@@'
开始, 而且必须有初始值,她是私有的, 在类外无法直接访问。
类方法 : 属于一个类的方法, 而且在定义她的时候需要在方法前加上类名
class Person
  @@number = 0
  def initialize(name, gender, age)
    @name = name
    @gender = gender
    @age = age
    @@number += 1
  end
 
  def Person.getNumber (类方法)
    return @@number
  end
 
end

 

Ruby的动态性
a)可以重新定义同一个方法
class RedefTest
  def meth
    puts  'This is meth'
  end
 
end
obj = RedefTest.new
obj.meth
class RedefTest
  def meth
    puts  'This is new meth'
  end
end
obj.meth
Result outcome:
This is meth.
This is new meth.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值