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这辆车的车重是:1800KG4、代码块
语法:
{ #代码块内容 }
或者
do #代码块内容end
e.g.
def say puts "Hello" yield puts "Bye"endsay do puts "What U say?"end >>>>>>
Hello
What U say?Bye5、继承与构造方法
#直接上代码了 class Bird def initialize(leg,wing) @leg=leg @wing=wing endendclass Chick