加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

我是否正确理解Ruby中的对象?

发布时间:2020-12-17 03:01:27 所属栏目:百科 来源:网络整理
导读:我觉得这对于我对 Ruby和面向对象编程的总体理解是至关重要的,所以我在这里提出这个相当简单的问题,冒着看起来很愚蠢的风险.我一直在玩弄irb.我创造了我的第一堂课: $irbruby-1.9.2-p290 :001 class Personruby-1.9.2-p290 :002? attr_accessor :firstname,
我觉得这对于我对 Ruby和面向对象编程的总体理解是至关重要的,所以我在这里提出这个相当简单的问题,冒着看起来很愚蠢的风险.我一直在玩弄irb.我创造了我的第一堂课:

$irb
ruby-1.9.2-p290 :001 > class Person
ruby-1.9.2-p290 :002?>   attr_accessor :firstname,:lastname,:gender
ruby-1.9.2-p290 :003?>   end
 => nil 
ruby-1.9.2-p290 :004 > person_instance = Person.new
 => #<Person:0x007f9b7a9a0f70> 
ruby-1.9.2-p290 :005 > person_instance.firstname = "Bob"
 => "Bob" 
ruby-1.9.2-p290 :006 > person_instance.lastname = "Dylan"
 => "Dylan"
ruby-1.9.2-p290 :007 > person_instance.gender = "male"
 => "male"

所以Person.new是我的对象,对吗?或者我的对象是类Person和我为该类定义的属性的组合?

解决方法

您的对象是运行Person.new的结果,您已在person_instance中捕获该对象.

在ruby中,属性在第一次写入之前实际上并不存在,因此在person_instance.firstname =“Bob”之前,您的实例没有属性.执行此语句后,它具有@firstname属性,但没有其他属性.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读