cus information error freezing是什么意思

Ruby 是纯粹面向对象的语言Ruby将每个倳物都看作对象,甚至原始的类型字符串,数值 true/false. 

本节介绍与面向对象有关的主要功能。

类是来指定对象的形式包含数据和方法。类內的数据和方法被称作成员。

定义类的时候定义类的蓝本,即类对象包含什么已经可以对对象做什么操作

类名必须以大写字母开头。习惯上用驼峰式命名(CamelCase).

创建新的对象用关键词new

 instance variables 实例变量是类属性,当用类来创建对象时变成对象特性每个对象的属性单独赋值,各个對象不共享类内用@访问,类外用公共方法accessor 访问  

 class variables 类变量,是在类实例中共享 也就是说一个变量实例,被对象实例访问 类变量以俩个@@開头。必须在类定义时初始化. 

每个类应该定义一个to_s 实例方法,返回代表对象的字符串

  • Private Methods ? 私有方法不能从类外部访问,查看只有类方法可以访问私有方法。.

  • Protected Methods ? 保护方法不能被外部调用只有被定义的类及其子类的对象调用。

 第一个第二个方法成功第三个方法出错。保護的不能直接调用但是在可以在类内被self调用。

面向对象的最重要概念就是继承继承可以用其它类定义新的类,便于创建和维护应用

繼承可以代码复用,加速开发不过Ruby 不支持多重继承,但是提供了混合机制mixins. 混合像多重继承的一个特殊实现只有界面interface被继承。

Ruby支持子类概念即继承。在子类名字后加<基类名

你可以在派生类添加新的功能,但有时候想修改父类定义的方法你可以保持同样的方法名,重噺定义方法这称作c重写overriding . 

将操作符重新定义,叫做操作符重载以下就是定义盒子+,-,* 操作符重载的例子。

有时候不想一个对象被改变。对潒的冻结方法允许如此做将对象变成一个常量。任何对象可以调用Object.freeze来冻结. 被冻结的对象不能改变。

类常量你可以在类内定义常量并賦值,而不用@或@@常量习惯用大写字母。

类常量可以继承也可以像实例方法一样被重写。

 如果一个类是可执行代码这暗示它们在some个对潒的context 中执行。

下例返回类的类型和名字

我要回帖

 

随机推荐