回 帖 发 新 帖 刷新版面

主题:[讨论]哪里错了?一直搞不懂!!

package packone;
public class Clock {
  public    int hour;
  private   int minute;
  protected int second;
  public Clock(int i, int j, int k) {
    setAll(i, j, k);
  }
  void setAll(int i, int j, int k) {
    hour   = i;
    minute = j;
    second = k;
  }
  public int getHour() {
    return hour;
  }
  public int getMinute() {
    return minute;
  }
  public int getSecond() {
    return second;
  }
}
程序出错显示:类 Clock 是公共的,应在名为 Clock.java 的文件中声明
本人新手,不知道哪里错啦?请各位指点迷津~~万分感谢~~~

回复列表 (共8个回复)

沙发


public 类只能是包含 main方法的类  你里面都没有main方法

板凳

这个类所在的文件名要改成Clock.java

3 楼

[quote]
public 类只能是包含 main方法的类  你里面都没有main方法[/quote]

wrong,没有一样可以,main方法只是个程序入口方法.

一个java文件中可以有多个类,比如Test.java中可以声明:
class Test1{}
class Test2{}
...
但如果加了public声明的类,则类名必须跟文件名一致:
public class Test{}
不一致的话,如:
public class Test3{}
则会报错.

4 楼

错误提示你要将源文件以Clock.java作为文件名保存,因为你将此类声明为public访问类型了,至于为什么声明了public就要作为文件名,我就不清楚了,等待楼下的解释,当然你不改文件名只要将public取消即可.

5 楼

公共类的类名必须与JAVA源文件的文件名相同,也就是说JAVA文件名必须为Clock.java

6 楼


把你的文件名和类名核对下///

7 楼

public类中应该main()方法。

8 楼

文件名跟类名不一样!

我来回复

您尚未登录,请登录后再回复。点此登录或注册