`
凌川__
  • 浏览: 83831 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

4.3 封装

阅读更多

让我们来定义一个类,类名是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 代码
  1. class  Person   
  2.   def  initialize( name, age=18 )   
  3.     @name = name   
  4.     @age = age   
  5.     @motherland = "China"  
  6.   end  #初始化方法结束    
  7.   def  talk   
  8.     puts "my name is "+@name+", age is "+@age.to_s   
  9.     if  @motherland == "China"  
  10.       puts "I am a Chinese."  
  11.     else  
  12.       puts "I am a foreigner."  
  13.     end  
  14.   end  # talk方法结束   
  15.   attr_writer :motherland  
  16. end   # Person类结束   
  17. p1=Person.new("kaichuan",20)   
  18. p1.talk   
  19. p2=Person.new("Ben")   
  20. p2.motherland="ABC"  
  21. 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 封装工具类

    HttpClient 4.3封装工具类支持配置HTTP代理或SOCKS代理,包括设置代理的主机名、端口号,以及代理认证等。这样,即使在需要代理的网络环境中,也能正常发起HTTP请求。 2. **多线程问题**:在处理大量并发请求时,...

    httpclient4.3 封装工具类.zip

    这个压缩包“httpclient4.3 封装工具类.zip”很可能包含了一些预先封装好的工具类,用于简化使用HttpClient进行网络请求的过程。以下是一些关于HttpClient 4.3以及如何封装工具类的关键知识点: 1. **HttpClient ...

    IT天空出品系统封装工具Easy Sysprep v4.3.29.602

    Easy Sysprep系统封装工具(简称ES)是IT天空出品的一款 Windows 操作系统封装部署辅助工具。它以微软系统准备工具 sysprep.exe 程序为核心,以微软官方文档为理论依据,结合广大系统工程师、系统维护人员、系统爱好...

    3Dpcb. 部分元件的ad封装库

    KF接线端子.PcbDoc 电感.PcbDoc 电容.PcbDoc 电位器.PcbDoc 电阻.PcbDoc 二极管+整流桥.PcbDoc 连接器.PcbDoc 通讯接口.PcbDoc 音频接口+电源接口.PcbDoc

    4.3寸电容触摸屏封装库.zip

    本压缩包文件“4.3寸电容触摸屏封装库.zip”提供了与该尺寸触摸屏相关的硬件设计资源,包括STM32微控制器的集成、触摸屏的AD转换以及PCB布局等关键知识点。 首先,我们要了解的是STM32,这是一款基于ARM Cortex-M...

    4.3寸RGB(480x272)液晶屏资料包括模块AD封装库+数据手册+硬件参考设计原理图.zip

    这份资料包涵盖了4.3英寸RGB液晶显示屏的全方位技术信息,是进行硬件设计和开发的重要参考资料。以下是关于这些内容的详细解释: 1. **4.3寸RGB液晶屏**:RGB液晶屏指的是采用红绿蓝三原色像素点组成显示画面的液晶...

    ATK OV2640 OV5640摄像头模块4.3寸RGB屏 7寸RGB屏SIM900A GSM模块AD集成封装库(原理图库+PCB封装库).zip

    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...

    GC1054 Datasheet release V1.0.pdf

    ##### 4.3 封装规格 (单位:mm) 封装规格包括 CSP 封装的关键尺寸参数,例如引脚间距、封装厚度等。 #### 五、光学规格 GC1054 的光学规格包括光学中心、读出位置、像素阵列、镜头主光线角度 (CRA) 和颜色滤波器...

    STM32F750核心板开发板PDF原理图元器件封装库+ALTIUM集成封装库+Protel99se原理图PCB库文件.zip

    4.3寸电容触摸屏封装库 ATK-4342 4.3寸RGB屏模块封装库 ATK-7016&7084 7寸RGB屏模块封装库 ATK-NEO-6M GPS模块封装库 ATK-OV2640摄像头模块封装库 ATK-OV5640摄像头模块封装库 ATK-SIM900A GSM模块封装库 MP3模块...

    DS_NUC442_Series_EN_Rev1.09.pdf

    #### 4.3 封装描述(Package Description) 文档详细描述了 NUC442 系列微控制器的不同封装类型,包括 LQFP64、LQFP100、LQFP128 和 LQFP144 等,每种封装都有其独特的引脚布局和电气特性。 ### 五、模块图(Block...

    按键按钮封装PCB文件3D封装AD库

    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...

    SSH+JBPM4.3的整合 JBPM4.3

    通过SSH的集成,我们可以将这些复杂的业务逻辑封装起来,使得Web应用更加模块化,同时保持良好的可扩展性和维护性。 总的来说,SSH+JBPM4.3的整合使得开发者能够在一个统一的框架下处理业务逻辑和流程管理,提高...

    GC2755datasheet

    ##### 4.3 封装规格 封装规格给出了传感器的具体尺寸参数,如长度、宽度和厚度等,这对于选择合适的安装空间非常重要。 #### 五、光学规格 GC2755的光学规格是评估其成像质量的关键指标,主要包括: ##### 5.1 ...

    C++大学自学教程(第7版)

    #### 4.3 封装与多态 - **封装**:封装是隐藏对象的具体实现细节,只暴露必要的接口给外部。 - **多态**:多态允许子类重写父类的方法,从而表现出不同的行为。 ### 5. 模板 #### 5.1 模板的概念 - **模板概述**:...

    Head First Python

    #### 4.3 封装 - **封装**:隐藏对象内部实现细节,仅对外暴露必要的接口。 #### 4.4 多态 - **方法重写**:子类可以覆盖父类的方法。 - **方法重载**:在同一类中定义同名但参数不同的方法。 ### 五、异常处理与...

    GC0409 datasheet

    ##### 4.3 封装规格(单位:mm) - **宽度**:4.9 x 4.9 mm - **厚度**:0.8 mm - **焊球间距**:0.5 mm #### 五、光学规格 ##### 5.1 光学中心(单位:μm) - **水平方向**:400.0 ± 3.0 μm - **垂直方向**:240.0 ...

    表贴直插轻触开关轻触按键按钮Altium封装库三维视图2D3D封装库原理图库+PCB封装库(AD集成库).zip

    表贴直插轻触开关轻触按键按钮Altium封装库三维视图2D3D封装库原理图库+PCB封装库(AD集成库) 3D封装列表: Component Count : 62 Component Name ----------------------------------------------- DIP-3X6X4.3 ...

    嵌入式系统-基于SEP3203处理器的应用

    **4.3 封装与芯片的开发应用** - **封装**: 描述了SEP3203的不同封装形式及其适用场景。 - **开发应用**: 提供了一些基于SEP3203的实际案例,帮助开发者更好地理解和应用该芯片。 #### 五、调试原理 **5.1 调试...

    4.3寸RGB(800x480)液晶屏资料包括模块AD封装库+数据手册+硬件参考设计原理图.zip

    这份资料包是针对一款4.3英寸RGB液晶屏的完整开发资源,主要包含以下几个关键部分: 1. **4.3寸RGB(800x480)液晶屏**:这款屏幕具有800像素宽度和480像素高度的分辨率,适合作为小型设备或嵌入式系统的显示组件。...

Global site tag (gtag.js) - Google Analytics