Ruby 教程 之 Ruby 面向对象 12

简介: Ruby 面向对象

Ruby 教程 之 Ruby 面向对象 12

Ruby 面向对象

Ruby 是纯面向对象的语言,Ruby 中的一切都是以对象的形式出现。Ruby 中的每个值都是一个对象,即使是最原始的东西:字符串、数字,甚至连 true 和 false 都是对象。类本身也是一个对象,是 Class 类的一个实例。本章将向您讲解所有与 Ruby 面向对象相关的主要功能。

类用于指定对象的形式,它结合了数据表示法和方法,把数据整理成一个整齐的包。类中的数据和方法被称为类的成员。

类常量

您可以在类的内部定义一个常量,通过把一个直接的数值或字符串值赋给一个变量来定义的,常量的定义不需要使用 @ 或 @@。按照惯例,常量的名称使用大写。

一旦常量被定义,您就不能改变它的值,您可以在类的内部直接访问常量,就像是访问变量一样,但是如果您想要在类的外部访问常量,那么您必须使用 classname::constant,如下面实例所示。

实例

!/usr/bin/ruby -w

定义类

class Box
BOX_COMPANY = "TATA Inc"
BOXWEIGHT = 10

构造器方法

def initialize(w,h)
@width, @height = w, h
end

实例方法

def getArea
@width * @height
end
end

创建对象

box = Box.new(10, 20)

调用实例方法

a = box.getArea()
puts "Area of the box is : #{a}"
puts Box::BOX_COMPANY
puts "Box weight is: #{Box::BOXWEIGHT}"

尝试一下 »
当上面的代码执行时,它会产生以下结果:

Area of the box is : 200
TATA Inc
Box weight is: 10
类常量可被继承,也可像实例方法一样被重载。

目录
相关文章
|
机器学习/深度学习 人工智能 自然语言处理
springboot基于人工智能和自然语言理解技术的医院智能导医系统源码
智能导诊系统可为患者提供线上挂号智能辅助服务,患者根据提示手动输入自己的基本症状,通过智能对话方式,该系统会依据大数据一步步帮助患者“诊断”,并最终推荐就医的科室和相关专家。患者可自主选择,实现“一键挂号”。这一模式将精确的导诊服务前置,从源头上让医疗服务更高效。
673 2
|
编解码 编译器
项目实战——Qt实现FFmpeg音视频转码器(一)
项目实战——Qt实现FFmpeg音视频转码器(一)
514 0
|
域名解析 网络协议 安全
信息收集的工具你听过几种(盘点信息收集)
信息收集的工具你听过几种(盘点信息收集)
信息收集的工具你听过几种(盘点信息收集)
|
机器学习/深度学习 人工智能 自然语言处理
如何使用ChatGPT制作免费的数字人
如何使用ChatGPT制作免费的数字人
506 0
|
1月前
|
安全 数据安全/隐私保护
阿里云账号注册流程图、实名认证及账号问题解答(个人账号和企业账号)
2025年阿里云账号注册仅需手机号接收验证码,支持个人与企业用户通过官网或App快速注册。注册后需实名认证方可购买产品,推荐支付宝一键认证。一个手机号最多注册6个账号,遗忘密码可凭手机号找回。
442 0
|
关系型数据库 MySQL
Mysql中count(1)、count(*)以及count(列)的区别
Mysql中count(1)、count(*)以及count(列)的区别
348 0
uniCloud 的 schema2code 【实用教程】
uniCloud 的 schema2code 【实用教程】
339 0
|
编解码 Python Windows
Python写入文件报错‘gbk’ codec can’t encode character的解决办法
Python写入文件报错‘gbk’ codec can’t encode character的解决办法
783 2
|
Java 数据库连接 数据库
【MyBatis】tkMapper 插件
【1月更文挑战第14天】【MyBatis】tkMapper 插件