浏览 443 次
|
锁定老贴子 主题:Ruby 面向对象
精华帖 (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 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |


