Ruby类和函数

虽然后续会单独有一章专门介绍类和函数,但是作为面向对象中最常用的两个主要角色,这里还是要先简单的介绍一下。

(1)类

Ruby语言中类的定义使用的表现形式为class…end,如下:

class class_name                                                                     
   class_member                                                                       
   class_function                                                                  
end                                                                                     

实例创建利用函数new,即class_name.new,ruby中会调用函数initialize函数实现类的创建,这有点和Java中的构造函数类似。

注意:类的命名需要首字母大写。

(2)成员变量

Ruby语言中变量主要分为三类,即全局变量,类变量和成员(实例)变量。全局变量用“$变量名称”表示;类变量用“@@变量名称”表示;成员(实例)变量用“@变量名称”表示。

Ruby语言中成员变量和其他面向对象语言是一致的,所以理解起来并不困难。

注意:变量命名需要小写字母开头。

(3)成员函数

Ruby语言中函数的定义使用的表现形式为def…end,如下:

def function_name                                                                   
    #...                                                                
end                                                                                    

注意:变量命名需要小写字母开头。

扩展阅读:类函数

Java中的类函数由static标示,对于ruby语言,通过self来实现,如例:

def self.function_name                                                                   
    #...                                                               
end                                                                                    
 

示例:class的使用实例                                                                  

[lazy@localhost chapter1]$ vim chapter1_8.rb
# Instance for class
$hometown = "China"    # Global variable
class Person
    @@number = 0     # Class variable
    # Structure function
    def initialize(name, age, gender)
        @name = name    # Instance variable
        @age = age
        @gender = gender
        @@number = @@number + 1    # Remembet total person
    end # end of function named initialize
    # Function that puts element
    def putPerson
        puts "The " + @@number.to_s + " person:\n" + "My name is " + @name + ",my age is " + @age.to_s + ",my gender is " + @gender + ".I come from " + $hometown + "."
        puts "The #@@number person : name = #@name : age = #{@age} : gender = #@gender."
    end
end # end of class
person1 = Person.new("lazy1",23,"male")
person1.putPerson
person2 = Person.new("lazy2",24,"male")
person2.putPerson

说明:对于整数在字符串中的输出可以采用两种形式,这其实也是linux所使用的:

① #变量

如例子中第二个puts后面的#@name,表示将变量#name的值输出。

② #{变量}

如例子中第二个puts后面的#{@name},表示将变量@name的值输出。

[lazy@localhost chapter1]$ ruby chapter1_8.rb
The 1 person:
My name is lazy1,my age is 23,my gender is male.I come from China.
The 1 person : name = lazy1 : age = 23 : gender = male.
The 2 person:
My name is lazy2,my age is 24,my gender is male.I come from China.
The 2 person : name = lazy2 : age = 24 : gender = male.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值