ruby 基础教程1-8-1
1.":class, instance_of?, :is_a?"都是Object类的方法,每个对象都可以调用
2.":class"方法用户获取对象归属类的名称
3.":instance_of?"方法用于判断对象是否为某个类的实例
4.":is_a?"方法用于判断,对象在继承层次上是否归属于某一个类
5.BasicObject是Object类的父类,Object类是所有不直接继承自BasicObject类的父类。
6.所有类默认继承自Object类,要直接继承BasicObject类,需要显示写明
7.调用一个类的new方法,其initialize方法就会被调用。
8.类名首字母必须大写
9.存取器 attr_reader,attr_write,attr_accessor
10.self表示对象本身
11.类方法定义语法
a.class << 类名 ~ end
b.class <<self ~ end
c. def 类名.方法名 ~end
12.类变量"@@name",类方法定义 def classname.funcname ~ end
13.访问控制 public,private,protected
public :name1,:name2,:name3
或者 public
def f1 ~ end
def f2 ~ end
def f3 ~ end
默认情况下方法都被定义为public,但是initialeze方法会默认定义为private
14.类外部可读,内部才可写的变量定义方法
attr_accessor :x,:y
protected :x=,:y=
15.可以在已有类上进行扩展
class 已有类名
def newMethod
end
end
16.在子类调用同名父类 super(paramlist)
17.instance_methods 打印类的实例方法
18.alias 别名 原名
alias :别名 :原名 定义别名
19 undef可以删除父类的方法
20 定义实例方法
a=A.new
def a.func
end
a.func
class TestClassMethod
@@cnt=0
def TestClassMethod.count
@@cnt+=1
end
end
puts TestClassMethod.count
puts TestClassMethod.count
class A
def func1
puts "A#func1 is Called"
end
end
class B < A
@@count=0
def func2
puts "B#func2 is Called"
end
end
class << B
def incCnt
puts "hello"
end
end
b = B.new
puts b.instance_of?(A) =>false #直属查找
puts b.is_a?(B) =>true
puts b.is_a?(A) =>true #继承层次上查找
str1="luocaimin"
str2="luocaimin"
def str2.hello
puts "Hello #{self}"
end
p str2.hello
p str1.hello
class C1
def hello
puts "hello"
end
end
class C2<C1
alias old_hello hello #把父类的同名方法定义为别名
def hello
puts "#{old_hello},again" #使用别名
end
end
c = C2.new
c.old_hello
c.hello
class String
def count_word
self.split(/\s+/)
end
end
str = "Today is wonderful day"
arr = str.count_word
puts arr.size
class RingArray < Array
def [](i)
index=i%size
super(index)
end
end
ra = RingArray[1,2,3,4,5,6,7,8,9]
p ra[11]
p ra[21]
p Object.instance_methods
p BasicObject.instance_method
ruby 基础教程1-8-1的更多相关文章
- 1月10日 ruby基础教程,查漏补缺; 2月22日 Exception补充
https://ruby-doc.org/core-2.5.0/Exception.html 1月20日练习完1,2章. 第一章 初探 ‘’单引号不执行转义符. \t 制表符.\n 换行符. p me ...
- Ruby基础教程
一.Ruby基础知识 1.关于Ruby Ruby是脚本语言 Ruby是面向对象语言 Ruby是跨平台语言 Ruby是开放源码软件 2.Ruby入门书籍推荐 <Ruby.Programming向R ...
- Ruby 基础教程 第二部分 Ruby 的基础 第4章
第二部分 Ruby 的基础 第4章~第6章 这一部分是 Ruby 编程需要遵守的规则. 第四章 对象,变量与常量 对象 & 类 对象的常见种类: 数值对象 字符串对象 数组.散列对象 正则表达 ...
- Ruby 基础教程 第一部分总结
第一部分:Ruby 初体验 第一章: Ruby 初探 前言 开头的这一章节讲了一些十分基础的内容,重要的几个话题有: ruby 命令的执行方法 对象.方法的概念 常见的打印方法 ruby 命令的执行方 ...
- Ruby 基础教程1-5
1.条件语句 if unless case unless和if相反,条件不成立则执行 2.条件 除了 false和nil 其他都是true 3.unless 语法 ...
- Ruby 基础教程1-4
1.对象 数值对象 字符串对象 数组对象,散列对象 正则表达式对象 时间对象 文件对象 符号对象 2.类 Numeric String Array Hash Regexp File Symbol 3. ...
- Ruby 基础教程 1-1
1.指定编码方式 第一种 在代码文件首行通过 #encoding:GBK的方式 第二种 ruby -E UTF-8 文件名称 第三种 irb -E UTF-8 2 ...
- Ruby基础教程 1-10
类结构 1.数值类结构 Fixnum到Bignum会自动转换 2.常用数值表示 3. ans=10.divmod(3) ans[0]是商 ans[1]是余数 4.实例方法roun ...
- Ruby 基础教程1-9
异常 1.异常结构 [ begin] ... rescue [retry] ... [ensure] . ...
随机推荐
- UVa 10791 - Minimum Sum LCM(唯一分解定理)
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- 根据用户id生成一个唯一邀请码
需求描述:根据用户id生成与之对应的唯一邀请码,范围为‘0-9A-Z’. 这个需求的重点在于加粗的部分,也就是要能够根据邀请码反推出用户ID,这样邀请码就不用入库了,在用户量很大的情况下,性能可以得到 ...
- WebApiClient.AOT.dll 调用api地址 -> 调用方法
优点:简化api调用过程,WebApiClient.AOT.dll中的IHttpApi接口 缺点:只适用于内部服务之间的调用(没有验证过程) 1.继承IHttpAPi接口 public interfa ...
- java ssm 后台框架平台 项目源码 websocket IM quartz springmvc
A代码编辑器,在线模版编辑,仿开发工具编辑器,pdf在线预览,文件转换编码B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器freemaker模版技术 ,0个 ...
- 『C++』Temp_2018_12_13_Type
#include <iostream> #include <string> using namespace std; class Object{ public: virtual ...
- mysqld_safe之三言两语
today,one buddy in IMG wechat group 2 asked "why i've installed the MySQL 5.7 on linux serv ...
- JsonCpp在vs中使用
Jsoncpp是c++生成和解析Json数据的跨平台开源库.下面简介如何在vs中使用. 1.官网下载.https://sourceforge.net/projects/jsoncpp/解压文件得到js ...
- Thinkphp5 使用composer中seeder播种机
前因: 前几天,客户要求做一个会员问答的系统,我就按流程做了,到了需要调用数据库数据时,觉得一个个添加又有点笨~ 解决过程: 后来查了查手册,看看国外blog案例,我搞出来了个不错的方法~~~ 我的使 ...
- vue 新属性学习
1, $listeners 父级元素 <base-input v-on:focus.native="onFocus"></base-input> 子级元素 ...
- Android中的AutoCompleteTextView(随笔提示文本)组件的简单使用
Android中的随笔提示文本组件AutoCompleteTextView的使用,此组件用于输入文本,然后就会在所配置的适配器中的数据进行查找显示在组件下面. 这里值得注意的是AutoComplete ...