面向对象

#访问器(accessor)类似getter
#设置器(setter)
class Box
    def initialize (w,h)
        @width = w
        @height = h
    end
    #accessor
    def get_width        #attr_reader:width        #attr_accessor:width
        @width
    end
    def get_height        #attr_reader:height       #attr_accessor:height
        @height
    end
    #setter
    def set_width=(value)        #attr_writer:width
        @width = value
    end
    def set_height=(value)        #attr_writer:height
        @height = value
    end

end

box = Box.new(10,20)
x = box.get_width
y = box.get_height
puts "width = #{x}"
puts "height = #{y}"

box.set_width = 2222
puts "修改后的width = #{box.get_width}"

 

#类变量和类方法
class Box
    @@count = 0
    def initialize(w,h)
        @w, @h = w,h
        @@count += 1        #类变量,在类的所有实例中共享
    end

    def self.print_count    #类方法,也可以写成: 类名.方法名
        puts "count:#@@count"
    end
end
box1 = Box.new(12,13)
box2 = Box.new(22,23)
Box.print_count                #调用类方法:类名.方法名

 

posted @ 2016-07-18 16:35  Hsinwang  阅读(113)  评论(0编辑  收藏  举报