Ruby中的类

Ruby类

在现实世界中,我们有许多属于同一类别的对象。例如,我在笔记本电脑上工作,而这台笔记本电脑就是全球范围内存在的那些笔记本电脑之一。因此,此便携式计算机是“笔记本电脑”类的对象或实例。因此,我们可以得出结论:“一个类是一个蓝图或原型,它包含一些方法和数据成员,这些方法和数据成员对于以某种方式彼此相同的对象是相同的”

Ruby纯粹是面向对象的,这意味着它的代码可能包含几个类及其实例。在Ruby中,可重用性的概念是通过类实现的,因为它允许程序员反复使用相同的原型来创建彼此相似的对象。

下图演示了Ruby中的类层次结构

Ruby编程语言中的类class Student def update放置“输入学生人数” no_of_students = gets.chomp放置“更新的学生人数为#{no_of_students}”结束记录1 = Student.new record1.update

输出结果

Enter the number of students
36
The updated numbers of students are 36

在上面的示例中,我们创建了一个Student类。在其中使用局部变量no_of_students定义方法更新。

在中main(),我们创建了Student类的对象或实例,并将其命名为record1。通过使用 。实例名称的操作符,我们正在访问方法更新。

类可见性

  1. 私有的

  2. 上市

  3. 受保护的

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)