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

标签 ruby oop object

我觉得这是我理解 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 是我的对象,对吧?或者我的对象是 class Person 和我为该类定义的属性的组合?

最佳答案

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

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

关于ruby - 我是否正确理解了 Ruby 中的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7762056/

相关文章:

ruby - 如何替换字符串中的字符

ruby - 在 Ruby 的控制台上显示时在对象上调用的方法

ruby-on-rails - 有没有办法在 Rails Jbuilder 模板中隐藏属性?

javascript - jQuery:使用 Object Literal 的信息克隆 HTML

ruby-on-rails - 我需要在 rails 路线前加斜杠吗

JavaScript 语法 : what is ({ }) Is it a function or object?

php - 简单的准备好的语句不起作用

java - Sub2 复制构造函数如何自动从 Sub1 复制新的成员变量?

ios - 如何从 JSON 创建对象集合

java - 嵌套数据结构的对象创建,对性能的可避免影响?