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补充以下内容:
如果是调用的话,需要传送两个,而你写的
  1. def initialize(age,name)#这里应该只有一个age
  2.   @age = age
  3. end
  4. def initialize(age,name)#这里应该只有一个name
  5.   @name = name
  6. 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 的帖子
  1. def TalkAboutYourself2
  2.     p WhatIsYourName,HowOldAreYou
  3. end
复制代码
第二个接受参数数目错误
  1. def initialize(age,name)
  2.   @age = age
  3.   @name = name
  4. end
复制代码
self代表调用方法的对象,Array类的例子:
  1. a = [4,7,6]
  2. def reload
  3.   self.sort!
  4. end
  5. a.reload
  6. p a #=> a=[4,6,7]
复制代码

作者: 后知后觉    时间: 2011-1-20 11:26
initialize 是在生成实例对象执行 .new 的时候自动调用的.
你定义了2次.第一次叫定义.而第2次叫重定义.
实际上是以重定义为准.
所以在站上很多脚本的使用说明里大多数都有说.【把脚本放在MAIN前】
就是因为默认的一些方法被重定义了.
同一个方法被多次定义.是以靠下的为准【脚本从上往下的执行】
  1. class Monster
  2.   def initialize(age,name)
  3.     @age = age
  4.     @name = name
  5.   end
  6.   def WhatIsYourName(flag = false)
  7.     if flag
  8.       return "Hi!我叫" + @name + "。"
  9.     end
  10.     print "Hi!我叫" + @name + "。"
  11.   end
  12.   def HowOldAreYou(flag = false)
  13.     if flag
  14.       return "我今年" + @age + "岁了。"
  15.     end
  16.     print "我今年" + @age + "岁了。"
  17.   end
  18.   def TalkAboutYourself1
  19.     print "Hi!我叫" + @name + ",今年" + @age + "岁了。"
  20.   end
  21.   def TalkAboutYourself2
  22.     p WhatIsYourName(true) + HowOldAreYou(true)
  23.   end
  24. end

  25. #找两个人来做实例(两位小妹妹,蜀黍给你们检查检查身体)
  26. LittleMoon = Monster.new("19","小月月")
  27. SisterFeng = Monster.new("18","凤姐")

  28. #开始表达
  29. LittleMoon.WhatIsYourName
  30. SisterFeng.HowOldAreYou
  31. LittleMoon.TalkAboutYourself1
  32. SisterFeng.TalkAboutYourself2
复制代码

作者: FormatES    时间: 2011-1-21 11:41
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1