1. ruby 类学习 属性 方法
main.rb:
puts ("Hello World2")
require "person.rb"
persion = Person.new("mjp", "male", 28);
puts (persion.show);
persion.set_info("mojianpo");
puts (persion.info)
--------------------------------------------
person.rb:
class Person
attr:info,true;
def initialize(name,sex,age)
@name=name;
@sex=sex;
@age=age;
end
def show()
return "name:#{@name};\tsex:#{@sex};\tage:#{@age}";
end
def set_info(info)
return @info = info
end
end
----------------------------------------------
输出结果:
Hello World2
name:mjp; sex:male; age:28
mojianpo
---------------------------------------------
我们可以使用Person.new方法来创建一个Person类的实例对象。以@打头的变量是实例变量,
他们从属于某一实例对象,Ruby中实例变量的命名规则是变量名以@开始,您只能在方法内部使用它。
initialize方法使对象变为“就绪”状态,initialize方法是一个特殊的方法,这个方法在构造实例对象时会被自动调用。
对实例进行初始化操作时,需要重定义initialize方法。类方法new的默认的行为
19
就是对新生成的实例执行initialize方法,传给new方法的参数会被原封不动地传给initialize方法。
另外,若带块调用时,该块会被传给initialize方法。因此,不必对new方法进行重定义。
在Ruby中,只有方法可以操作实例变量,因此可以说Ruby中的封装是强制性的。在对象外部不可以直接访问,只能通过接口方法访问。
在Ruby中,一个对象的内部属性都是私有的。
以使用attr控制符来控制变量是否可读写。attr 只能带一个符号参数, 第二个参数是一个 bool 参数,用于指示是否为符号参数产生写方法。
它的默认值是 false,只产生读方法,不产生写方法。
下面的例子重定义类中的方法meth1,
class Test
def meth1
puts "This is meth1"
end
end
a = Test.new
a.meth1
class Test
def meth1
puts "This is new meth1"
end
end
a. meth1
执行结果为:
This is meth1
This is new meth1
重定义同一个类时,意味着对原有定义进行补充,不会覆盖原来的定义。而重定义方法时,则会覆盖原有定义。
分享到:
相关推荐
ruby笔记1ruby笔记1ruby笔记1ruby笔记1ruby笔记1ruby笔记1
Ruby学习笔记 01 类的属性与方法 02 访问控制 03 Container(Array/Hash) 04 Iterator 05 简单数据类型 06 范围 07 方法 08 条件控制 09 异常处理
ruby基础笔记,自学笔记,ruby基础语法非常全面ruby基础笔记,自学笔记,ruby基础语法非常全面
ruby初学笔记ruby初学笔记ruby初学笔记ruby初学笔记ruby初学笔记
这个暑假回家没事干闲...恩,废话就少提,下面我学习Ruby的各个部分。其中Ruby风格这一部分是开放的,因为我暂时还没有形成自己的风格。我用xmind来记笔记,因此我只是把笔记搬到博客上,看看下面的图。好有爱啊!!!
ruby笔记3ruby笔记3ruby笔记3ruby笔记3ruby笔记3ruby笔记3
Ruby 方法、类 : Ruby 方法、类 ruby-9-method.mp4 ruby-9-method.mp4
ruby笔记2ruby笔记2ruby笔记2ruby笔记2ruby笔记2
ruby学习笔记....................
这个笔记里包含了ruby的整型,字符串,浮点数,布尔等基础数据类型,还有数组,哈希hash的用法, 类的定义,函数方法,以及对象定义,其他高级用法解释,除了笔记记录的语法糖之外,还包含了一些解释性的代码,帮助...
Ruby是一种纯粹的面向对象编程语言。它由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)创建于1993年。 您可以在 www.ruby-lang.org 的 Ruby 邮件列表上找到松本行弘(まつもとゆきひろ/Yukihiro ...
很好的ruby学习材料,ruby的入门有点难,比较繁琐,这本书很好的帮助大家开启ruby的大门
本文是一篇关于Redis全套学习笔记的文章,主要介绍了Redis的基础知识、数据结构、持久化、集群、高可用、性能优化等方面的内容。通过本文的学习,读者可以全面掌握Redis的使用和应用,提高自己的技术水平和实践能力...
ruby语言跟c#的一些重要差别在于: 1.ruby是动态语言,c#是静态语言–即对象在new出来以后,ruby还可以动态给对象实例添加一些属性或方法(javascript也是如此) 2.ruby中刻意弱化了变量类型这个概念,默认情况下变量/...
Ruby自学笔记,这是我在学习Ruby时的小结笔记,若对你有所帮助请给满星,谢谢!!!
Ruby语言个人学习小案例分享-Ruby类案例,适合初学者学习参考,附带源码在里面。
Ruby中机器学习的实用资源
近些日学习一下ruby方面的,顺便看看java方面的, 这个是Java JDK6的学习笔记电子版, 压缩包里包含两个文件, 一个是chm格式(这个还行吧),当然如果你喜欢PDF,你可使用ABC Amber CHM Converter转换一下就可以了,...
此文档我学习Ruby on Rails技术的综合 ,有读书笔记、心得自创教程一些问题解决经验统分门别类集技术的综合 ,有读书笔记、心得自创教程一些问题解决经验统分门别类集技术的综合 ,有读书笔记、心得自创教程一些问题...