• ruby学习总结04


    1.类和实例的关系

      使用【实例.class】查看某个对象属于哪个类

      使用【实例.instance_of(类名)】判断该实例是否属于某个类

      使用【实例.instance_methods】查看类的所有实例方法

     2.BasicObject类是所有类的父类,它只定义了ruby对象的最基本的方法,甚至连一般对象需要的功能都没有,顾一般继承Object类,可以通过【is-a】或【is-a?】判断继承关系

    3.类可以通过【class】关键字进行创建,默认具有无参的构造方法,通过是可以通过定义【initialize方法】定义有参数的构造方法,在方法中可以通过【self】关键字来调用接受者

    4.属性的getter和setter方法可以通过两种方法实现

      方法一:定义供外部访问的方法  def 属性   @属性  end   和 def 属性名=(属性值)  @属性=属性值  end

      方法二:通过声明访问属性的方法  attr_reader:属性名    attr_writer:属性名   attr_accessor:属性名

    5.类方法的定义

      1.方法一:在单例类中定义的方法都是单例方法 ,可以使用【class << 类名】的形式定义单例类,在单例类中添加方法即可

      2.方法二:在普通类定义中,添加类方法  【class << self】

        class 类名

          class << self

            def 方法名(参数)

              执行操作

            end

          end

        end

      3.方法三:使用 【def 类名.方法名(参数)】的形式定义

      4.方法四:在类的定义中使用【def self.方法名】进行定义

    6.类常量可以直接在类的定义中进行定义,使用【类名::常量名】进行调用

     类变量不能使用attr_accessor,需要直接定义访问方法

    7.方法的访问级别:public(默认),private,protected

      可以通过【private : 方法名】来单独设置某个方法的访问级别

      也可以通过【private】等来设置,之后的所有方法的访问级别

    8.类的扩展

      1.在原有类的基础上添加新的方法

        class 原类名

          def 新添加的方法名

            执行的处理

          end

        end

      2.继承父类(默认继承Object类)

         1.使用【class 类名 < 父类名】的方式定义子类,在子类定义中可以通过【alias 别名 原名】将原方法名进行别名设置,通过【undef 方法名】删除已有的方法

        2.通过【常量名=Class.new(父类名)】定义一个继承了父类的子类,并赋值给常量

      3.在方法类定义中,通过【extend 模块名】扩展类的类方法,通过【include 模块名】扩展类的实例方法

    9.模块

      可以通过【module 模块名】进行调用,不能实例化,也不能被继承

      可以通过【模块名.方法名】【模块名::常量名】直接调用,或者先通过【include 模块名】引入模块,然后使用【方法名】调用模块方法

      方法调用时的查找顺序:类、模块(多个模块时,最后一个模块优先;相同模块包含多次时,第二次以后的会被忽略)、父类中依次查找,执行查找到的第一个方法

    10.范围表达式:使用【Range.new(起始范围,结束范围)】或者【起始范围..结束范围】

        x..y   表示从x到y

        x...y  表示从x到y的前一个元素

        使用【变量.succ】方法,返回所在范围的下一个元素    如1.succ    #2     'a'.succ    #'b'

    11.异常处理

      begin

        可能出现的异常的代码

      rescue =>异常对象(如Errno::ENOENT等)

        发生异常后的处理

        retry    #重新执行begin以下的代码

      ensure

        不管是否发生异常都要执行的代码

      end

      异常发生后自动赋值的变量:$!   最后发生的异常    $@    最后发生异常的位置

      可以通过raise 抛出异常

    12.块的封装

      1.方法一:

          定义:变量名=Proc.new do |块变量|

                  希望执行的操作

                 end

          调用:变量名.call(块变量的值)

      2.方法二:方法定义时,在尾部的参数使用【&参数名】的形式,ruby会自动把该参数转换为Proc对象

        

  • 相关阅读:
    Python获取 东方财富 7x24小时全球快讯
    Elasticsearch 环境配置
    可执行jar包与依赖jar包
    IDEA注释模板
    CKEditor
    解决让浏览器兼容ES6特性
    asp.net一个非常简单的分页
    Asp.Net真分页技术
    jsp选项卡导航实现——模板
    nodejs类比Java中:JVM
  • 原文地址:https://www.cnblogs.com/lifeone/p/4870649.html
Copyright © 2020-2023  润新知