Java家庭作业帮助(通过实例参考访问静态成员)

位欺骗:

这是我的作业问题:


为“时钟”类编写一个类声明。它应该具有小时,分钟,秒(所有整数)的实例变量。它还应具有toString()方法,以下面所示的格式显示时间。编写一个单独的“ ClockDriver”类,以便a)创建时钟的实例,b)设置时钟的小时,分​​钟和秒,以及c)使用getTime()显示时钟的时间。使用第36页上的Dog类示例作为指南。样本输出如下所示:

时间是3:45:00

//不要担心如果不能同时输入两个零

//第二个字段。那是格式化问题

//我们稍后会处理


这是我的时钟课程:

class Clock  {

int hours;
int minutes;
int seconds;


public String toString() {

    String temp = ("");
    return temp.format("%02d:%02d:%02d", hours, minutes, seconds);

} //end method toString

public void getTime() {

    System.out.print("The time is " + toString());

} //end method getTime

} //end class Clock

这是我的ClockDriver类:

public class ClockDriver {

    public static void main (String[] args) {

        Clock c = new Clock();
        c.hours = 4;
        c.minutes = 30;
        c.seconds = 00;
        c.getTime();

    } //end main

} //end class ClockDriver

即使它可以很好地编译并且可以很好地工作,但我还是从IDE收到警告,说我的

return temp.format("%02d:%02d:%02d", hours, minutes, seconds);

行正在通过实例引用访问静态成员。具体来说,

temp.format

一点。

所以我的问题是:

1.)为什么不一定要鼓励通过实例引用访问静态成员?

2)是否有更好的方法将其组合在一起,以使我不通过实例引用访问静态成员?

提前致谢!

rgettman:

静态方法属于类本身,而不属于任何实例。虽然可以static从类的实例调用方法,但是不必使用类的实例,也不必。这可能会造成混淆,因为看起来好像方法不是static,即使它是static

调用static方法的最好,最清晰的方法是使用类名本身而不是类的实例来调用方法:

return String.format("%02d:%02d:%02d", hours, minutes, seconds);

而且您根本不需要该temp实例。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章