ruby基础15-17(方法单态,方法访问控制,watir操作ie)

十五:单态方法

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>':privatemethod`my'calledfor"good":String(NoMethodError)

mylove

十七:操作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"

相关推荐