- 讲师:刘萍萍 / 谢楠
- 课时:160h
- 价格 4580 元
特色双名师解密新课程高频考点,送国家电网教材讲义,助力一次通关
配套通关班送国网在线题库一套
百度广告
在Ruby中,创建对象实例的方法与Java不同。不是使用Java中的"new ObjectInstance()"语法,而是,Ruby支持在一个对象上调用一个新方法,实际上是在内部调用了initialize方法。在列表4中,你可以看到我是怎样用Ruby创建一个Word实例及一些相应的Definition的:
列表4.在Ruby中创建一个新对象实例
require "dictionary" defin_one = Dictionary::Definition.new("Overflowing with enthusiasm") happy_wrd.add_definition(defin_one) |
你是否注意到,在列表4中,当我创建happy_wrd实例时,我并没有一个definition或synonym的集合?我仅传递了拼写和语法成份。因为Ruby支持参数默认值,所以我成功地进行了省略。在列表3中定义的Word的initialize方法中,我指定了定义"="和同义词"="作为参数,这也就是向Ruby指出,如果它们不被调用者包括在内,那么将把它们默认地指定为空集合。
还要注意,在列表3中,Definition的initialize方法是如何支持默认参数的-通过把example_sentences设置为一个空集(Ruby的nil相应于Java中的null)来实现。在前面的列表1中,我必须用Java语言创建三个构造器才能取得与此相同的灵活性!
现在,请注意,在列表5中,通过使用灵活的initialize()方法我创建了一个不同的Word实例。
列表5.Ruby的灵活性!
require "dictionary" defin_two = Dictionary::Definition.new("sleight of hand") tricky_wrd = Dictionary::Word.new("prestidigitation", "noun", defs) |
Ruby的集合运算能力也相当简单-你是否看到在Word类中的add_definition和add_synonym方法?
责编:罗莉
课程专业名称 |
讲师 |
课时 |
查看课程 |
---|
课程专业名称 |
讲师 |
课时 |
查看课程 |
---|
点击加载更多评论>>