论坛首页 入门讨论版 Ruby

Ruby 面向对象

浏览 443 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2007-09-30 关键字: 一个简单的 ruby 类事例
class Person
  def initialize( name, age=18 )
    @name = name
    @age = age
    @motherland = "China"
  end #初始化方法结束
  def talk
    puts "my name is "+@name+", age is "+@age.to_s
    if @motherland == "China"
       "I am a Chinese."
    else
      puts "I am a foreigner."
    end
  end # talk方法结束
  attr_writer :motherland


end # Person类结束

p1=Person.new("kaichuan",20)
p1.talk
p2=Person.new("Ben")
p2.motherland="ABC"
p2.talk


引用

initialize是初始化方法,相当于Java的构造器。参数age有一个缺省值18,可以在任何方法内使用缺省参数,而不仅仅是initialize。如果有缺省参数,参数表必须以有缺省值的参数结尾。

attr_writer :motherland 相当于
def motherland=(value)
return @motherland =value
end

attr_ reader :motherland 相当于
def motherland
return @motherland

end

这就是我们熟悉的getter 和setter 方法的简写形式。

attr_accessor :motherland 相当于
attr_reader:motherland;
attr_writer :motherland

   
论坛首页 入门讨论版 Ruby

跳转论坛:
JavaEye推荐