`
Supanccy2013
  • 浏览: 223998 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

ruby基础1-14(基本类型,类的基本使用)

    博客分类:
  • ruby
阅读更多
一:ruby重要特点
Ruby是解释型语言。(提高了调试速度,执行效率低)
变量没有类型 (错误检查功能也变弱了)
所有变量均无需声明即可使用
语法比较简单,类似 Algol
具有自动垃圾回收机制(能自动回收不再使用的对象)
纯粹的面向对象语言,基本的类型都是对象
迭代器功能可以将循环抽象化,使得代码更加简介
强大的字符串操作功能,和正则表达式检索功能
可以计算非常大的整数
可以直接访问操作系统(使用ruby可以进行操作系统编程)
可以对某对象添加方法
用模块进行混合插入
闭包,可以把某过程片段对象化,对象化后的该过程片段称为闭包
具有错误处理功能
动态加载(如果操作系统允许,可以在运行的时候读入对象文件

二:输出的三种方式
puts "One"   
print "two"  
printf "three"
puts "fout"  

输出结果:
One
twothreefout
可以得出结论:puts 换行,print不换行,printf不换行

三:单引号,双引号
一般情况下这两种引号通用,可以互相嵌套。
转义字符是:\
puts "hello world '"
puts 'hello world "'
puts 'supan said:"I \'love\' you"'

输出:
hello world '
hello world "
supan said:"I 'love' you"

四:连句
由上面的语句开一看到,每条语句都是占用一行,并且不用分号。
如果需要在一行上写多条语句,需要用分号隔开例如:
puts "chen"; puts "chao"; puts "yang"

输出:
chen
chao
yang

五:换行
puts 默认的会在打印的字符串后天添加一个换行符\n(如果要打印的字符后面已经有
换行符就不会添加,如果需要打印两个换行符需要添加两个\n\n)
print不会换行,printf也不会换行
puts "chenchaoyang"
puts "chenchaoyang\n"
puts "chenchaoyang\n\n"
puts "123456"

输出:
chenchaoyang
chenchaoyang
chenchaoyang

123456


六:连行符   \
当语句过长时会影响阅读,希望分成多行去写,但不希望语句逻辑
被中断,在这种情况下一种方式是用字符串连接符号连接语句,但是
字符串连接符属于运算符,因此字符串连接是消耗资源的,而连行符属于格式控制字符,
提倡使用
puts "chenchao
yang"
puts "chenchao\
yang"

输出:
chenchao
yang
chenchaoyang


七:注释符
两种:
单行:用#开头
多行:用=begin 开头 =end结束
puts "chenchaoyang a"
#puts "chenchaoyang a"
puts "chenchaoyang c"
=begin
puts "chenchaoyang"
puts "chenchaoyang"
puts "chenchaoyang"
puts "chenchaoyang"
puts "chenchaoyang"
=end
puts "chenchaoyang c"

输出:
chenchaoyang a
chenchaoyang c
chenchaoyang c

八:局部变量
ruby中的变量是不能脱离类而存在的,局部变量就是普通变量
以小写字母或下划线开头
局部变量在使用之前如果不被初始化将会出错
a = "chenchaoyang"
puts a
puts b
b = "chenchaoyang"
puts b

输出:
G:/Myeclipse20130521/helloruby/helloworld.rb:3:in `<main>': undefined local variable or method `b' for main:Object (NameError)
chenchaoyang

九:基本输入
ruby中使用gets方法来解决最基本的输入问题,例如
可以用a= gets来将用户输入的字符保存到局部变量a中
注意:ruby中使用=作为赋值符号
a = gets
puts a

输出:
在控制台输入“chenchaoyang"按下enter键
输出:chenchaoyang

十: 数字和字符串连接符
数字可以有前缀:
0表示8进制
0x表示16进制
0b表示2进制
puts 0
puts 1
puts 1.5
puts 0.62
puts 0123
puts 0X5BC
puts 0b0011

输出:
1
1.5
0.62
83
1468
3
ruby中字符串连接符用+
a = "chenchao"
b = "yang"
puts a + "&" + b
输出:chenchao&yang


