为什么JAVA程序在运行的时候总说类是公共的,请在文件中说明。

来源:百度知道 编辑:UC知道 时间:2024/06/22 23:37:51
下面是我的程序:

public class A
{
public static void main(String[] args)
{
A i=new A();
i.taskInner();
}
public class Inner
{
private int size;
public void doSm(int size)
{
size++;
this.size++;
A.this.size++;
System.out.println(size+" "+this.size+" "+A.this.size);
}
}
public void taskInner()
{
Inner k=new Inner();
k.doSm(8);
}
private static int size;
}

在命令指示符中运行javac a.java
它会回答说

类A是公共的,应在名为A.java的文件中说明。

请问这是什么意思啊,我实在是搞不明白。
我的JDK版本是jdk-6-nb-5_5-win。

老兄
这是你的命名错误
把文件名改为
A.java
因为你里面的类是
public class A{}
要不你把你这个公共的(public)去掉
要不就要和类名保持一致

你用的是内部类inner的话,改成以下代码
public static void main(String[] args)
{
A out=new A();
A.Inner i=out.new Inner();
i.taskInner();
}

一个文件里只能有一个public的类,这个类名必须和文件名一样,大小写也要相同.