Ruby学习之类2
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。
案例:
?
結果:error!因為有錯誤捕捉到。
(2)重試語句
在捕捉到錯誤之后,可以通過retry語句重新執行begin塊中的內容。
案例:
?
如果有錯誤,會一直報錯下去
(3)拋出異常
Ruby中使用raise語句拋出異常,類似于Java中的throw。異常信息可以被全局變量$!獲取
?
結果:
error!test
(4)結束清理
Ruby中使用ensure語句來實現語句塊的最后清理。不論語句塊中是否出現異常,
ensure塊都將執行。
?
結果:
error!divided by 0
finished!
-----------
finished!
?
小結:
Ruby中的類使用跟java大同小異了
轉載于:https://www.cnblogs.com/jiqing9006/archive/2013/03/28/2985816.html
總結
- 上一篇: hdu 1022 Train Probl
- 下一篇: 一个发送短信验证码 然后倒计时实例