十一:类
ruby是面向对象比java更纯粹,一切都是对象,所以ruby中
没有函数,只有方法。bugy中所有的变量,常量都不能脱离
类而存在,故而,在介绍了最基本的知识之后,紧要的就要
介绍类。
ruby中类名用大写字母开头,
实例属性以@开头,变量和方法名应该用小写字母或下划线开头
假设要定义的类名为"Man"包含 name 和age两个实例属性
sayname sayage方法,
定义类的方法使用def……end 语句块如果方法有返回值可以
return语句,类的初始化用innitialize方法,相当于java和c++
中的构造函数
在ruby中所有类的父类是Object

十二:类的基本使用
实例化类的时候用 类名.new()
属性可以不定义
例如:
#类的开头用class关键字
class Man
#def开头的表示的类的方法,这个innitialize方法是构造方法
def initialize(name,age)
   #name表示的是类的属性
   @name = name
   #age表示的是类的属性
   @age = age
end
#定义类的方法
def sayname
   puts @name
end
#定义类的方法
def sayage
   puts @age
end
#类的结束用end关键字
end

puts "11111111"
#实例化类的时候用new关键字
m = Man.new("chenchaoyang",27)
m.sayname
m.sayage
n = Man.new("chenziyang",35)
n.sayname
n.sayage
puts "222222"

输出:
11111111
chenchaoyang
27
chenziyang
35
222222

十三:类的继承
用关键符号: <
例如:我们要定义一个Chinese类继承上面的Man类
注意:ruby文件中包含中文需要在文件的第一行中
写上:# encoding: utf-8
增加一个love方法:
# encoding: utf-8
class Man
def initialize(name,age)
   @name = name
   @age = age
end
def sayname
   puts @name
end
def sayage
   puts @age
end
end

puts "11111111"
m = Man.new("chenchaoyang",27)
m.sayname
m.sayage
n = Man.new("chenziyang",35)
n.sayname
n.sayage
puts "222222"

class Chinese < Man
   def love
       puts "我非常爱我的妈妈"
   end
end
chenchaoyang = Chinese.new("chenchaoyang",27);
chenchaoyang.sayname
chenchaoyang.sayage
chenchaoyang.love


输出:
11111111
chenchaoyang
27
chenziyang
35
222222
chenchaoyang
27
我非常爱我的妈妈


十四:类的继承,在子类中调用父类的同名函数用super关键字
注意如果要调用父类中的方法含有参数用super(参数)的方式调用
例子:
# encoding: utf-8
class Man
def initialize(name,age)
   @name = name
   @age = age
end
def sayname
   puts @name
end
def sayage
   puts @age
end
end
puts "11111111"
m = Man.new("chenchaoyang",27)
m.sayname
m.sayage
n = Man.new("chenziyang",35)
n.sayname
n.sayage
puts "222222"

class Chinese < Man
    def sayname
       super
       puts "这是从子类的方法中打印出来的"
    end
end
chenchaoyang = Chinese.new("chenchaoyang",27);
chenchaoyang.sayname
chenchaoyang.sayage

输出:
11111111
chenchaoyang
27
chenziyang
35
222222
chenchaoyang
这是从子类的方法中打印出来的
27



待续。。。。。。。。。。。






分享到:
评论

