Ruby基础_类和模块

来源:互联网 发布:visio 2013 for mac 编辑:程序博客网 时间:2024/06/01 07:42

1.定义类

class Classname

类体

end

类名首字母大写

2.类体的内容


3.扩展一个类(为一个已有的类增加方法)

class String

def func

方法体

end

end


4.类的继承

class 类名< 父类名

类体

end


5.alias 和 undef

alias 别名 原名#方法设置别名,在重定义方法名是用到

 undef  方法名 #删除已有方法


6.单例类和单例方法

class << 类名   ~ end 这样形式定义的类称为单例类

单例类中的方法属于特定的对象

str1 = "ruby"

str2 = "Ruby"

class << str1

def hello

"Hello,#{self}"

end

end

定以后只有str1有hello方法


7.批量定义单例方法 extend关键字

让单例类包含模块,将模块中的多个方法扩展到一个特定对象中;

对象.extend(模块名)#扩展后的对象包含模块中的所有方法

8.extend和include
在类中include module 和extend module的区别;
include:将模块中的方法当作类的实例方法添加到类中;
extend: 将模块中的方法当作类方法添加进来;

9.include和extend的应用场景
include:包含模块,类中包含模块(作实例方法添加),或者模块中添加模块
extend:包含模块,类中包含模块(作类方法),或者将模块扩展到类中;




模块

1. 模块的功能:

提供独立的命名空间,不同模块中同名方法变量不冲突;

MIX-IN,将模块混合到类中


2. 创建模块

module 模块名

模块体

end

3.模块体的内容

方法,常量

模块中的方法徐娅被外部访问,要 module_function : 方法名



4.包含模块

include modulename

  同一个弄快包含多次后面的被忽略


5. 方法查找顺序

本类中查找---模块中查找---父类中查找;

模块中先从最后包含的模块中查找;

















1 0
原创粉丝点击