在现实世界中,我们有许多属于同一类别的对象。例如,我在笔记本电脑上工作,而这台笔记本电脑就是全球范围内存在的那些笔记本电脑之一。因此,此便携式计算机是“笔记本电脑”类的对象或实例。因此,我们可以得出结论:“一个类是一个蓝图或原型,它包含一些方法和数据成员,这些方法和数据成员对于以某种方式彼此相同的对象是相同的”。
Ruby纯粹是面向对象的,这意味着它的代码可能包含几个类及其实例。在Ruby中,可重用性的概念是通过类实现的,因为它允许程序员反复使用相同的原型来创建彼此相似的对象。
下图演示了Ruby中的类层次结构:
输出结果
Enter the number of students 36 The updated numbers of students are 36
在上面的示例中,我们创建了一个Student类。在其中使用局部变量no_of_students定义方法更新。
在中main()
,我们创建了Student类的对象或实例,并将其命名为record1。通过使用 。实例名称的操作符,我们正在访问方法更新。
私有的
上市
受保护的
1)私有的
私有方法只能在当前对象的上下文中调用。您不能直接在main()
方法中调用私有方法。如果这样做,则会出现错误,因为私有方法的可见性仅限于创建它的类。
为了将方法设为私有,需要在定义方法之前使用关键字“私有”。
语法:
private def (method_name) end
示例
class Student private def update puts "Enter the number of students" no_of_students=gets.chomp puts "The updated numbers of students are #{no_of_students}" end end record1=Student.new record1.update
输出结果
// 不能使用私有会员... `<main>': private method `update' called for #<Student:0x000000018998a0> (NoMethodError)
2)公开
默认情况下,每种方法在Ruby中都是公共的,也就是说,任何人都可以自由使用它们-不对其应用访问控制。在任何情况下,如果我们明确希望将方法公开,则必须使用关键字“ public”以及方法的名称。
语法:
public def (method_name) end
示例
class Student public def update puts "Enter the number of students" no_of_students=gets.chomp puts "The updated numbers of students are #{no_of_students}" end end record1=Student.new record1.update
输出结果
Enter the number of students 36 The updated numbers of students are 36
3)受保护
受保护的方法仅可用于定义类及其子类或子类的对象。它们主要在继承期间使用(父子类Concept)。在方法名称之前使用关键字“ rotected”。
语法:
protected def (method_name) end
示例
class Student protected def update puts "Enter the number of students" no_of_students=gets.chomp puts "The updated numbers of students are #{no_of_students}" end end record1=Student.new record1.update
输出结果
`<main>': protected method `update' called for #<Student:0x00000001e90948> (NoMethodError)