• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >ruby > Ruby面向对象编程详解

Ruby面向对象编程详解

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了java面向对象详解,面向对象详解,js面向对象详解,php面向对象详解,面向接口编程详解等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Ruby是纯面向对象的语言,所有项目似乎要Ruby中为一个对象。Ruby中的每个值是一个对象,即使是最原始的东西:字符串,数字甚至true和false。即使是一个类本身是一个对象,它是Class类的一个实例。本章将通过所有功能涉及到Ruby的面向对象。

类是用来指定对象的形式,它结合了数据表示和方法操纵这些数据,转换成一个整齐的包。在一个类的数据和方法,被称为类的成员。

Ruby类的定义:

定义一个类,定义的数据类型的草图。 这实际上并不定义任何数据,但它定义的类名字的意思什么,即是什么类的对象将包括这样一个对象上执行什么操作可以。

类定义开始与关键字class类名和 end 分隔。例如,我们定义Box类使用class关键字如下:
class Box
   code
end
</div>

名称必须以大写字母开始,按照约定名称中包含多个单词,每个单词没有分隔符(驼峰式)一起执行。

定义Ruby的对象:

类为对象的蓝图,所以基本上是一个从一个类对象被创建。我们声明一个类的对象使用new关键字。下面的语句声明了两个对象,Box 类:
box1 = Box.new
box2 = Box.new
</div>

initialize方法:

initialize方法是一个标准的Ruby类的方法,和其它面向对象编程语言的构造方法有相同的方式工作。 initialize方法是有用的,在创建对象的时候,一些类变量初始化。这种方法可能需要的参数列表,它像其他Ruby之前的方法用def关键字定义,如下所示:
class Box
   def initialize(w,h)
      @width, @height = w, h
   end
end
</div>

实例变量:

实例变量是类的一种属性,一旦我们使用的类对象被创建的对象的属性。每个对象的属性被分别赋值的并与其它对象共享,它们在类的内部使用@操作符访问,但访问类之外的,我们使用的公共方法被称为访问器方法。如果我们把上述定义的类 Box,然后 @width 和 @height 类 Box实例变量。
class Box
   def initialize(w,h)
      # assign instance avriables
      @width, @height = w, h
   end
end
</div>

访问器和setter方法​​:

为了外部能访问类的变量,它们必须定义存取器方法,这些存取器方法也被称为getter方法。下面的例子演示了如何使用访问器方法:
#!/usr/bin/ruby -w

# define a class
class Box
   # constructor method
   def initialize(w,h)
      @width, @height = w, h
   end

   # accessor methods
   def printWidth
      @width
   end

   def printHeight
      @height
   end
end

# create an object
box = Box.new(10, 20)

# use accessor methods
x = box.printWidth()
y = box.printHeight()

puts "Width of the box is : #{x}"
puts "Height of the box is : #{y}"
</div>
当上面的代码执行时,它会产生以下结果:
Width of the box is : 10
Height of the box is : 20
</div>
类似的存取方法用于访问的变量值,Ruby提供了一种方法来从类的外部设置这些变量的值,那就是setter方法​​,定义如下:
#!/usr/bin/ruby -w

# define a class
class Box
   # constructor method
   def initialize(w,h)
      @width, @height = w, h
   end

   # accessor methods
   def getWidth
      @width
   end
   def getHeight
      @height
   end

   # setter methods
   def setWidth=(value)
      @width = value
   end
   def setHeight=(value)
      @height = value
   end
end

# create an object
box = Box.new(10, 20)

# use setter methods
box.setWidth = 30
box.setHeight = 50

# use accessor methods
x = box.getWidth()
y = box.getHeight()

puts "Width of the box is : #{x}"
puts "Height of the box is : #{y}"
</div>
当上面的代码执行时,它会产生以下结果:
Width of the box is : 30
Height of the box is : 50
</div>

实例方法:

也以同样的方式,因为我们使用def关键字定义其他方法,并按下图所示仅对使用一个类的实例,它们可以被用来定义该实例方法。它们的功能不局限于访问实例变量,他们也可以按要求做更多的事情。
#!/usr/bin/ruby -w

# define a class
class Box
   # constructor method
   def initialize(w,h)
      @width, @height = w, h
   end
   # instance method
   def getArea
      @width * @height
   end
end

# create an object
box = Box.new(10, 20)

# call instance methods
a = box.getArea()
puts "Area of the box is : #{a}"
</div>
当上面的代码执行时,它会产生以下结果:
Area of the box is : 200
</div>

类的方法和变量:

类变量是一个变量,这是一个类的所有实例之间共享。该变量是一个实例,它是可访问对象实例。两个@字符类变量带有前缀(@@)。在类定义类变量必须初始化,如下所示。

类方法的定义使用:def self.methodname() 以 end 字符结束,将被称为使用classname.methodname类名,在下面的例子所示:

您可能想查找下面的文章:

  • Ruby面向对象编程详解

相关文章

  • Ruby编程中关于中断和返回的用法教程
  • 详细解析Ruby中的变量
  • Ruby在cmd下中文显示乱码以及不支持OpenSSL的问题解决
  • windows和linux下Ruby的下载与安装
  • Rails中使用MySQL分区表一个提升性能的方法
  • Ruby on Rails中的ActiveResource使用详解
  • Ruby 中一些百分号(%)的用法小结
  • 优化Ruby脚本效率实例分享
  • Ruby常用文件操作方法
  • Jekyll静态网站后台引擎使用教程

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • 深入理解Ruby on Rails中的缓存机制
    • 详解Ruby中的异常
    • Ruby程序中发送基于HTTP协议的请求的简单示例
    • 浅析Ruby中的Profiling工具的用法
    • 编写Ruby脚本来对Twitter用户的数据进行深度挖掘
    • 使用Ruby来编写访问Twitter的命令行应用程序的教程
    • Ruby实现发送邮件的两个方法
    • 用SparkR探索电商数据
    • 举例讲解Ruby中迭代器Iterator的用法
    • Ruby数组(Array)学习笔记

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有