• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Ruby学习之类2

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1.属性的读写控制

class Man
def initialize(name,sex)
@name = name
@age = 16
@sex = sex
end
# 只读
def get_name
return @name
end
# 只写
def set_age(age)
@age = age
end
# 读写
def get_sex
return @sex
end
def set_sex(sex)
@sex = sex
end
end
t = Man.new("Jim","male");
puts t.get_name
puts t.get_sex
t.set_sex("man")
puts t.get_sex
t.set_age(22)

 

通过方法来实现属性的控制

2.还有一种简略的写法

class Man
def initialize(name,sex)
@name = name
@age = 16
@sex = sex
end
# 只读
def name
@name
end
# 只写
def age=(age)#这里等号不能有空格
@age = age
end
# 读写
def sex
@sex
end
def sex=(sex)
@sex = sex
end
end
t = Man.new("Jim","male")
puts t.name
puts t.sex
t.sex = "man"
puts t.sex
t.age = 22
puts t.age

 

结果:
Jim
male
man
因为age是只写的所以不能读取

3.垃圾收集
Ruby实现了自动的内存管理,实现了垃圾收集。
垃圾收集器使用,有三点需要说明。
(1)收集无用的对象内存空间,避免内存泄漏和程序因内存不断膨胀而崩溃。
(2)判断一个对象的内存空间是否能被清空的标准是,该对象不再被程序中任何一个地方所引用。
(3)垃圾收集器线程定时轮询,在系统的内存过低时会启动释放内存。
GC类中的start方法来实现垃圾收集功能。

4.异常处理
(1)基本结构 Ruby使用begin...rescue...end结构来处理异常。类似于try...catch...finally。
案例:

s = 1
begin
s = 1/0
puts s
rescue
puts "error!"
end

 

结果:error!因为有错误捕捉到。

(2)重试语句
在捕捉到错误之后,可以通过retry语句重新执行begin块中的内容。
案例:

s = 1
begin
s = 1/0
puts s
rescue
puts "error!"
retry
end

 

如果有错误,会一直报错下去

(3)抛出异常
Ruby中使用raise语句抛出异常,类似于Java中的throw。异常信息可以被全局变量$!获取

begin
raise "test"
rescue
puts "error!"+$!
# retry
end

 

结果:
error!test

(4)结束清理
Ruby中使用ensure语句来实现语句块的最后清理。不论语句块中是否出现异常,
ensure块都将执行。

s = 1
begin
s = 1/0
rescue
puts "error!"+$!
# retry
ensure 
puts "finished!"
end
puts "------------"
s = 1
begin
s = 1/2
rescue
puts "error!"+$!
# retry
ensure 
puts "finished!"
end

 

结果:
error!divided by 0
finished!
-----------
finished!

 

小结:

Ruby中的类使用跟java大同小异了


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
源码方式在ubuntu系统上安装ruby1.9.2发布时间:2022-07-13
下一篇:
Ruby标识名和变量作用域发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap