【发布时间】:2023-03-10 16:36:01
【问题描述】:
这是我的作业问题:
为“时钟”类编写类声明。它应该具有小时、分钟、秒(所有整数)的实例变量。它还应该有一个 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);
line 正在通过实例引用访问静态成员。具体来说,
temp.format
位。
所以我的问题是:
1.) 为什么不一定鼓励通过实例引用访问静态成员?
2.) 有没有更好的方法将它们组合在一起,这样我就不会通过实例引用访问静态成员?
提前致谢!
【问题讨论】:
标签: java instance static-members