【RUNOOB】Ruby类和对象

1.在ruby中定义类

(1) 类以关键字class开始,后跟类的名称,类名的首字母应该大写;

(2) 使用关键字end终止一个类,类中的所有数据成员都是介于类定义和end关键字之间;

1 #示例1
2 class Customer
3 end

2.ruby类中的变量

2.1 局部变量

(1) 局部变量是在方法中定义的变量。局部变量在方法外是不可用的。

(2) 局部变量以小写字母或 _ 开始

2.2 实例变量

(1) 实例变量可以跨任何特定的实例或对象中的方法使用。

(2) 实例变量在变量名之前放置符号(@)

2.3 类变量(类似于system verilog中的静态变量)

(1) 类变量可以跨不同的对象使用。类变量属于类,且是类的一个属性。

(2) 类变量在变量名之前放置符号(@@)。

1 class Customer
2     @@no_of_customers=0
3 end

2.4 全局变量

(1) 类变量不能跨类使用。全局变量可以跨类使用。

(2) 全局变量总是以美元符号($)开始。

3.ruby类中的成员函数

(1) ruby中,函数被成为方法; 类中的每个方法都是以关键字def开始,后跟方法名,使用关键字end结束一个方法;

(2) 方法名总以小写字母开头;

1 #示例1
2 class Sample
3   def function
4     statement 1
5     statement 2
6   end
7 end
1 #示例2
2 class Sample
3   def hello
4     puts "Hello Ruby!"
5   end
6 end
 1 #示例3
 2 #!/usr/bin/ruby
 3  
 4 class Sample
 5    def hello
 6       puts "Hello Ruby!"
 7    end
 8 end
 9  
10 # 使用上面的类来创建对象
11 object = Sample. new
12 object.hello

4.ruby中创建对象

(1) 对象是类的实例;在ruby中,可以使用类的方法new创建对象;

(2) 方法new属于类方法,在ruby库中预定义;

1 #示例1
2 cust1=Customer.new
3 cust2=Customer.new

(3) 可以给new方法传递参数用于初始化类的变量; 这种情况下,需要在创建类的同时声明方法initialize;

 1 #示例2
 2 class Customer
 3   @@no_of_customers=0
 4   def initialize(id, name, addr)
 5     @cust_id=id
 6     @cust_name=name
 7     @cust_addr=addr
 8   end
 9 end
10 
11 cust1=Customer.new("1", "John", "Wisdom Apartments, Ludhiya")
12 cust2=Customer.new("2", "Poul", "New Empire road, Khandala")

5.ruby类案例

 1 #!/usr/bin/ruby
 2 
 3 class Customer
 4     @@no_of_customers=0
 5     def initialize(id, name, addr)
 6           @cust_id=id
 7           @cust_name=name
 8           @cust_addr=addr
 9     end
10 
11     def display_details()
12          puts "Customer id #@cust_id"
13          puts "Customer name #@cust_name"
14          puts "Customer address #@cust_addr"
15     end
16 
17     def total_no_of_customers()
18          @@no_of_customers+=1
19          puts "Total number of customers: #@@no_of_customers"
20     end
21 end    

 

posted on 2022-06-05 21:45  知北游。。  阅读(35)  评论(0编辑  收藏  举报

导航