【问题标题】:How to Appropriately Call a Static Method如何恰当地调用静态方法
【发布时间】:2014-09-26 16:49:41
【问题描述】:

对于以下代码(我已从上一个问题链接),我被告知将两个变量(dest_xdest_y)转换为 static 变量。我还制作了setDest 函数static。这很容易。但是,他说我需要确保从我的Model 类中适当地调用了这个函数。究竟是什么合适的方法来做到这一点?我知道静态函数不需要调用对象,但是在这种情况下,它将如何工作?

再次感谢,这是代码的链接。

GUI Making Arrays of Images that Move Using Mouse Event

【问题讨论】:

  • 你能写一段更紧凑的代码给我们看吗?
  • 你看过例子吗?您可以查看大量文档和代码库。
  • 最好在此处发布您当前的代码状态以及确切的问题。

标签: java static static-methods


【解决方案1】:

如果setDestTurtlestatic 方法,您将使用类名而不是通过特定实例来调用它,例如:

Turtle.setDest(x, y);

【讨论】:

  • 感谢您的帮助! :)
【解决方案2】:

你的Model 班级有

public void setDestination(int x, int y, int width, int height) {
    for(int i = 0; i <3; i++)
    { 
        t[i].setDest(x, y);
    }    
}

分别为每只海龟设置目的地。如果setDest 被声明为static,你的编译器应该警告你

Turtle 类型的静态方法 setDest(int, int, int, int) 应该以静态方式访问

(强调我的)。

以静态方式访问方法意味着您不应该(尽管您可以如上所示)从对象调用方法调用,而是从类调用:

public void setDestination(int x, int y, int width, int height) {

    Turtle.setDest(x, y);   
}

顺便说一句,int widthint height 参数没有被使用,那么为什么该方法需要它们?

【讨论】:

  • 谢谢!这很有帮助。我确实从我的编译器那里得到了这个警告。我是想说那个。我不完全确定为什么我的方法需要它们,因为我的老师实际上编写了这段代码。但是,我认为由于某种原因它可能在以后有用。在这一点上,我只是完成任务的一部分。非常感谢。
猜你喜欢
  • 1970-01-01
  • 2021-03-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-07
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
  • 2010-11-15
相关资源
最近更新 更多