HeadFIrst Ruby 第二章总结 methods and classes

前言

这一章讲了如何创建自己的 class,并且讲了在用 class 创建 object 的两个要素: instance variables 和 instance methods.和它们需要注意的一些问题.

创建 method 相关

问题1:括号 be or not be?

在 Ruby 中,如果需要创建的 method 包含参数,那么后面应该有“()” ;
如果不需要任何参数,则不需要加“()”,在调用函数的时候也不需要加.

问题2: local variable 和 instance variable 的区别

local variable:在定义的 method 范围之后,就 don't exisit 了
instance variable: 在定义的 class 的范围内都 exisit.

新知1:在 Terminal 中运行程序的另一种方法

特点:可以 load 这个 file 之后,然后进行交互的编程.

步骤:

  1. 在 Terminal 中输入 “irb -I ."
  2. 接着在提示下输入 "require xxx.rb"

新知2: atttribute accessor methods

定义:为了实现 encapsulation,如果想要给创建的 instance 传递参数的话,就需要通过 accessor methods 进行传递,它分为两类: attribute writer 和 attribute reader

attribute writer

定义:用于set an instance variable
惯例: attribute writer 的名字与 instance variable 的名字相同,结尾为 "=".
格式:

def my_attribute=(new_value)
@my_attribute = new_value
end

attribute writer

定义:用于 get the value of an variable back
格式:

def my_attribute
@my_attribute
end

attribute accessor

可以用

  • attr_writer :name
  • attr_reader :name
  • attr_accessor :name

代替 def 格式的代码,它们是 equivalent 的

转载于:https://www.cnblogs.com/FBsharl/p/10463251.html

HeadFIrst Ruby 第二章总结 methods and classes相关推荐

  1. 数学知识--Methods for Non-Linear Least Squares Problems(第二章)

    Methods for Non-Linear Least Squares Problems 非线性最小二乘问题的方法 2nd Edition, April 2004 K. Madsen, H.B. N ...

  2. 3-8《Ruby元编程》第二章对象模型

    <Ruby元编程> 第二章 对象模型 类定义揭秘inside class definitions: class关键字更像一个作用域操作符,核心作用是可以在里面随时定义方法. [].meth ...

  3. Ruby学习-第二章

    第二章 类继承,属性,类变量 1.如何声明一个子类 class Treasure < Thing 这样Thing类中的属性name,description都被Treasure继承 2.以下三种方 ...

  4. Effective C# 第二章:.Net资源管理(翻译)

    Chapter 2. .NET Resource Management 第二章:.Net资源管理 一个简单的事实:.Net应用程序是在一个托管的环境里运行的,这个环境和不同的设计器有很大的冲突,这就才 ...

  5. C++ API 设计 07 第二章

    第二章 品质 本章的目标是回答下面的问题:一个良好的API需要什么样的品质?大多数开发人员都同意,一个良好的API应该设计得很优雅,而且仍然非常容易使用.它应该在后台运行且使用起来让你觉得很惬意.这些 ...

  6. 图机器学习(Graph Machine Learning)- 第二章 图机器学习简介 Graph Machine Learning

    第二章 图机器学习简介 Graph Machine Learning 文章目录 第二章 图机器学习简介 Graph Machine Learning 前言 1. 环境要求Technical requi ...

  7. [转载]Programming MS Office 2000 Web Components第二章第三节

    第二章第三节 编程模型要点 现在总结一下我们对电子表格组件的介绍,我将讲述(电子表格)控件编程模型的各个要点,以便您了解如何运用这个控件,以及当您需要编写脚本来实现不同的功能时该如何去做.本节不是编程 ...

  8. Gradle2.0用户指南翻译——第二章. 概述

    翻译项目请关注Github上的地址: https://github.com/msdx/gradledoc 本文翻译所在分支: https://github.com/msdx/gradledoc/tre ...

  9. 第二章 Flask——Flask中的request

    第二章 Flask--Flask中的request 一.request.method 二.request.form 三.request.args 四.request.values 五.request. ...

  10. webrtc 入门第二章 音视频录制

    webrtc 入门第二章 音视频录制 一.介绍 1.媒体录制原理 ​ 在很多场景中回放音视频资源的需求是非常重要的例如会议,直播授课等.任何媒体形式的表情都可进行录制,如 ,,等.其中内容更加自由用户 ...

最新文章

  1. 2022-2028年中国ITO薄膜行业市场全景调查及投资前景趋势报告
  2. 0x12.基本数据结构 — 队列与单调队列
  3. oracle之报错:ORA-00054: 资源正忙,要求指定 NOWAIT
  4. 构建闭环式的研发运维体系----云效EDAS DevOps
  5. 如何使用 SAP Kyma 控制台手动发送 SAP Commerce Cloud Mock 应用暴露的事件
  6. DBGridEh使用指南
  7. [No0000E0]批量打开当前路径下的文件
  8. 1.分布式服务架构:原理、设计与实战 --- 分布式微服务架构设计原理
  9. 黑莓断网 思考 apn激活pdp整个过程
  10. 内网穿透,外网装逼:10分钟学会用花生壳实现从外网访问内网的web项目
  11. python用函数绘制椭圆_Python学习笔记——opencv绘制椭圆
  12. 数据结构:顺序表的就地逆置
  13. 计算机程序设计员英语单词,计算机程序设计员个人英文简历
  14. Mybatis的bind标签
  15. 如何理解一台服务器可以绑定多个ip,一个ip可以绑定多个域名
  16. 数学建模——多元统计分析例题及程序
  17. 为什么要关心分布式事务
  18. 转载:深度工作:充分使用每一份脑力
  19. Method threw ‘io.netty.util.IllegalReferenceCountException‘ exception.
  20. spring boot火车订票系统 毕业设计源码031012

热门文章

  1. config.guess: unable to guess system type、config.sub: missing argument
  2. LINUX编译spandsp
  3. 文字处理技术:空格压缩
  4. WEB服务器Nginx WINDOWS最简部署
  5. 空中照片:云层透过的阳光,双机同飞
  6. LINUX获得毫秒时间戳的代码
  7. 他对我有成见,怎么办
  8. 管理感悟:进步,体现在自己行为的改变
  9. html代码不安全,安全 – HTML编码是否会阻止各种XSS攻击?
  10. Abbirb120型工业机器人_你知道机器人有几种编程方式吗?