Project1

标题: 怎样学习Ruby中的类? [打印本页]

作者: 灬心魔o    时间: 2011-7-16 21:23
提示: 作者被禁止或删除 内容自动屏蔽
作者: Wind2010    时间: 2011-7-16 21:35
本帖最后由 Wind2010 于 2011-7-16 21:36 编辑
  1. module A # A级 Object不知道- -
  2.   class B
  3.     def C
  4.       print "D"
  5.     end
  6.   end
  7. end
  8. xd = A::B.new.C
复制代码

作者: 纳尔德    时间: 2011-7-16 21:40
其实我也是刚学习的.
我的理解吧就:
class Son
...
end
然后要开启这个类的话.就是在事件第三页最右下角的脚本窗口输入- -..
@kid = Son.new  #其实kid是随便你怎么改的.Son是上面的类的定义.

而继承的话就
class Son < Parents
...
end
也就是  Parents(父母)的能力  作为Son(儿子)  能继承.
比如 找金钱窗口来说  
class Window_Gold < Window_Base
def initialize
    super(0, 0, 160, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
...
end
它是继承 Window_Base 的
所以在脚本  Window_Base里
初始化方法
def initialize(x, y, width, height)
super()
作为金钱窗口 Window_Gold 它可以继承
也就是上面的 super(0, 0, 160, 64)

作者: 熊猫    时间: 2011-7-17 00:44
本帖最后由 熊猫 于 2011-7-17 00:46 编辑
纳尔德 发表于 2011-7-16 21:40
其实我也是刚学习的.
我的理解吧就:
class Son


不是开启类,是创建类的实例。
@kid = Son.new
@kid是这个实例名称,相当于身份证,通过这个来确定类实例的身份,以及操作这个类实例。


类是事先写好,决定有什么方法
class xxx
   def initialize
      xxx
   end
   def xxxx
      xxxxx
   end
end
然后创建类的实例(可以理解为你画好了图纸,要将图纸变成实物)
@a=xxx.new
@a就代表这个实物,通过他来调用相关方法。
@a.xxx

这里重点是,没有实例化的类是不能使用的,就好比建房子图纸只是图纸,是不可以住的。只有实例化,也就是建好后才可以实现房子的相关功能。
作者: 灬心魔o    时间: 2011-7-17 12:10
提示: 作者被禁止或删除 内容自动屏蔽
作者: Wind2010    时间: 2011-7-17 12:14
本帖最后由 Wind2010 于 2011-7-17 12:15 编辑
灬心魔o 发表于 2011-7-17 12:10
创建类,用类创建对象和类的继承的概念我了解。
学习到基础的对象篇时,教材建议先看看String 类,有必要 ...
  1. print "self" + "other"
  2. print "self" * 3
  3. print "self" <=> "self"
  4. print "sef" == "self"
复制代码

作者: 灬心魔o    时间: 2011-7-17 12:24
提示: 作者被禁止或删除 内容自动屏蔽
作者: 熊猫    时间: 2011-7-17 12:44
灬心魔o 发表于 2011-7-17 12:24
Ruby的内部类及每个类的方法都是系统定义好的。当我们用内部类创建对象时,怎么使用这些类已经定义好的行 ...

self + other
将字符串连接起来之后,返回得到的新字符串。

self * times
将字符串的内容重复 times 次之后,返回新字符串。

这样的,带有self的,你就像Wind2010那样用。
其他的,像"insert(nth, other)"
这样的是print "ttttt".insert(3,"@")    #这里就示范了调用创建好了的内部类的行为
上面是调用了string类的insert的方法。
其实那种带有self的特殊方法,知道会用即可,究其本质它与普通常规的方法倒有些不一样。
我认为下面这种才是常规的方法调用即object.xxx(parameters)

推荐LZ看看RGSS类,方法都很典型,系统类比较容易使人感到迷惑。
作者: 灬心魔o    时间: 2011-7-17 16:11
提示: 作者被禁止或删除 内容自动屏蔽




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