pat在线提交问题,java里如果只有一个类且是public那么文件名字与class名字必须一样么 1C

自学Java所以不太懂命名规则,在自己eclipse上根本就不报错啊,我也百度了,但是我提交了好几次还是错误,
错误提示是class A is public,should be declared in a file named A .Java,
下面是我代码,(我尝试过把A改成A.Java但是又说括号有问题,,)
package a;
import java.util.Scanner;

public class A
{
public static void main(String[] args)//12345 15 one five
{
Scanner in=new Scanner(System.in);
String a=in.nextLine();
String b;
int sum=0;
for(int i=0;i<a.length();i++)

{ sum+=a.charAt(i)-'0';}
b=String.valueOf(sum);
for(int i=0;i<b.length();i++)
{ if(i==b.length())
{
switch(b.charAt(i))
{ case '0':System.out.printf("zero");break;
case '1':System.out.printf("one");break;
case '2':System.out.printf("two");break;
case '3':System.out.printf("three");break;
case '4':System.out.printf("four");break;
case '5':System.out.printf("five");break;
case '6':System.out.printf("six");break;
case '7':System.out.printf("seven");break;
case '9':System.out.printf("nine");break;
case '8':System.out.printf("eight");break;
}}
else
{
switch(b.charAt(i))
{ case '0':System.out.printf("zero ");break;
case '1':System.out.printf("one ");break;
case '2':System.out.printf("two ");break;
case '3':System.out.printf("three ");break;
case '4':System.out.printf("four ");break;
case '5':System.out.printf("five ");break;
case '6':System.out.printf("six ");break;
case '7':System.out.printf("seven ");break;
case '9':System.out.printf("nine ");break;
case '8':System.out.printf("eight ");break;
}}
}

    in.close();
}

}

2个回答

对的 一个文件中 可以有多个类,但是只能有一个public修饰的类,如
public class A{
class B{

}
class C{

}
}

如原因是 如果一个文件中有多个public修饰的类那么 jvm通过文件来找应该以哪个为入口呢?所以 public修饰的类名 必须与文件名一致

楼上说的不是楼主的错误,楼主的错误应该是一个java文件的名字必须是该文件中public 修饰的类的名字 你把文件名字改成A就可以了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