Ruby-类和对象
2016-03-13 20:20
323 查看
ruby是一种面向对象编程语言,具有面向对象的特性:封装、抽象、继承和多态性。
①局部变量:局部变量是在方法中定义的变量。局部变量在方法外是不可用的。局部变量以小写字母或
②实例变量:实例变量可以跨任何特定的实例或对象中的方法使用。这意味着,实例变量可以从对象到对象的改变。实例变量以
③类变量:类变量可以跨不同的对象使用。类变量属于类,且是类的一个属性,并被共享在整个继承链中。类变量以
④全局变量:类变量不能跨类使用。如果您想要有一个可以跨类使用的变量,您需要定义全局变量。全局变量以
看到这里可能胡迷糊,不怕,给你举几个例子,记得运行看一下结果哦。
局部变量对的例子:
跟我们平时理解的局部变量的含义一致。
实例变量的例子如下:
说明一下:
①initialize()类似构造函数。如果定义多个initialize(),以最后一个为准。
②当您想要在一个单行上显示实例变量的文本和值时,您需要在 puts 语句的变量名前面放置符号(#)。文本和带有符号(#)的实例变量应使用双引号标记。
有点像获取一个对象的属性。
类变量的例子如下:
类变量可以统计类对象的数量呢。
全局变量的例子如下:
常量不能定义在方法内。引用一个未初始化的常量会产生错误。对已经初始化的常量赋值会产生警告。
self: 当前方法的接收器对象。
true: 代表 true 的值。
false: 代表 false 的值。
nil: 代表 undefined 的值。
FILE: 当前源文件的名称。
LINE: 当前行在源文件中的编号。
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简明教程之循环语句介绍
- ruby 一些简单的例子
- Ruby on Rails在Ping ++ 平台实现支付
- Ruby 之 class 中的 private、 protected、public
- Ruby中操作文件的方法介绍
- Ruby中的集合编写指南
- CentOS 6.3下编译安装Ruby 2.0笔记
- Ruby基本的环境变量设置以及常用解释器命令介绍
- Ruby编程中关于中断和返回的用法教程
- Ruby中的异常处理代码编写示例
- Ruby中的变量学习总结
- 几个加速Ruby on Rails的编程技巧
- Ruby配置rspec和RestClient来检测服务器
- 分析Cache 在 Ruby China 里面的应用情况
- Ruby中数组的一些相关使用方法
- 编写Ruby代码注释时需要注意的一些问题
- Ruby类继承、抽象类、类拓展混入、代理类实例
- Ruby简明教程之方法(Method)介绍