幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1230|回复: 4

[RMVX] [求助]关于RMXP帮助里面的一个脚本类定义问题

[复制链接]

2

主题

6

帖子

68

积分

②入门

积分
68
发表于 2006-12-23 14:05:51 | 显示全部楼层 |阅读模式
就下面这段程序,有点看不懂的说,谁帮帮忙啊
class Person
  def name
    return @name
  end
  def name=(name)
    @name = name
  end
  def hello
    print "我是" + @name + ""
  end
end

alex = Person.new
alex.name = "艾力克斯"
alex.hello                  # => 我是艾力克斯

详细问题:
1.第二次 对name方法进行定义,不是会把第一次定义覆盖掉么?那为什么这里定义两次啊?我试了,把第一个定义删了,程序也没问题,输出结果一样,但为什么这里要在前面多定义一次呢?
2.print "我是" + @name + ""这里为什么要有+ ""呢?我试了把后面的+ ""删除了也没影响,但这里为什么要这样写呢?
[s:8] 中......
回复

使用道具 举报

30

主题

409

帖子

4699

积分

⑥精研

积分
4699
发表于 2006-12-23 14:25:00 | 显示全部楼层
不明白,观望中,希望有高手帮忙解答.
楼主的求知态度,实在令我钦佩.
这段代码,其实很早都学过,但也只是囫囵吞枣,死记硬背罢了。
也根本没去思考为啥要这样写,到底有什么用.
而楼主就不一样,在学的同时,还能不断发现问题,这一点是要向你学习的。



ps:
对于变量定义,我的理解是
def name
  return @name

先定义的一个名字叫name的方法.
返回值就是局部变量name
然后def name=(name)
  @name = name
end
就是用局部变量name表示这个方法.
def hello
  print "我是" + @name + ""
end
end
就是定义一个叫hello的方法,也就是显示 我是某某 的命令.

至于为什么要加+ 或许是一种习惯吧  把name放在中间 容易理解一些罢了
以上纯熟个人意见,如有错误,欢迎各位指出,谢谢. [s:4]
回复 支持 反对

使用道具 举报

2

主题

6

帖子

68

积分

②入门

积分
68
 楼主| 发表于 2006-12-23 15:57:13 | 显示全部楼层
在此多谢cupid了
这个是帮助里面的解释,不是很明白:
上面的示例是先准备 @name 实变量,使用 name、name= 方法把对象附加上 @name 实变量作为属性。像这样的方法称为附加属性。 [s:3]  [s:8]  [s:1]
回复 支持 反对

使用道具 举报

38

主题

3468

帖子

1

积分

超级版主

传说中的Bunny火神~!

Rank: 8Rank: 8

积分
1
发表于 2006-12-23 16:23:48 | 显示全部楼层
那个+""本来就没有作用。因为在string中+"XXX"就是说把XXX加进这段话里面,但是如果XXX没有东西,那就什么也不会加。
我突然发现,我是一个很幸运的好人。老婆真好~ 点我进入JQ(激情)教程范例收集!
回复 支持 反对

使用道具 举报

2

主题

6

帖子

68

积分

②入门

积分
68
 楼主| 发表于 2006-12-23 20:31:26 | 显示全部楼层
第二个问题就这样了,也就是说这里就是作者多写了点废话,是吧
第一个问题呢? [s:3]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2026-6-22 05:04 , Processed in 0.013775 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表