设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1985|回复: 4
打印 上一主题 下一主题

[已经解决] 脚本入门小问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
161
在线时间
38 小时
注册时间
2012-6-16
帖子
77
跳转到指定楼层
1
发表于 2014-8-4 19:56:39 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
RUBY 代码复制
  1. class Person
  2.   def name
  3.     return @name
  4.   end
  5.   def name=(name)
  6.     @name = name
  7.   end
  8.   def hello
  9.     print "我是" + @name
  10.   end
  11. end
  12.  
  13. alex = Person.new
  14. alex.name = "阿莱库斯"
  15. alex.hello

不知道以上代码里
RUBY 代码复制
  1. def name
  2.     return @name
  3.   end

是有什么用,去掉了貌似也输出正常?

点评

去掉后,运行 print alex.name 试试。  发表于 2014-8-4 20:10

评分

参与人数 1星屑 +35 收起 理由
RyanBern + 35 手动认可奖励

查看全部评分

Lv1.梦旅人

梦石
0
星屑
161
在线时间
38 小时
注册时间
2012-6-16
帖子
77
5
 楼主| 发表于 2014-8-4 20:24:52 | 只看该作者
冰水金刚 发表于 2014-8-4 20:15
initialize是Object类的私有化方法 可以F1标准库查看
它的大概意思是,当你用new方法来生成一个类的实例时 ...

明白了~谢谢~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
180
在线时间
810 小时
注册时间
2013-8-23
帖子
804

开拓者

4
发表于 2014-8-4 20:15:46 | 只看该作者
本帖最后由 冰水金刚 于 2014-8-4 20:19 编辑

initialize是Object类的私有化方法 可以F1标准库查看
它的大概意思是,当你用new方法来生成一个类的实例时,会自动调用该类中initialize中的内容进行初始化
如果该类中没定义initialize,就不进行初始化,不会报错
叫别的名就不能进行初始化(因为Object中无定义)
遗失的签名。。。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
161
在线时间
38 小时
注册时间
2012-6-16
帖子
77
3
 楼主| 发表于 2014-8-4 20:10:39 | 只看该作者
冰水金刚 发表于 2014-8-4 20:02
对于属性来说,是既能写入又能读取
def name
    return @name

再问一个小问题:
  1. class Person
  2.   def initialize(name)
  3.     @name = name
  4.   end
  5. end

  6. alex = Person.new("阿莱库斯")
复制代码
这里面的initialize是系统默认的在新建Person的对象时会执行的吗?如果不定义会不会出问题?如果叫别的名字,函数是否还会被执行?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
180
在线时间
810 小时
注册时间
2013-8-23
帖子
804

开拓者

2
发表于 2014-8-4 20:02:29 | 只看该作者
本帖最后由 冰水金刚 于 2014-8-4 20:04 编辑

对于属性来说,是既能写入又能读取
def name
    return @name
  end
定义的就是一个读取函数
def name=(name)
    @name = name
  end
这个定义了写入
这样alex.name = 可以赋值
alex.name 可以读取
完成了属性的定义
如果去掉
def name
    return @name
  end
就不能通过alex.name来进行读取

评分

参与人数 1星屑 +100 收起 理由
RyanBern + 100 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-19 00:07

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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