ruby语言入门基础教程

http://tech.ddvip.com   2008年01月18日    社区交流

本文详细介绍ruby语言入门基础教程

  3. ruby中的实例变量,类变量,类方法

  实例变量:每个实例独享,变量名用@开头

  类变量:所有实例共享,变量名用@@开头,类似java里的static变量,但是在使用前必须要初始化。

  类方法:不需要通过实例对象来调用。类方法定义方式: 类名.方法名,如:

  ruby 代码

def StudentClass.student_count
puts "aaa"
end

  如果在外部调用一个类里的常量,需要用到域作用符号"::"

  4.ruby里的单例方法:给具体的某个实例对象添加方法,这个方法只属于这个实例对象的。这样的方法叫单例方法

  定义单例方法,首先要生成一个实例对象,其次要在方法名前加上一个对象名和一个点号(.)

  如:

  ruby 代码

class Person
def talk
puts "hi!"
end
end
p1 = Person.new
p2 = Person.new
def p2.talk #定义单例方法p2.talk
puts "Here is p2."
end
def p2.laugh
puts "ha,ha,ha..."
end
p1.talk
p2.talk
p2.laugh
输出结果为:
hi!
Here is p2.
ha,ha,ha...

  5.访问控制

  ruby 代码

  #访问控制

  #public , protected, private

  #public 方法,可以被定义它的类和其子类访问,可以被类和其子类的实例对象调用

  #protected 方法,可以被定义它的类和其子类访问,不能被类和其子类的实例对象调用,但是 可以在类和其子类中制定给实例对象

  #private 方法,可以被定义它的类和其子类访问,不能被类和其子类的实例对象调用,私有方法不能指定对象

#访问控制
#public , protected, private
#public 方法,可以被定义它的类和其子类访问,可以被类和其子类的实例对象调用
#protected 方法,可以被定义它的类和其子类访问,不能被类和其子类的实例对象调用,但是 可以在类和其子类中制定给实例对象
#private 方法,可以被定义它的类和其子类访问,不能被类和其子类的实例对象调用,私有方法不能指定对象
class Person
public
def talk
puts "public:talk"
end
def speak
"protected:speak"
end
def laugh
"private:laugh"
end
protected :speak
private :laugh
def useLaughTest(another)
puts another.laugh #这里错误,私有方法不能指定对象
end
def useSpeakTest(another)
puts another.speak #这里可以,,protected方法可以指定对象
end
end
class Student < Person
def useLaugh
puts laugh
end
def useSpeak
puts speak
end
end
p1 = Person.new
p1.talk
#p1.speak 实例对象不能访问protected方法
#p1.laugh 实例对象不能访问private方法
p2 = Student.new
p2.useLaugh
p2.useSpeak  

  输出结果为:

  public:talk

  private:laugh

  protected:speak

责编:豆豆技术应用

正在加载评论...