赞 | 3 |
VIP | 333 |
好人卡 | 91 |
积分 | 2 |
经验 | 55775 |
最后登录 | 2017-7-18 |
在线时间 | 2070 小时 |
Lv1.梦旅人 Mr.Gandum
- 梦石
- 0
- 星屑
- 226
- 在线时间
- 2070 小时
- 注册时间
- 2007-1-31
- 帖子
- 3039
|
本帖最后由 feizhaodan 于 2013-1-10 19:12 编辑
Game_Vehicle类的initialize方法接收一个参数type,因为没有给这个参数定默认值,所以你必须在.new的时候给正好一个参数。
.new表示创建一个该类的实例。看了一下Ruby手册,貌似是呼出allocate方法来创建一个空的实例,然后再使用initialize方法来初始化。new的参数会原搬不动的传递给initialize。allocate方法最好还是不要定义比较好。不知道会发生什么。
实例变量简单来说就是在一个实例里的变量。一般就是指你在类定义里面使用的@变量。不同的就是你可以用instance_variable_set给一个实例定义一个新的实例变量。- class A
- def initialize
- @var1 = 1
- end
- def print_something
- p @var1
- p @var2
- end
- a1 = A.new
- a2 = A.new
- a2.instance_variable_set(:@var2,2)
- a1.print_something
- a2.print_something
复制代码 这是一个例子。
控制台因该会出现这样。
然后关于:boat,其实这个是一个Symbol类的实例。使用":名称"的格式生成的Symbol,只要“名称”的部分相同,那么他就一定是同一个实例。一般用来进行判定,有的时候也可以用来代替判定用的字符串。 |
|