让我们来定义一个类,类名是Person,类名首字母要大写;属性有姓名@name、年龄@age、国籍@motherland,实例变量用@开头; 方法有一个,叫talk, 方法名和参数名应该用一个小写字母开头或者用一个下划线开头,看程序 E4.3-1.rb 。#=>my name is kaichuan, age is 20
I am a Chinese.
my name is Ben, age is 18
I am a foreigner.
@age.to_s的含义是:将数@age转换为字符串。
initialize是初始化方法,相当于Java的构造器。参数age有一个缺省值18,可以在任何方法内使用缺省参数,而不仅仅是initialize。如果有缺省参数,参数表必须以有缺省值的参数结尾。
ruby 代码
- class Person
- def initialize( name, age=18 )
- @name = name
- @age = age
- @motherland = "China"
- end
- def talk
- puts "my name is "+@name+", age is "+@age.to_s
- if @motherland == "China"
- puts "I am a Chinese."
- else
- puts "I am a foreigner."
- end
- end
- attr_writer :motherland
- end
- p1=Person.new("kaichuan",20)
- p1.talk
- p2=Person.new("Ben")
- p2.motherland="ABC"
- p2.talk
attr_writer :motherland 相当于
def motherland=(value)
return @motherland =value
end
|
attr_ reader :motherland 相当于
def motherland
return @motherland
end
|
这就是我们熟悉的getter 和setter 方法的简写形式。你不熟悉也不重要。
attr_accessor :motherland 相当于attr_reader:motherland; attr_writer :motherland
这个Person类可以talk,如何实现的?写Person类的人知道,其它的类不知道,只是调用而已。封装完成了隐藏实现。
完整阅读,请看我写的 Ruby语言中文教程all in one
分享到:
相关推荐
httpclient4.3的二次封装,解决了代理问题、多线程问题、SSL问题、通用的get、post请求
httpclient4.3 封装工具类.zip
Easy Sysprep系统封装工具(简称ES)是IT天空出品的一款 Windows 操作系统封装部署辅助工具。它以微软系统准备工具 sysprep.exe 程序为核心,以微软官方文档为理论依据,结合广大系统工程师、系统维护人员、系统爱好...
KF接线端子.PcbDoc 电感.PcbDoc 电容.PcbDoc 电位器.PcbDoc 电阻.PcbDoc 二极管+整流桥.PcbDoc 连接器.PcbDoc 通讯接口.PcbDoc 音频接口+电源接口.PcbDoc
4.3寸电容触摸屏封装库.zip
4.3寸RGB(480x272)液晶屏资料包括模块AD封装库+数据手册+硬件参考设计原理图, 触摸芯片GT911等资料。
ATK OV2640 OV5640摄像头模块4.3寸RGB屏 7寸RGB屏SIM900A GSM模块AD集成封装库(原理图库+PCB封装库).zip ATK-4.3' TFTLCD电容触摸屏模块_V1.2.IntLib ATK-4342 4.3寸RGB屏模块封装库.IntLib ATK-7016&7084 7寸RGB...
4.3寸电容触摸屏封装库 ATK-4342 4.3寸RGB屏模块封装库 ATK-7016&7084 7寸RGB屏模块封装库 ATK-NEO-6M GPS模块封装库 ATK-OV2640摄像头模块封装库 ATK-OV5640摄像头模块封装库 ATK-SIM900A GSM模块封装库 MP3模块...
LSW DIP-CHERRY、SW 3*6*4.3-S-W、SW 10x10x9-5Key-LS、SW DIP-3*6*4.3、SW DIP-3*6*4.3_V、SW DIP-3*6*5、SW DIP-3*6*5_V、SW DIP-6*6*4.3、SW DIP-6*6*4.3_V、SW DIP-6*6*5、SW DIP-6*6*5_V、SW DIP-6*6*6、SW DIP...
按键类封装表贴直插按钮按键AD封装库(ALTIUM 3D PCB封装库) Component Count : 105 Component Name ----------------------------------------------- LSW DIP-CHERRY TS-027A TS4x4x1.5 TS4x4x1.6 TS4x4x1.7 TS...
ATK-4342 4.3寸RGB屏模块封装库.IntLib ATK-7016&7084 7寸RGB屏模块封装库.IntLib ATK-NEO-6M-V2.3.IntLib ATK-OV2640摄像头模块.IntLib ATK-OV5640摄像头模块封装库.IntLib ATK-SIM900A GSM模块封装库.IntLib MP3...
4.3' TFTLCD电容触摸屏模块(硬件参考设计原理图+AD封装库+软件源码工程+应用技术文档), 1,ATK-4.3' TFTLCD电容触摸屏模块原理图 2,程序源码 3,其他资料 ATK-4.3' TFTLCD 模块使用说明(战舰V2&Mini V3)_AN1413....
4.3寸RGB(800x480)液晶屏资料包括模块AD封装库+数据手册+硬件参考设计原理图
1-原理图_封装库_尺寸图 2-配套程序 3-参考资料 4.3液晶模块与各开发板的接线方式.xls 4.3-58 SPEC-180616.pdf 4.3寸液晶屏数据手册.pdf F043A11-601_Approval Product Specification_V2.1.pdf 【电容屏IC】GT5688 ...
4.3 封装..................................................................................................................................33 4.4 继承......................................................
1,ALIENTEK阿波罗STM32F767开发板及模块元器件封装库,3.5'TFTLCD模块封装库,4.3寸电容触摸屏封装库,ATK-4342 4.3寸RGB屏模块封装库,ATK-7016&7084 7寸RGB屏模块封装库,ATK-NEO-6M GPS模块封装库,ATK-OV2640...
常用按键按钮Altium封装库AD三维视图PCB封装库(2D3D封装库),封装列表如下: Component Count : 105 Component Name ----------------------------------------------- LSW DIP-CHERRY TS-027A TS4x4x1.5 TS4x4x...
4.3寸电容触摸屏封装库 ATK-4342 4.3寸RGB屏模块封装库 ATK-7016&7084 7寸RGB屏模块封装库 ATK-NEO-6M GPS模块封装库 ATK-OV2640摄像头模块封装库 ATK-OV5640摄像头模块封装库 ATK-SIM900A GSM模块封装库 MP3模块...
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端...