Ruby构造函数

Ruby中的构造函数

构造函数是面向对象编程中最重要的部分之一。构造函数是一个独特的方法,当实例化该特定类的对象时,将调用该方法。不需要显式声明即可进行调用。构造函数的主要目的是在对象创建过程中促进对类变量的初始化。构造函数的工作方式与普通方法相同,它们确实包含语句,表达式和方法调用。

在其他面向对象的语言(例如C ++和Java)中,类和构造函数的名称曾经是相同的,但是在Ruby的情况下,该名称与类的名称不同。在Ruby中,您可以借助以下语法来定义构造函数,

    def initialize
        #expressions
    end

一个构造函数返回一个类的对象。无法向构造函数提供继承,而允许重载构造函数。构造函数以以下方式在类中定义:

    class CLASS_NAME
        def initialize
            #expressions
        end
        #其他方法
    end

上面是没有参数的构造函数语法。通过以下语法了解带参数的构造函数

带参数的构造函数

    class CLASS_NAME
        def initialize(#参数列表)
            #expressions
        end
        #其他方法
    end

请记住构造函数是类的一种特殊方法。它不需要显式调用。在Ruby中,构造函数是在“ new”关键字的帮助下调用的,而new关键字用于创建该类的对象。在“新”的关键字给内部调用“初始化”方法,如果有新规定了一些参数,它会被传递给initialize方法。如果构造函数不是参数化的,并且“ new”具有一些参数,则编译器将生成一个错误,称为“ initialize:错误的参数数目”

让我们了解一个非参数构造函数示例

=begin
Ruby program to demonstrate constructor 
without parameters
=end

class ClassA
	#非参数构造函数
	def initialize
		for i in 0..10
			puts "Welcome to Nhooo.com"
		end
	end
end

#类实例化
ClassA.new

输出结果

Welcome to Nhooo.com
Welcome to Nhooo.com
Welcome to Nhooo.com
Welcome to Nhooo.com
Welcome to Nhooo.com
Welcome to Nhooo.com
Welcome to Nhooo.com
Welcome to Nhooo.com
Welcome to Nhooo.com
Welcome to Nhooo.com
Welcome to Nhooo.com

您可以在上面的代码中观察到,当我们对“ new”关键字进行显式调用时,这反过来是对initialize方法的内部调用。

现在,借助以下示例了解参数构造函数

=begin
Ruby program to demonstrate 
constructor with parameters
=end

class ClassA
	#参数构造函数
	def initialize(a,b)
		@instA=a
		@instB=b
	end
	def prnt
		puts "First value is : #{@instA}"
		puts "Second value is : #{@instB}"
	end
end

#类实例化s
ob1=ClassA.new(10,20) 
ob2=ClassA.new(13,200)
ob1.prnt
ob2.prnt

输出结果

First value is : 10
Second value is : 20
First value is : 13
Second value is : 200

在上面的示例中,您可以观察到我们正在为“ new”提供值,而“ new”证明了这些值可用于初始化方法。