赞 | 0 |
VIP | 8 |
好人卡 | 27 |
积分 | 55 |
经验 | 41413 |
最后登录 | 2012-10-21 |
在线时间 | 833 小时 |
Lv4.逐梦者 弓箭手?剑兰
- 梦石
- 0
- 星屑
- 5504
- 在线时间
- 833 小时
- 注册时间
- 2010-11-17
- 帖子
- 1140
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 一箭烂YiJL 于 2011-4-25 17:19 编辑
课序号:8
作者:一箭烂YiJL
出版社:VX教程出版社
售价:完全免费
VX教程出版社的其它教程
上一课:
新手教程——简单测试法x2_(7)
序:
xxxxxxxxxxxxxxx(过往话的屏蔽= =第二次的教程合集请勿将此写入)
废话少说,这次是说的是super的作用和外界调用类中函数。
正式开始:
上几次说了super有传输参数的作用,其实这是不止的。
一个类中调用自己的函数就直接打名字,而调用外界函数(我比较喜欢叫公式)又怎么呢?
还有子父类的深层关系。
而这次教程高度符号化,不会有太多文字解释。
A.外界调用类中函数:
意思很简单,就是在不在当前类中调用类的函数。
- class A
- def b
- p 100
- end
- end
- @a = A.new # 建立A类为@a
- @a.b # 代指调用A类的b函数
复制代码 最终窗口输出:重点在@a.b它已经代指调用A类的b函数。
然后我们看看子父类的函数关系:
- class B
- def b
- p 200
- end
- end
- class A < B # 类中无物请勿奇怪
- end
- @a = A.new
- @a.b
复制代码 然后输出:现在我们就知道了,子类会继承父类的函数
若果子类和父类里都有同一函数,会怎么样呢?
- class B
- def b
- p "B类"
- end
- end
- class A < B # 类中无物请勿奇怪
- def b
- p "A类"
- end
- end
- @a = A.new
- @a.b
复制代码 最终输出:我们得知:输出最近(靠后定义)的函数会覆盖之前的同名函数,
那有什么方法两个都能做呢?
请看下一部分:super
B.super主要用途:
super的关键在于子父类同名函数之间,不多说,自己看:
- class B
- def b
- p "B类"
- end
- end
- class A < B
- def b
- super
- end
- end
- @a = A.new # 建立A类
- @a.b # 代指
复制代码 最终输出:这样就知道了:super会调用父类的同名函数。
那么这样呢?:- class B
- def b
- p "B类"
- end
- end
- class A < B
- def b
- super
- p "A类"
- end
- end
- @a = A.new
- @a.b
复制代码 最终输出:(这里只要明白原理就好了)
那么在搞一个更复杂的呢?:- class B
- def b
- p "B类"
- end
- end
- class A < B
- def b
- super # 这里经过discain的提点后加回来了
- p "A类"
- super
- end
- end
- class C < A
- def b
- super
- p "C类"
- end
- end
- @c = C.new
- @c.b
复制代码 最终依次输出:这只是逻辑思考的输出。
好了,不要说的太远了,super说了这里就好了。
总结,我们学习了:
1.super的作用
2.外界调用类中函数
有兴趣的童鞋可以看看C增值站。
看完教程请回复!!
下一课:
暂无
C.增值站:
为了更多回复和新手的前途,我在这里设立了C。
既然刚才说了子类会承继所有父类的函数,那么Window_Base会提供了不少功能?
的确的,很多时候我们都会见到窗口里有:比如draw_face、draw_actor_level、draw_actor_name
尤其可以在Window_Status里发现。(这是"状态"窗口)
那么我就委派你们做一个draw_VX
成功条件:在任何承继Window_Base的窗口能用"draw_VX"
来绘画出"VX教程出版社"的字样,并且是有参数"draw_VX(X坐标, Y坐标, 宽度)"
提示:
第二课学过的"self.contents.draw_text(x, y, 高度, 宽度, 显示的变数)"来绘画字样
第X课学过的参数。就是"def draw_VX(参数们)"
在Window_Base里任何一个建立新函数。
欢迎大家讨论增值站答案。
好了,这节课上完了,谢谢大家。
(要回复啊~!)
|
评分
-
查看全部评分
|