感性的认识了一下ruby的类
class Song
#类变量
@@plays = 0
#构造函数
def initialize(name,artist,duration)
#实例变量
@name = name
@artist = artist
@duration = duration
end
def to_s
"Song: #@name--#@artist (#@duration) plays:#@@plays"
end
end
#类继承
class KaraokeSong < Song
#类方法
def self.getType
"KaraokeSongType"
end
def initialize(name,artist,duration,lyrics)
super(name,artist,duration)
@lyrics = lyrics
end
#重写
def to_s
super + " duration:#@duration"
end
#protected方法
protected
def nono
end
#private方法
private
def noop
"noop"
end
end
song = KaraokeSong.new("My Way", "Sinatra", 100 , "The Way....")
puts(song.to_s)
puts(KaraokeSong.getType)
分享到:
相关推荐
本文将深入探讨Ruby语言中的类变量、全局变量、实例变量,以及多态的概念,并结合Ruby编码规范来阐述如何有效地编写代码。 一、类变量 类变量在Ruby中以`@@`前缀表示,它们是属于类或模块的共享变量,不会被类的...
在Ruby语言中,类实例变量、类实例方法与类变量和类方法是构成面向对象编程模型的重要组成部分。它们各自有不同的用途和行为特性,下面详细介绍这些概念的区别以及它们的使用场景。 首先,类实例变量和类实例方法都...
attr_accessor :name, :age # 创建名为name和age的实例变量,并提供getter和setter方法 def initialize(name, age) @name = name @age = age end def introduce puts "My name is #{@name} and I am #{@age...
- 实例变量通常在类的方法内部定义,并且只对该对象的实例可见。 - **示例代码**: ```ruby class Customer def initialize(id, name, addr) @cust_id = id @cust_name = name @cust_addr = addr end def ...
- 变量:Ruby支持局部变量、实例变量、类变量和全局变量,源代码中会展示它们的用法和作用域。 - 数据类型:包括字符串、数字、布尔值、数组、哈希等,通过代码你可以看到它们的操作和转换方式。 - 控制结构:如...
- **变量类型**:介绍 Ruby 中不同类型的变量,如局部变量、实例变量、类变量等。 - **变量作用域**:讲解变量的作用域规则,包括局部作用域、块作用域、类作用域等。 - **动态类型**:探讨 Ruby 的动态类型系统,...
Ruby中的类可以用来创建新的对象,而对象则是类的实例。继承允许一个类从另一个类继承属性和方法,这样可以避免重复代码并实现代码重用。封装是指将数据和操作这些数据的方法结合在一起,保护内部状态不受外部干扰。...
#### 2.2 函数与方法 - **定义函数**:使用`def`关键字定义函数。 - **方法调用**:Ruby中的函数称为“方法”,可以通过对象调用。 #### 2.3 面向对象编程 - **类与对象**:类是对具有相同属性和行为的对象的抽象,...
- 局部变量、实例变量、类变量、全局变量和常量的定义及其使用场景。 - 与定义相关的操作,如alias、undef和defined?等。 #### 四、基本类型 - **数组(Array)**:数组的创建和操作方法。 - **哈希(Hash)**:键值...
- 变量:Ruby中的变量分为局部变量、实例变量、类变量和全局变量,它们都有特定的标识符前缀。 - 数据类型:包括字符串、整数、浮点数、布尔值、数组、哈希、符号和nil。 - 控制结构:如条件语句(if/else)、...
在Ruby中,可以通过定义类和实例变量来实现封装。例如,如果有一个`Person`类,可以定义实例变量`@name`、`@age`等,并提供方法来访问这些变量,而不是直接允许外部代码直接修改这些变量。 - **继承**:继承使得一个...
- **实战导向**:本书通过丰富的实例演示Ruby的各项功能,帮助读者在实践中学习。 - **深入浅出**:作者Huw Collingbourne以其丰富的教学经验和精湛的技术功底,将复杂的概念解释得通俗易懂。 - **全面覆盖**:不仅...
- 函数与方法:Ruby中的函数被称为方法,可以定义在类或模块中,支持块(block)和 Proc 对象。 2. **面向对象编程(OOP)** - 类与对象:Ruby是纯面向对象的语言,一切皆对象。你可以创建自定义类来封装数据和...
- **对象操作**:类定义、实例化、继承等。 - **错误处理**:异常抛出与捕获等。 ### 热门技巧及其他 除了基本的功能之外,Ruby还提供了一些实用技巧,例如: - **符号**:一种特殊的轻量级数据类型,用于表示常量...
例如,`class_eval` 和 `instance_eval` 方法允许在运行时添加或修改类和实例的方法。 7. **Gem 包管理**:虽然在 1.8.6 时代,RubyGems 已经存在,但当时包管理和依赖关系解决不如现在的版本那么成熟。安装和管理...
Ruby中的变量分为局部变量、实例变量、类变量和全局变量,它们分别以不同的符号开头,如`@`表示实例变量,`@@`表示类变量,`$`表示全局变量。此外,Ruby支持块、Proc和Lambda,这些都是函数式编程的重要元素,可以...