类
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(模块名) #扩展后的对象包含模块中的所有方法
模块
1. 模块的功能:
提供独立的命名空间,不同模块中同名方法变量不冲突;
MIX-IN,将模块混合到类中
2. 创建模块
module 模块名
模块体
end
3.模块体的内容
方法,常量
模块中的方法徐娅被外部访问,要 module_function : 方法名
4.包含模块
include modulename
同一个弄快包含多次后面的被忽略
5. 方法查找顺序
本类中查找---模块中查找---父类中查找;
模块中先从最后包含的模块中查找;