Ruby 学习三 (类、对象和变量一 类的定义和实例化)

    Ruby号称是一门面向对象的语言,对象势必是首当其冲的应该提到的,这一篇我们就来学习学习类,对象和变量,说明一下,我自己也是边摸索边学,之前也没有接触过一门类似的语言,这在开篇就提到了,我是结合网络资源和《Programming Ruby 2nd》学习的,至于写这些文字,也只是为了加深印象,也是为了“鞭笞”自己继续的学习下去,不然哪天找个借口就。。。题外话:)。

    我们先来看下类的定义:(来自programming ruby 2nd ,以后的例子也大部分来自于本书)

  1. #定义一个类Song,只包含一个方法initialize
  2. class Song
  3.   def initialize(name , artist , duration)
  4.     @name = name
  5.     @artist = artist
  6.     @duration = duration
  7.   end
  8. end
  9. #下面是实例化一个类
  10. song = Song.new("You're beautiful","James blunt" ,215)
  11. puts song.inspect
  12. #下面是得到的结果
  13. #<Song:0x2c12cd8 @duration=215, @name="You're beautiful", @artist="james blunt">

    这里定义了一个类Song,其中包括一个方法initialize,这个方法包括三个参数。(注明下的是,在Ruby中一般类一般用大写字母开头,方法和局部变量以小写字母开始,@xxx表示一个实例变量,而$xxx表示一个全局变量。) 这里要说明下【initialize】方法,这个方法相当于Java , C#中的构造方法,可以用来初始化一个类,下面Song.new就用到了这个方法。而@name 表示一个实例变量,用法相当的简单就是一个名称前面加上@符号,实例变量可以在被该对象中所有的方法调用。所以在initialize的方法中赋值是最好不过的了。

    最后还要提一下本例中使用的inspect 消息,他表现的是对象的id和实例变量。而在对象还有一个标准的消息(Message) to_s,一般来说【对象.to_s】反应的是对象的ID,比如本例就是#<Song:0x2c12cd8> , 当然我们可以重写这个to_s ,来输出一些对我们比较有用或者说关注的信息。

    在Ruby中,类是永不关闭的,你可以随时的往里面增加你需要的方法。我们来重写一下上面的Song

  1. #定义一个类Song,只包含一个方法initialize 
  2. class Song
  3.   def initialize(name , artist , duration)
  4.     @name = name
  5.     @artist = artist
  6.     @duration = duration
  7.   end
  8. end
  9. #下面是实例化一个类 
  10. song = Song.new("You're beautiful","James blunt" ,215)
  11. puts song.to_s
  12. #下面是得到的结果 
  13. Song:You're beautiful--james blunt (215)

好了,今天就坚持到这了,明天继续:)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值