相关推荐

    Ruby基础知识-数据类型.pdf

    ### Ruby基础知识-数据类型 #### 一、概览 在Ruby语言中,数据类型是程序设计的基本组成部分。本文档旨在详细介绍Ruby支持的各种基本数据类型及其使用方法,包括但不限于Number(数值)、String(字符串)、Ranges...

    ruby-2.5.3-x64 下载

    "rubyinstaller-devkit-2.5.3-1-x64.exe"是Ruby安装程序的名称,它包含了Ruby解释器以及DevKit。RubyInstaller是Windows平台上用于安装Ruby的工具,它可以轻松地在Windows系统上搭建Ruby环境。DevKit则是一个配套...

    ruby培训---5天搞定之第1天1

    5. **理解Ruby的数据类型和变量**:学习Ruby中的基本数据类型,包括整数、浮点数、字符串和布尔值,以及如何声明变量,理解不同类型的变量(局部变量、实例变量、类变量和全局变量)及其作用域。 6. **运算符和...

    ruby+selenium-webdriver测试源代码003

    1. **Ruby基础知识**: - Ruby语法简洁明了,强调可读性和代码的自然性。 - 它支持多种编程范式,包括面向对象、函数式和过程式编程。 - 在Ruby中,一切都是对象,包括基本类型如整数、字符串和布尔值。 - 类和...

    ruby1-导出-1.pdf

    根据提供的文件内容,我们可以整理并深入探讨Ruby编程语言中的一些核心概念和技术要点: ### Ruby 数据类型及操作 ...通过深入了解这些基础知识,开发者可以更好地利用 Ruby 的强大功能来构建复杂的软件系统。

    Ruby高级编程教程-世界顶级高校教材(完整版827页)

    - 使用Ruby进行Web开发的基本流程。 - 常见Web框架(如Rails)的简介。 - **GUI应用开发** - Tk库的安装与使用。 - 创建简单的图形用户界面示例。 - **Windows平台上的Ruby** - Windows环境下Ruby的特殊配置...

    ruby-language-quickref.zip_About Language

    Ruby on Rails(Rails)则是在Ruby基础上构建的Web开发框架,它引入了许多创新的概念,如: 1. **ActiveRecord**:这是Rails中的ORM(对象关系映射)组件,将数据库操作与业务逻辑解耦,使得数据库操作更加便捷。 ...

    Ruby-一个Ruby的例子

    在Ruby中,一切都是对象,包括基本数据类型如数字、字符串和布尔值。例如,当你在Ruby中写下"hello",它实际上是一个String对象,你可以调用方法在它上面操作,如`"hello".upcase`会返回"HELLO"。 其次,Ruby的动态...

    RubyStudy-master-ruby学习笔记

    了解变量、数据类型、运算符、控制结构、函数和对象等基本概念。其次,选择合适的学习资源。有很多优秀的 Ruby 教程和书籍,例如《Ruby 编程语言》、《Ruby 元编程》等。这些资源可以帮助你快速掌握 Ruby 的基础知识...

    Ruby - Ruby for Rails

    #### 2.2 使用类组织对象 - **类定义**:学习如何定义类以及类的基本组成部分,如属性、方法等。 - **继承与多态**:介绍继承的概念及其在 Ruby 中的应用,以及多态性的实现方式。 - **封装与抽象**:讲解封装和抽象...

    红宝石之书:冒险的动手指南The Book Of Ruby: A Hands-On Guide for the Adventurous

    ### 二、Ruby基础 #### 2.1 基本语法 - **变量**:Ruby中的变量不需要声明类型,可以直接赋值使用。 - **数据类型**:包括字符串、整数、浮点数、数组、哈希等。 - **流程控制**:提供if/else语句、循环语句等控制...

    ruby-2.4.0.tar.gz

    1. 面向对象:Ruby是纯面向对象的语言,意味着所有数据都是对象,包括基本类型如整数和字符串。 2. 动态类型:变量的数据类型是在运行时确定的,不需要预先声明。 3. 自动内存管理:Ruby使用垃圾回收机制自动管理...

    Ruby 教程 The Book of Ruby

    - **ISBN-13**:978-1-59327-294-4 - **版权信息**:版权所有,未经允许不得以任何形式复制或传播。 #### 二、书籍概览与目标读者 - **简介**:《The Book of Ruby》是一本全面介绍Ruby编程语言的经典教程。本书...

    资源-ruby-ruby

    1. **面向对象**:Ruby是一种完全的面向对象语言,每一个数据都是一个对象,甚至基本类型如整数和字符串也是对象。它提供了丰富的类和模块系统,使得代码可以被组织得非常清晰。 2. **动态性**:Ruby支持动态类型,...

    Ruby 语言基础(入门推荐)

    1. **面向对象**:Ruby是纯面向对象的语言,这意味着每一个数据类型都是一个对象,包括基本类型如整数、字符串和布尔值。每个对象都有方法,使得编程更加灵活。 2. **动态类型**:在Ruby中,变量的类型是在运行时...

Global site tag (gtag.js) - Google Analytics