简单的Java程序 哪里出错了

来源:百度知道 编辑:UC知道 时间:2024/05/25 09:45:23
//主类为Sum 求一到五的和
class S {
int s,i=1;
S(){
s=0;
}
public int add(){
for(i=1;i<=5;i++)
s=s+i;
return s;
}
}
public class Sum{
public static void main(String args[]){
S x=new S();
System.out.println("1到5的和为:"+x.add());
}
}
Microsoft Windows [版本 5.2.3790]
(C) 版权所有 1985-2003 Microsoft Corp.

C:\Documents and Settings\Administrator>cd\

C:\>javac S.java
S.java:13: class Sum is public, should be declared in a file named Sum.java
public class Sum{
^
1 error

C:\>

这咋回事???
就这问题么

没有错误,我执行结果没有问题!

补充:
1.你的程序代码是没有问题的
2.在 你的S.java中有两个类,而sum类 是public的,所以你的文件名必须是Sum.java。
一个文件中多个类 将来用 javac 进行编译的时候,最终会生成多个 .class 文件,每一个类对应一个 .class 文件。运行时只要运行对应的 .class 文件就可以了。但是,当你的类被 public 修饰时,此时文件名必须和该类保持一致(例如 public class A{} 只能放在 A.java 文件中,不然在用 javac 编译时会提示错误:类 A 是公共的,应在名为 A.java 的文件中声明)。也就是说在同一个 .java 文件中,不应该出现2个或2个以上的 public class 。如果有一个public class 类,就应该让文件名和此类名相同;那如果没有呢,即所有的 class 都没有修饰符,那么可以给该文件随便起名字,甚至可以不和任意一个类同名,哪怕是汉字名称都可以,但是后缀还是要有 .java

class S和public class Sum应该不同的文件里声明;
将:
public class Sum{
public static void main(String args[]){
S x=new S();
System.out.println("1到5的和为:"+x.add());
}
}
保存在一个Sum.java文件里

对的