Project1

标题: 脚本中的super def class self 都是指什么? [打印本页]

作者: OWOWOW    时间: 2010-7-29 08:03
标题: 脚本中的super def class self 都是指什么?
求教
作者: zhangbanxian    时间: 2010-7-29 08:11
父类同名方法
定义方法
定义类
执行的对象本身
作者: OWOWOW    时间: 2010-7-29 08:24
都怎么用?
作者: DeathKing    时间: 2010-7-29 09:01
super是调用父类的同名方法,同时可以传递参数。
def 为定义方法,语法为:def 方法名(参数列表)
class 可以定义类,语法为:class 类名 < 父类名 (继承是可选的)
同时class也是Object类(或许是其他类)提供的方法,用于返回一个对象所属的类(元编程·反射机制)
self返回当前对象。
  1. class Human # 定义一个Human类,类名必须大写
  2.   def initialize(name) # 定义initialize方法,参数为name,实例化对象的时候首先调用此方法
  3.     @name = name  # 实例变量的赋值
  4.   end   # 结束方法定义
  5. end

  6. class Student < Human #定义Student类继承Human类
  7.   def initialize(name, age)
  8.     super(name) # 调用父类即Human类的initialize方法,并传递参数name
  9.     @age=age
  10.   end
  11.   def self.hi  # 定义无须参数的hi方法,前面加一个self代表与当前对象(这个类)绑定成为一个类方法
  12.     p "hi"   # 输出hi
  13.   end
  14. end

  15. a_man = Student.new("Xiaoming",5) # 实例化对象
  16. a_man.class #=> Student
  17. a_man.class.super_class  #=>Human
复制代码





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1