zoukankan      html  css  js  c++  java
  • 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。
    案例:

    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大同小异了

  • 相关阅读:
    c
    罗扎诺夫高效记忆音乐【推荐试试】
    通过信息系统项目管理师最高可申领补贴2000元
    人事考试网【您有新信息】浙江人事考试网_浙江省公务员考试网_2017浙江公务员考试_中公浙江
    几种需求管理工具(转)_伊处_新浪博客
    PLM_百度百科
    统御软件 (oKit)| 项目管理软件,项目管理咨询,项目需求管理工具,集成研发管理平台 ——管理咨询与实施工具 一站式项目管理解决方案
    Oracle PLM
    Oracle PLM
    Oracle PLM
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/2985816.html
Copyright © 2011-2022 走看看