十五:单态方法
ruby是弱类型语言,没有重载,只有重写,所以没办法
显示出其多态性,但是,ruby具有单态方法,这意味着,从
某个共同的类衍生的多个对象可以拥有各自不同的方法
例如:
# 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
a = Man.new("a",6)
b = Man.new("b",7)
#下面这句是重写Man的sayname的方法
def b.sayname
puts "这是b的单态方法"
end
a.sayname
a.sayage
b.sayname
b.sayage
输出:
a
6
这是b的单态方法
7
十六:方法访问控制
ruby中只有方法,没有函数,每一个方法都是存在与类中。
那么如果不在任何类中定义方法,这个方法是属于那个类呢?
答案是Object类,理论上讲,这个方法是可以被所有
对象使用的,但是如果真是这样的话,就乱了,所以ruby将其实现为
Object类的私有方法,于是,它不能被对象使用:
例如:
#定义方法,为Object的私有方法
def my
puts "my love"
end
#调用上面的方法
my
#定义一个字符串对象
s = "good"
#尝试调用上面字符串对象的my方法
s.my
输出:
G:/Myeclipse20130521/helloruby/helloworld.rb:10:in `<main>': private method `my' called for "good":String (NoMethodError)
my love
十七:操作ie
# encoding: utf-8
require 'win32ole'
puts "开始打开浏览器"
ie = WIN32OLE.new('InternetExplorer.Application')
ie.visible = true
ie.gohome
# encoding: utf-8
require 'win32ole'
#创建ie浏览器对象
ie = WIN32OLE.new('InternetExplorer.Application')
#打开Ie
ie.visible = true
#导航到一个制定的页面
ie.navigate('http://localhost:8080/jsf/')
#sleep直到ie.busy为false页面完全载入为止
#ie.gohome
puts "chenchaoyang"
ie.Document.getElementById("supanccy:name").value = "coderlee"