首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关于ruby继承的新手问题,FXRuby中的ruby对象

关于ruby继承的新手问题,FXRuby中的ruby对象
EN

Stack Overflow用户
提问于 2011-08-14 04:27:08
回答 1查看 114关注 0票数 0

首先,我为我糟糕的英语感到抱歉……我有点疑问……我正在阅读实用programmer..and的FXRuby我看到了这段代码

代码语言:javascript
运行
复制
require 'fox16'
include Fox
class HelloWindow < FXMainWindow
    def initialize(app)
        super(app, "Hello, World!" , :width => 200, :height => 100)
    end   

    def  create
      super
      show(PLACEMENT_SCREEN)
    end

end


app = FXApp.new
HelloWindow.new(app)
app.create
app.run

这是一个非常基础的example...actually,它是第一个example..but,我是如此的新手,以至于我不理解它:

app是一个FXAPP对象..现在,我创建一个HelloWindow对象并传递名为“FXApp”的应用程序对象。

到目前一切尚好

但是在书中写app.create I'm调用FXApp class...or中的"create“方法不是吗?.

为什么当我调用app.create..ruby调用时,HelloWindow?..app内部的create方法是一个与HelloWindow类非常不同的对象,我可以调用anscestor方法(就像我使用SUPER...时一样),但不能以相反的方式调用。

为什么他们不这样叫呢?

代码语言:javascript
运行
复制
helloobject=HelloWindow.new(app)
helloobject.create

通过这种方式,我调用了HelloWindows class..and中的create方法,它是FXMainWindows的后代

我希望你能理解(很抱歉我的英语不好),并能帮助我。

非常感谢

EN

回答 1

Stack Overflow用户

发布于 2011-08-14 05:14:02

我对FXRuby一无所知,但我会回答你们关于Ruby端的问题。

当Ruby执行app.create时,它将在FXApp类中调用create方法,因为app的类型是FXApp (假设没有为singleton class of app定义create方法)。

当您调用app.create时,FXApp类中可能有一些代码在应用程序中的所有窗口上调用create,因此这就是您的窗口的create函数被调用的方式。如果您想真正了解窗口的create函数是如何调用的,请尝试将raise "hello"添加到该函数中,看看是否可以获得异常的回溯。

我真的不知道您最后一个问题的答案,因为它与FXRuby库的设计有关。但从概念上讲,调用app.createwindow.create似乎是截然不同的两件事。如果你想运行应用程序,你应该先创建它。仅仅创建一个窗口是不够的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7053064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档