博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ruby 教程(一)
阅读量:4051 次
发布时间:2019-05-25

本文共 1165 字,大约阅读时间需要 3 分钟。

类与对象:

Ruby是一种真正的面向对象的程序设计语言, 面向对象是指以对象为中心的理论体系

** 封装 (Encapsulation)
** 继承 ()
** 多态 (Polymorphism)
对比Java & Ruby, 获取一个数字的绝对值。
Java : int num = Math.abs(-99)
PS: 将一个数值传递给Math类的一个静态函数abs处理, 因为在Java中数值是基本类型
而不是类
Ruby : c = -99.abs
PS: 在ruby中,任何事物都是对象, 操作及其结果都是对象

 

类的定义

class ClassName (类名首字母必写笮措)
  def method_name(variables)
    #some code
  end
end

 

继承

Ruby 继承的方法很简单, 使用<即可, 并且只支持单继承, 每一个类都只能有一个直接
父类,这样避免了多继承的复杂,但同时它又提供了mixin的机制用来实现多继承,
a)可以使用super关键字来调用父类对象的方法, 当super省略时将使用当前方法的参数来调用
b)如果传入的参数被修改再调用super, 那么将会使用修改后的值
class Base
  def meth(info)
    puts "This is Base #{info}"
  end
end
class Derived < Base
  def meth(info)
    puts  'This is Derived #{info}'
    info = "over"
    super
  end
end

 

 

类变量 : 被一个类的所有实例对象共享, 也可以被类方法访问到。 类变量名以'@@'

开始, 而且必须有初始值,她是私有的, 在类外无法直接访问。
类方法 : 属于一个类的方法, 而且在定义她的时候需要在方法前加上类名
class Person
  @@number = 0
  def initialize(name, gender, age)
    @name = name
    @gender = gender
    @age = age
    @@number += 1
  end
 
  def Person.getNumber (类方法)
    return @@number
  end
 
end

 

Ruby的动态性

a)可以重新定义同一个方法
class RedefTest
  def meth
    puts  'This is meth'
  end
 
end
obj = RedefTest.new
obj.meth
class RedefTest
  def meth
    puts  'This is new meth'
  end
end
obj.meth
Result outcome:
This is meth.
This is new meth.

转载地址:http://brcci.baihongyu.com/

你可能感兴趣的文章
SSH原理与运用
查看>>
SIGN UP BEC2
查看>>
S3C2440中对LED驱动电路的理解
查看>>
《天亮了》韩红
查看>>
Windows CE下USB摄像头驱动开发(以OV511为例,附带全部源代码以及讲解) [转]
查看>>
模拟屏学习资料_什么是PAL制式
查看>>
模拟屏学习资料_模拟视频 入门
查看>>
西藏之旅
查看>>
Oracle中定时执行问题
查看>>
三时业
查看>>
佛教三宝-三皈依
查看>>
杂阿含经喻世间有四等马
查看>>
考研前夜涂笔
查看>>
英语复试自我介绍
查看>>
什么是熵?
查看>>
拼凑、摘抄-评李代平的软件工程第二版
查看>>
误传了数千年的几个名句
查看>>
韩复榘经典语录
查看>>
厅、部、局、司区分大小
查看>>
VS2005中使用C#编写MDI窗口根据子窗口个数控制菜单项的enabled属性
查看>>