在了解如何在Ruby中实现面向对象的编程之前,让我们首先了解一下面向对象的含义。
面向对象的编程降低了大型软件系统的复杂性,从而使软件易于维护。这类编程基本上使用对象。在纯面向对象的语言中,所有内容都被视为对象。OOP的主要目的是将数据与操作这些数据的功能组合在一起,以使代码的任何其他部分都无法访问该数据。
现在让我们谈谈Ruby。Ruby是一种纯粹的面向对象语言,所有内容都被视为对象。甚至字符串,数字,true或false也是最原始的对象类型。本文的其余部分将让您知道,如何在Ruby中实现类和对象?
类不过是数据类型的蓝图。它仅定义类的实例由什么组成,以及可以对类的对象执行的可能功能。在Ruby中,甚至类都是“类”类的对象。
语法:
class Class_name #code end
请记住,按照惯例,类名必须以大写字母开头。如果不遵循约定,则会在编译时出现错误。
现在,让我们在Ruby中声明一个类,
class Example def initialize end def prints end end
上面的代码将被编译,但不会产生输出,因为在未实例化之前不会向该类提供任何内存。
对象是类的实例。它们为班级提供记忆。您可以创建一个类的任意数量的对象。通过“ new”关键字创建对象。
语法:
object_name = class_name.new
让我们借助示例来了解对象创建:
class Example def initialize end def prints puts "Hello fella. How are you!!" end end ob1 = Example.new ob1.prints ob2 = Example.new ob2.prints
输出结果
Hello fella. How are you!! Hello fella. How are you!!
在上面的代码中,您可以看到我们正在创建Example类的两个对象。然后,我们将实例调用prints方法。
构造函数用于初始化类的变量。它们在创建对象时初始化类变量。'initialize'方法在Ruby中充当构造函数。它在类内部定义,并在创建对象时调用。通过语法和示例可以更好地理解。
语法:
class Class_name def initialize(parameters if required) end end
示例
=begin Ruby program to demonstrate initialize. =end class Example def initialize(j,k) @a = k @b = j end def prints puts "The value of class variables are #{@a} and #{@b}" end end ob1 = Example.new(2,5) ob1.prints ob2 = Example.new(9,7) ob2.prints
输出结果
The value of class variables are 5 and 2 The value of class variables are 7 and 9