ruby 类、对象、变量
来源:互联网 发布:盘古数据最新消息 编辑:程序博客网 时间:2024/05/01 18:05
7、类Class
(1)initialize 方法 ,initialize是一个特殊方法,默认为私有,在调用new创建一个 新对象时,Ruby首先分配一些内存来保存未初始化的对象,然后调用对象的 initialize方法,
(2)inspect方法 默认将对象的ID和实例变量格式化
(3)Ruby的类永远都不是封闭的,意味着可以向一个已有的类中添加方法,包括内 建类
(4)Ruby的类允许继承,如class Child < Parent
(5)继承与Mixins Ruby支持单继承,但可以从任何数量的mixin中引入功能,这 提供了可控的、类似于多继承的能力。
(6)方便快捷的定义属性的访问方法,如:
class Song
attr_reader :name, :artist, :duration
end
类似的方法有:attr_writer 写属性
(7)虚拟属性 使用属性创建方法创建虚拟实例变量,对外部就像其他属性一样,但 内部却没有对应的实例变量,如:
class Song
def duration_in_minutes
@duration/60.0
end
def duration_in_minutes=(value)
@duration=(value*60).to_i
end
(8)类变量 类似于C++中的类静态变量,由两个@开头,如:@@count
(9)类方法 类似于C++中的类静态函数,定义类方法的方式还有
class Demo
def Demo.meth1
…
end
def self.meth2
…
end
class << self
def meth3
…
end
end
end
8、Singleton模式
class MyLogger
private_class_method :new
@@logger = nil
def MyLogger.create
@@logger = new unless @@logger
@@logger
end
end
注释:private_class_method 将类方法声明为私有;
9、变量不是对象,而是对象的引用:
person1 = “Tim”;person2=person1
person1[0]=”J”
person2
将person1赋值给person2不会创建任何新对象;它只是将person1的对象引用拷贝给 person2,因此person1和person2都指向同一个对象。赋值别名对象,潜在地给你引用 同一对象的多个变量,可以通过String的dup方法来避免。
person2 = person1.dup
10、可以通过冻结一个对象来阻止他人对其进行修改, 如 person1.freeze
- ruby 类、对象、变量
- Ruby学习之路-类,对象,变量
- Ruby对象、变量和常量
- ruby 类变量 实例变量
- ruby类的变量
- ruby类与对象
- Ruby类和对象
- Ruby类和对象
- Ruby类和对象
- RUBY-类、对象练习
- Ruby-类和对象
- ruby 类和对象
- ruby入门_类变量
- ruby中的实例变量和类变量
- Ruby 实例变量和类变量
- ruby中类变量与实例变量
- ruby中类变量与实例变量
- ruby中的实例变量和类变量
- Treap
- 福建新崛起的佛珠世家<聚美>品牌
- 最新Linux安装版本jira6.3.6安装破解以及数据导入的详细步骤
- Beautiful Palindrome Number 美丽的回文数 HD 5062
- Android 开发最佳实践
- ruby 类、对象、变量
- 嵌入式环境搭建之开发板软件环境
- IOS学习 关联(objc_setAssociatedObject、objc_getAssociatedObject、objc_removeAssociatedObject)
- 关于typedef的用法总结
- C#中串口组件的使用方法总结及上位机制作方法
- 总结一些获取系统时间的方法
- qt的stylesheet中如何设置属性使背景图自动调整来适应控件的大小
- 在从1到n的正数中1出现的次数
- Android Path 解析