开发手册 欢迎您!
软件开发者资料库

Ruby - 类和对象

Ruby类和对象 - 从简单和简单的步骤学习Ruby,从基本到高级概念,包括概述,环境设置,语法,类,变量,运算符,注释,If ... else,case,除非,循环,文件, I / O,函数,对象,TK,范围,迭代器,数组,字符串,方法,块,异常,面向对象,正则表达式,DBI,多线程,哈希,日期和时间,模块,LDAP,Web服务,Web编程,发送电子邮件,套接字编程,脚本语言,预定义常量,关联工具。

Ruby是一种完美的面向对象编程语言.面向对象编程语言的功能包括 :

  • 数据封装

  • 数据抽象

  • 多态性

  • 继承

这些功能已在章面向对象的Ruby .

面向对象的程序涉及类和对象.类是创建单个对象的蓝图.在面向对象的术语中,我们说你的自行车类对象的一个实例,称为自行车.

拿任何车辆的例子.它包括轮子,马力和燃料或油箱容量.这些特征构成了Vehicle类的数据成员.借助这些特性,您可以将一辆车与另一辆车区分开来.

车辆也可以具有某些功能,例如停车,驾驶和超速.甚至这些函数也构成了Vehicle类的数据成员.因此,您可以将类定义为特征和函数的组合.

类Vehicle可以定义为 :

Class Vehicle {   Number no_of_wheels   Number horsepower   Characters type_of_tank   Number Capacity   Function speeding {   }      Function driving {   }      Function halting {   }}

通过为这些数据成员分配不同的值,您可以构成Vehicle类的多个实例.例如,一架飞机有三个轮子,马力为1000,燃料为坦克类型,容量为100升.以同样的方式,一辆汽车有四个轮子,马力200,燃气作为坦克类型,容量25升.

用Ruby定义一个类

要使用Ruby实现面向对象的编程,首先需要学习如何在Ruby中创建对象和类.

Ruby中的类总是以关键字开头 class 后跟类的名称.名称应始终为首字母大写.类客户可以显示为 :

class Customerend

使用关键字 end 终止一个类. 中的所有数据成员都在类定义和 end 关键字之间.

Ruby类中的变量

Ruby提供四种类型的变量 :

  • 局部变量 : 局部变量是方法中定义的变量.方法之外的局部变量不可用.您将在后续章节中看到有关方法的更多详细信息.局部变量以小写字母或_开头.

  • 实例变量 : 实例变量可用于任何特定实例或对象的方法.这意味着实例变量从一个对象变为另一个对象.实例变量前面是at符号(@),后跟变量名称.

  • 类变量 : 类变量可用于不同的对象.类变量属于类,是类的特征.它们之前是sign@@然后是变量名.

  • 全局变量 : 类变量不适用于各类.如果您想拥有一个跨类可用的单个变量,则需要定义一个全局变量.全局变量总是以美元符号($)开头.

示例

使用类变量@@ no_of_customers,可以确定正在创建的对象数.这可以导出客户数量.

class Customer   @@no_of_customers = 0end

使用新方法在Ruby中创建对象

对象是类的实例.您现在将学习如何在Ruby中创建类的对象.您可以使用类的方法 new 在Ruby中创建对象.

方法 new 是一种独特的方法,这是在Ruby库中预定义的.新方法属于方法.

以下是创建Customer&minus类的两个对象cust1和cust2的示例;

cust1 = Customer. newcust2 = Customer. new

这里,cust1和cust2是两个对象的名称.您编写对象名称后跟等号(=),之后将出现类名称.然后,点运算符和关键字 new 将跟随.

创建Ruby对象的自定义方法

你可以通过方法 new 的参数和那些参数可用于初始化类变量.

当您计划使用参数声明 new 方法时,你需要在创建类时声明方法 initialize .

initialize 方法是一种特殊的方法,这将在使用参数调用类的 new 方法时执行.

以下是创建initialize方法的示例 :

class Customer   @@no_of_customers = 0   def initialize(id, name, addr)      @cust_id = id      @cust_name = name      @cust_addr = addr   endend

在此示例中,使用 id,name ,a声明 initialize 方法nd addr 作为局部变量.这里, def end 用于定义Ruby方法 initialize .您将在后续章节中了解有关方法的更多信息.

initialize 方法中,将这些局部变量的值传递给实例变量@ cust_id, @ cust_name和@ cust_addr.这里局部变量包含与新方法一起传递的值.

现在,您可以创建对象如下 :

  cust1 = Customer.new("1","John","Wisdom Apartments,Ludhiya") cust2 = Customer.new("2","Poul","New Empire road" ,Khandala")

Ruby类中的成员函数

在Ruby中,函数称为方法. 中的每个方法都以关键字 def 开头,后跟方法名称.

方法名称始终优先于小写字母.您可以使用关键字 end 结束Ruby中的方法.

以下是定义Ruby方法的示例 :

class Sample   def function      statement 1      statement 2   endend

这里,语句1 语句2 是类中函数的主体的一部分样品.这些语句可以是任何有效的Ruby语句.例如,我们可以使用方法 puts 来打印 Hello Ruby ,如下所示 :

class Sample   def hello      puts "Hello Ruby!"   endend

现在在下面的示例中,创建一个Sample类的对象并调用 hello 方法并查看结果 :

#!/usr/bin/rubyclass Sample   def hello      puts "Hello Ruby!"   endend# Now using above class to create objectsobject = Sample. newobject.hello

这将产生以下结果 :

Hello Ruby!

简单案例研究

如果您想对类和对象进行更多练习,这是一个案例研究.

Ruby Class Case Study