在本文中,我们将研究封装。我们知道Ruby是一种纯粹的面向对象的语言,在每种面向对象的语言中,封装都被视为重要的属性之一。因此,让我们借助程序代码和语法来了解封装。
将数据打包为一个单元称为封装。它也可以称为将代码和受代码影响的数据绑定在一起的过程。通过应用封装,可以保护您的数据免受其他来源的操纵。用简单的话来说,它可以被认为是一种机制,它仅允许数据由声明它们的类的成员函数操纵。
您可以通过将class的所有变量声明为private( they are by default private)和将所有成员函数声明为来实现封装public(they are by default public)。现在,这些变量只能由该类的这些公共方法访问。
易于测试的代码:单元测试是每个程序员都知道的测试。完成封装后,单元测试变得容易完成。
减少冗余:封装有助于使代码可重用。您可以根据时间要求更新代码。
数据隐藏:封装有助于数据隐藏,这意味着用户将无法获得有关类的内部实现的想法。用户将不知道数据在类中的存储位置。
让我们借助示例来了解封装:
=begin Ruby program to demonstrate encapsulation =end class Bank def initialize(id, nme, no, type) @cust_id = id @cust_name = nme @ac_no = no @cust_type = type end def display_details puts "Customer id : #{@cust_id}" puts "Customer name : #{@cust_name}" puts "Customer no : #{@ac_no}" puts "Customer type : #{@cust_type}" end end customer1 = Bank.new("Cust101", "Rashmeet", "AC789", "Savings") customer2 = Bank.new("Cust102", "Parmeet", "AC1789", "Savings") customer3 = Bank.new("Cust103", "Jagmeet", "AC2789", "Savings") customer1.display_details customer2.display_details customer3.display_details
输出结果
Customer id : Cust101 Customer name : Rashmeet Customer no : AC789 Customer type : Savings Customer id : Cust102 Customer name : Parmeet Customer no : AC1789 Customer type : Savings Customer id : Cust103 Customer name : Jagmeet Customer no : AC2789 Customer type : Savings
说明:
在上面的代码中,您可以观察到成员函数和数据只能通过类的对象或实例进行访问。在这里,“Bank”类的实例是customer1,customer2和customer3。