Project1
标题:
刚开始接触脚本,关于对象初始化的一些问题
[打印本页]
作者:
FormatES
时间:
2011-1-20 01:18
提示:
作者被禁止或删除 内容自动屏蔽
作者:
赤夜玄魔
时间:
2011-1-20 01:29
def TalkAboutYourself2
self.WhatIsYourName.to_s + self.HowOldAreYou.to_s
end
这样呢?
赤夜玄魔于2011-1-20 01:34补充以下内容:
如果是调用的话,需要传送两个,而你写的
def initialize(age,name)#这里应该只有一个age
@age = age
end
def initialize(age,name)#这里应该只有一个name
@name = name
end
复制代码
而且还有个问题,初始化应该是只能有一个的,不能多。如果想分开来接受的话,可以在初始化那里设置不接受任何一个数据,直接跳转的子类里。方法有很多。
作者:
FormatES
时间:
2011-1-20 01:37
提示:
作者被禁止或删除 内容自动屏蔽
作者:
赤夜玄魔
时间:
2011-1-20 01:43
回复
FormatES
的帖子
to_s 就是转成字符串
self 表示父类本身(我记得应该是叫父类吧。)
self 在这里等于是Monster 本身
作者:
FormatES
时间:
2011-1-20 01:47
提示:
作者被禁止或删除 内容自动屏蔽
作者:
fux2
时间:
2011-1-20 07:01
本帖最后由 fux2 于 2011-1-20 07:04 编辑
回复
FormatES
的帖子
def TalkAboutYourself2
p WhatIsYourName,HowOldAreYou
end
复制代码
第二个接受参数数目错误
def initialize(age,name)
@age = age
@name = name
end
复制代码
self代表调用方法的对象,Array类的例子:
a = [4,7,6]
def reload
self.sort!
end
a.reload
p a #=> a=[4,6,7]
复制代码
作者:
后知后觉
时间:
2011-1-20 11:26
initialize 是在生成实例对象执行 .new 的时候自动调用的.
你定义了2次.第一次叫定义.而第2次叫重定义.
实际上是以重定义为准.
所以在站上很多脚本的使用说明里大多数都有说.【把脚本放在MAIN前】
就是因为默认的一些方法被重定义了.
同一个方法被多次定义.是以靠下的为准【脚本从上往下的执行】
class Monster
def initialize(age,name)
@age = age
@name = name
end
def WhatIsYourName(flag = false)
if flag
return "Hi!我叫" + @name + "。"
end
print "Hi!我叫" + @name + "。"
end
def HowOldAreYou(flag = false)
if flag
return "我今年" + @age + "岁了。"
end
print "我今年" + @age + "岁了。"
end
def TalkAboutYourself1
print "Hi!我叫" + @name + ",今年" + @age + "岁了。"
end
def TalkAboutYourself2
p WhatIsYourName(true) + HowOldAreYou(true)
end
end
#找两个人来做实例(两位小妹妹,蜀黍给你们检查检查身体)
LittleMoon = Monster.new("19","小月月")
SisterFeng = Monster.new("18","凤姐")
#开始表达
LittleMoon.WhatIsYourName
SisterFeng.HowOldAreYou
LittleMoon.TalkAboutYourself1
SisterFeng.TalkAboutYourself2
复制代码
作者:
FormatES
时间:
2011-1-21 11:41
提示:
作者被禁止或删除 内容自动屏蔽
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1