博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ruby学习札记(四) 类 函数 代码块
阅读量:4884 次
发布时间:2019-06-11

本文共 1828 字,大约阅读时间需要 6 分钟。

1、关键字:

追加类——类中的方法可在的同名类文件中追加

嵌套类——类中可嵌套类,也可在外部定义嵌套类

特殊类——可为对象添加单独的类,以定义特殊的方法和属性(相应的有特殊方法)

类方法——顾名思义,通过类方式调用的方法,非对象方法

#追加类class Animal  def put    puts "这是Put方法"  end  def Animal.show    puts "这是Animal类的Show方法"  endendclass Animal  def show    puts "这是show方法"  endenda=Animal.newa.puta.show#嵌套类class Animal::Head  def put    puts "这是Head类的put方法"  endendh=Animal::Head.newh.put#特殊类class<

2、在程序文件顶层定义的实例变量对整个应用程序中顶层的表达式和函数都有效;

在类和模块中定义的实例变量可以被当前类或模块中的表达式访问;

在类方法中声明的实例变量可以被当前类下的所有方法使用;  

类变量可以在各个类之间共享数据;

class Person  def setName(name)    @name=name  end    def setAge(age)    @age=age  end    def setIsMale(isMale)  @isMale=isMale  end  def say    sex=@isMale?"小男孩":"小女孩"    puts "大家好,我叫#{@name},我是一个#{@sex},我今年#{@age}岁"  endendz=Person.newz.setName("小张")z.setAge(5)z.setIsMale(true)z.say

3、属性定义标识符

#attr:根据布尔型数据key的值,定义一个可读写的属性;#attr_reader:定义一个或多个只读的属性;#attr_writer:定义一个或多个只写的属性;#attr_accessor:定义一个或多个可以读写的属性;
class Roadster  def init    @brand="BYD"    @color="黄色"    @weight="1800KG"    @F_zero="210km/h"  end  def brand    @brand  end  def color    @color  end  def weight    @weight  end  def F_zero    @F_zero  end  attr_accessor:color  attr_reader:weight,:F_zeroenddef showCar(car)  puts "这辆车的品牌是:"+car.brand  puts "这辆车的颜色是:"+car.color  puts "这辆车的最高时速是:"+car.F_zero  puts "这辆车的车重是:"+car.weightendroadster=Roadster.newroadster.initshowCar(roadster)roadster.color="红色"showCar(roadster) >>>>>>

这辆车的品牌是:BYD

这辆车的颜色是:黄色
这辆车的最高时速是:210km/h
这辆车的车重是:1800KG
这辆车的品牌是:BYD
这辆车的颜色是:红色
这辆车的最高时速是:210km/h
这辆车的车重是:1800KG

4、代码块

语法:

{  #代码块内容  }

或者

do    #代码块内容end

e.g.

def say  puts "Hello"  yield  puts "Bye"endsay do  puts "What U say?"end >>>>>>

Hello

What U say?
Bye

5、继承与构造方法

#直接上代码了 class Bird  def initialize(leg,wing)    @leg=leg    @wing=wing  endendclass Chick

  

  

  

  

  

  

 

  

转载于:https://www.cnblogs.com/ranlx/p/3191007.html

你可能感兴趣的文章
图标素材网站收集
查看>>
sublime Text3 多个浏览器预览快捷键
查看>>
Parco_Love_gcd
查看>>
CS2312 Lecture 2
查看>>
POJ 2249 Binomial Showdown
查看>>
基于fis3的组件可视化道路
查看>>
SQL计算出百分比
查看>>
get_included_files
查看>>
SDOI2018:原题识别
查看>>
BZOJ4209 : 西瓜王
查看>>
JDK8 日期格式化
查看>>
推荐一个不错的国外html5模板网站
查看>>
树状数组
查看>>
Oracle 专用模式(DEDICATED) 和 共享模式(SHARE)
查看>>
div居中的完美解决方案!
查看>>
高并发量网站解决方案
查看>>
读《数学之美》
查看>>
单元測试中 Right-BICEP 和 CORRECT
查看>>
JavaScript闭包
查看>>
PCB genesis方槽加内角槽孔实现方法
查看>>