RUBY 新手教程 跟我一起学ruby

2019-09-25 09:50:56刘景俊

得到自然界这种规律的启发,Ruby就引进了继承。它大大减少了程序员的工作量,我们只需要定义一个父类(或叫做超类)的属性,它的子类就会自动继承它父类的属性。当然当你遇到像上文提及的那个企鹅特例还要新增或重定义子类和父类之间的区别。继承的意思,就是保持被继承者的性质但却同时拥有自己独有的特性。
引进了类只是方便对象的操作,那么究竟怎么操作对象呢?那就要用方法了。
三、方法是什么?
方法是某个类中所有的对象专用的命令。
你只需在某个对象上调用某个方法就可以让这个对象施行这个方法所代表的方法。而这个被操作的对象称为“作用实例”或是“方法的参数”。
比如说你养了许多狗,(狗是一个类,被你养的狗是它的子类)有一个叫旺财(旺财是对象,也是实例),你每天训练他们坐下(这是在定义一个方法),之后每当你发号坐下这个命令时(这是在调用坐下这个方法)被你养的狗就会坐下。(你就通过方法完成了对对象的操作)。假如被你养的狗还分狼狗和哈巴狗二类,(狼狗和哈巴狗是被你养的狗的子类),它们会继承它父类中定义过的方法。当然一个类中可以定义许多方法(你可以教狗许多东西)。
又比如说把Ruby看作CD机,CD机所操作的一切东西——CD就是所有的对象,类是歌曲的风格(如R&M是一类,Rap是另一类);当然你也可以把歌手当类的分法(如周杰伦是一类,陈奕迅是另一类),而调用方法就是按播放按钮,停止按钮,暂停按钮等。
实践基础
在Ruby中创造一个对象并对其进行操作的步骤如下:
首先得定义类的属性——
一、类的定义
格式:
class 类名
类中定义的内容
end
注意:类名必须以大写字母开头。
如果是一个子类就这样写:
class 子类名< 父类名
类中定义的内容
end
或在定义后面直接写上:
class 子类名 < 父类名
end
这只是让父类继承父类,不是重定义。为什么这么说呢?
光有一个类还不行,接着再往里面塞方法,以便以后对对象的操作。
二、方法的定义
方法的定义写在“类中定义的内容”那里
格式:
def
方法中定义的内容
end
注意:方法必须以小写字母开头。
当然当你遇到像上文提及的那个企鹅特别的子类时,你还要重定义子类和父类之间的区别这叫称为重载,格式同上。方法的调用如反复定义,则以最后一次为准。
在子类方法中调用父类相同方法的情况下,要使用关键词 super。super将调用被当前方法覆盖的父类中的同名方法。
格式:
super(定义的内容, ... )
若省略括号和参数时,将会把当前方法的参数原封不动地传递给父类中的同名方法。若调用时不想使用参数的话,请使用括号显式地标出,像super()这样。