概述
ruby是一种面向对象编程语言,具有面向对象的特性:封装、抽象、继承和多态性。
1.1 类
在Ruby中,类以关键字class
开始,后面跟类名(应大写),以end
结束。例如:
class Customer
#...
end
1.2 变量
ruby提供四种类型的变量:
①局部变量:局部变量是在方法中定义的变量。局部变量在方法外是不可用的。局部变量以小写字母或 _
开始。未初始化的变量值为nil。
②实例变量:实例变量可以跨任何特定的实例或对象中的方法使用。这意味着,实例变量可以从对象到对象的改变。实例变量以@
开头。未初始化的变量值为nil。
③类变量:类变量可以跨不同的对象使用。类变量属于类,且是类的一个属性,并被共享在整个继承链中。类变量以@@
开头。必须初始化之后才能够在方法中使用。
④全局变量:类变量不能跨类使用。如果您想要有一个可以跨类使用的变量,您需要定义全局变量。全局变量以$
开头。
看到这里可能胡迷糊,不怕,给你举几个例子,记得运行看一下结果哦。
局部变量对的例子:
i0 = 1
loop {
i1 = 2 #局部变量
puts defined?(i0)
puts defined?(i1)
break
}
跟我们平时理解的局部变量的含义一致。
实例变量的例子如下:
class Customer
def initialize(id, name, addr)
@cust_id=id
@cust_name=name
@cust_addr=addr
end
def display_details()
puts "Customer id #@cust_id"
puts "Customer name #@cust_name"
puts "Customer address #@cust_addr"
end
end
# Create Objects
cust1=Customer.new("1", "John", "Wisdom Apartments, Ludhiya")
cust2=Customer.new("2", "Poul", "New Empire road, Khandala")
# Call Methods
cust1.display_details()
cust2.display_details()
说明一下:
①initialize()类似构造函数。如果定义多个initialize(),以最后一个为准。
②当您想要在一个单行上显示实例变量的文本和值时,您需要在 puts 语句的变量名前面放置符号(#)。文本和带有符号(#)的实例变量应使用双引号标记。
有点像获取一个对象的属性。
类变量的例子如下:
class Customer
@@no_of_customers=0
def initialize(id, name, addr)
@cust_id=id
@cust_name=name
@cust_addr=addr
end
def display_details()
puts "Customer id #@cust_id"
puts "Customer name #@cust_name"
puts "Customer address #@cust_addr"
end
def total_no_of_customers()
@@no_of_customers += 1
puts "Total number of customers: #@@no_of_customers"
end
end
# Create Objects
cust1=Customer.new("1", "John", "Wisdom Apartments, Ludhiya")
cust2=Customer.new("2", "Poul", "New Empire road, Khandala")
# Call Methods
cust1.total_no_of_customers()
cust2.total_no_of_customers()
类变量可以统计类对象的数量呢。
全局变量的例子如下:
$global_variable = 10
class Class1
def print_global
puts "Global variable in Class1 is #$global_variable"
end
end
class Class2
def print_global
puts "Global variable in Class2 is #$global_variable"
end
end
class1obj = Class1.new
class1obj.print_global
class2obj = Class2.new
class2obj.print_global
1.3 常量
常量以大写字母开头。定义在类或模块内的常量可以从类或模块的内部访问,定义在类或模块外的常量可以被全局访问。
常量不能定义在方法内。引用一个未初始化的常量会产生错误。对已经初始化的常量赋值会产生警告。
class Example
VAR1 = 100
VAR2 = 200
def show
puts "第一个常量的值为 #{VAR1}"
puts "第二个常量的值为 #{VAR2}"
end
end
# 创建对象
object=Example.new()
object.show
1.4 伪变量
它们是特殊的变量,有着局部变量的外观,但行为却像常量。您不能给这些变量赋任何值。
self: 当前方法的接收器对象。
true: 代表 true 的值。
false: 代表 false 的值。
nil: 代表 undefined 的值。
FILE: 当前源文件的名称。
LINE: 当前行在源文件中的编号。
最后
以上就是光亮蓝天为你收集整理的Ruby-类和对象的全部内容,希望文章能够帮你解决Ruby-类和对象所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复