黑马,请教个问题

class AAA
def method1----------------------实例方法
 puts "method1"
end
 
def self.method2---------------类方法
 puts ""
end
 或者
 def AAA.method2
  puts ""
 end
end
调用的时候
AAA.method2
aaa=AAA.new
aaa.method1或者method("method1").call或者aaa.send("method1")
晕死,这样基础的。
是很基础没错。你自己看看你列全了 吗?他们的 根本区别你 说到了吗?
区别太多了,我觉得这样争下去没意思。我只是对我的问题,感到疑惑。而不是说我现在懂得了多少。
看谁能帮我解答一下
我不说了哎。自己好好理解下。
下次发贴的时候,代码尽量写到code里,工整点,格式清晰一些,别人看的 时候也 容易看,尽量写完整,自己试过了,验证过了在发。
那我请问管理员:
class AAA
def self.b
puts "b"
end
b
end
这个你怎么解释,是可以运行的。输出b
搞清楚了,答案是:
class AAA
def b
puts "b"
end
b
end
相当于
class AAA
def b
puts "b"
end
self.b
end
在这谢谢群里的张兄。
参考我另外一篇贴子,ruby基础中的 A.10 面向对象
请记住,"ruby中几乎一切是对象"--真的请记住--类的定义体本身也是对象--用这句话来去思考你上面所发现的问题!
黑马,一言点醒我很多,可能我现在理解的也不完全对。望指教。
class AAA
def b
puts "b"
end
b
end
类的定义体本身也是对象。
也就是说我的类AAA是Class的一个实例对象,在AAA中调用的方法都是必须在Class中已经定义过的,且是public的;否则会报不存在这一方法。
如上面的例子,我要在AAA中调用b的话,则需要在:
class Class
 def b
  puts "b in Class"
 end
end。
OK。谢谢黑马。
alanyuqiang是弱智啊.说这麽清楚还不明白.看了你的一些回复.连方法的接受者和发送者都搞不清楚.就单看你这一个回答我就知道你的水平怎么样.调用都没搞清楚.
ruby的语法很简单.了解个皮毛很容易.要真正用好不是一天天的事情.要学的东西很多.塌实点吧.....
引用:
原帖由 hello123 于 2008-7-28 19:43 发表
alanyuqiang是弱智啊.说这麽清楚还不明白.看了你的一些回复.连方法的接受者和发送者都搞不清楚.就单看你这一个回答我就知道你的水平怎么样.调用都没搞清楚.
ruby的语法很简单.了解个皮毛很容易.要真正用好不 ...