📜  Ruby-类和对象

📅  最后修改于: 2020-10-16 05:47:37             🧑  作者: Mango


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

  • 数据封装
  • 数据抽象
  • 多态性
  • 遗产

这些功能已在面向对象的Ruby一章中进行了讨论。

面向对象的程序涉及类和对象。类是从中创建单个对象的蓝图。用面向对象的术语来说,您的自行车是称为自行车的一类对象的实例。

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

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

车辆类别可以定义为-

Class Vehicle {

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

通过为这些数据成员分配不同的值,可以形成Vehicle类的多个实例。例如,一架飞机有三个轮子,马力为1,000,油箱类型为燃料,容量为100升。同样,一辆汽车有四个车轮,马力为200,油箱为汽油,容量为25升。

在Ruby中定义一个类

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

Ruby中的类始终以关键字class开头,后跟该类的名称。名称应始终以大写字母开头。客户类可以显示为-

class Customer
end

您可以使用关键字end终止类。在的所有数据成员是类定义和端部之间的关键字。

Ruby类中的变量

Ruby提供了四种类型的变量-

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

  • 实例变量-实例变量可用于任何特定实例或对象的各种方法。这意味着实例变量在对象之间变化。实例变量前面带有at符号(@),后跟变量名称。

  • 类变量-类变量可用于不同的对象。类变量属于该类,是类的特征。它们前面带有符号@@。 ,后跟变量名。

  • 全局变量-类变量在类之间不可用。如果要使用单个变量(可在所有类中使用),则需要定义一个全局变量。全局变量始终以美元符号($)开头。

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

class Customer
   @@no_of_customers = 0
end

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

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

new方法是一种独特的方法类型,它在Ruby库中预定义。新方法属于方法。

这是创建类Customer的两个对象cust1和cust2的示例-

cust1 = Customer. new
cust2 = Customer. new

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

创建Ruby对象的自定义方法

您可以将参数传递给new方法,这些参数可用于初始化类变量。

当您计划使用参数声明方法时,需要在创建类时声明方法初始化

initialize方法是一种特殊的方法,当使用参数调用该类的方法时将执行该方法。

这是创建初始化方法的示例-

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

在此示例中,您将使用id,nameaddr声明为局部变量的initialize方法。在这里, defend用于定义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中,函数称为方法。在课程开始与关键词的每个方法高清其次是方法名。

方法名称始终以小写字母表示。您可以使用关键字end结束Ruby中的方法。

这是定义Ruby方法的示例-

class Sample
   def function
      statement 1
      statement 2
   end
end

在这里,语句12是类Sample中方法函数主体的一部分。这些语句可以是任何有效的Ruby语句。例如,我们可以把一个方法puts来打印你好红宝石如下-

class Sample
   def hello
      puts "Hello Ruby!"
   end
end

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

#!/usr/bin/ruby

class Sample
   def hello
      puts "Hello Ruby!"
   end
end

# Now using above class to create objects
object = Sample. new
object.hello

这将产生以下结果-

Hello Ruby!

简单案例研究

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

Ruby类案例研究