Ruby中的类

作者: Hollow_Knight | 来源:发表于2018-09-06 22:26 被阅读3次

初识ruby中的类

只需要简单的两行

class Point
end

如果我们此时实例化一个类那么他会有一些自省(introspection)的方法

p = Point.new

p.methodes(false) # 可以看到他自己定义的方法
Point.ancestors # 可以看到他的祖先
p.methods #列出所有的方法

class Point
    def initialize(x, y)
        # @x instance variable
        # @@x class variable
        # $x global variable
        # x local variable
        @x, @y = x, y
    end
end

我们丰富了一下这个类

# 这是我们实例化一个类的话
p = Point.new
# 接着我们想要拿其中的的变量的话
p.x 
# 会报错
undefined method 'x' 

在ruby中如果要访问或者修改一个变量那么一定要定义getter,setter方法。

attr_accessor :x
attr_reader :y

方法中的变量

class Point
    def initialize(x, y)
        # @x instance variable
        # @@x class variable
        # $x global variable
        # x local variable
        @x, @y = x, y
    end
    def first_quadrant?
        x > 0 && y >0
    end
end

看到这段代码感觉是不是有点问题呢 我们在first_qudrant?这个方法中没有用到@x直接使用了x
因为这个方法是一个实例方法,那么里面的变量就会默认加上selfself指的就是实例变量本身,所以就是@x

类中的常量

如果ruby中定义了一个常量如下

class Point
    ORIGIN = 20
end

我们要拿到这个值的话那么
Point::ORIGIN就可以拿到

相关文章

  • Ruby中的类

    初识ruby中的类 只需要简单的两行 如果我们此时实例化一个类那么他会有一些自省(introspection)的方...

  • Ruby:类中的变量

    Ruby提供了四种变量,分别是局部变量、实例变量、类变量、全局变量。 一、命名方式 局部变量:小写字母或者“_”开...

  • Ruby中的Module

    Ruby中没有Java语言中的interface,Ruby只支持单继承。Ruby通过Mix-in提供对类的扩展,其...

  • Ruby元编程笔记——1.对象模型

    打开类 在Ruby中,定义类的语句和其他语句没有本质区别,你可以在类定义中放置任何语句。 Ruby的class关键...

  • Ruby类(二)

    类 Ruby是一种面向对象语言 定义类 类中的变量 Ruby 提供了四种类型的变量: 局部变量:局部变量是在方法中...

  • From Objective-C to Ruby(4)-类和模块

    类 定义类 OC: ruby: 初始化方法 OC: ruby: 实例变量和属性 OC: ruby: 类方法和对象方...

  • 器-说明:ruby中的原始类和单例类

    一、ruby中的原始类和单例类 在ruby中存在两种类:一个是原始类,一个是单例类。一个对象可以同时有这两种类。 ...

  • Ruby中类方法的定义

    Ruby中类方法的定义 方法的接受者就是类本身(类对象)的方法成为类方法。类方法的几种形式如下: 如果以为就是上面...

  • ruby中的module与类

    class和module很相似,类只不过是增加强了module,它比module多了三个方法:new()、allo...

  • ruby 类

    ruby中任何东西都是一个类,完全面向对象的语言,一个数字也是一个类 定义一个类 然后进入irb命令行

网友评论

    本文标题:Ruby中的类

    本文链接:https://www.haomeiwen.com/subject/bzwfgftx.html