为什么这段代码不能成功编译啊??
public class Sheep implements Cloneable{
private String name;
public void setName(String arg) {
name = arg;
}
public String getName() {
return name;
}
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
}public class Main {
public static void main(String[] args) throws CloneNotSupportedException {
Sheep sheep = new Sheep();
sheep.setName("I'm ture!");
System.out.println("sheep.getName() = " + sheep.getName());
Sheep sheepClone = (Sheep)sheep.clone();
System.out.println("sheepClone.getName() = " + sheepClone.getName());
}
}

解决方案 »

  1.   

    在Eclipse 3.0.x下编译不成功
    换成Eclipse 3.1M试试
      

  2.   

    以下是错误的提示信息,这是怎么回事啊!C:\>javac Main.java
    Main.java:2: class Sheep is public, should be declared in a file named Sheep.jav
    a
    public class Sheep implements Cloneable{
           ^
    1 errorC:\>
      

  3.   

    不行啊,文件名不应该是Sheep.java吧?!各位大侠知道到底是什么问题编译不了吗?
      

  4.   

    把sheep类的的public修饰去掉看看
      

  5.   

    为什么去掉这个public就能编译啊,是什么原因啊??请指教!
      

  6.   

    一个.java文件只能最多有一个public 的类,这个类负责和外界用public接口联系,其他的类为它提供支持
      

  7.   

    就是以上你写的这段代码只允许出现一个PUBLIC 类,并要把文件名命名为PUBLIC 类的名字
      

  8.   

    一个.java文件只能最多有一个public 的类。而且这个文件必须以该类的名字命名。
      

  9.   

    一个class只能有一个类暴露给外面,并且java的文件要用这个类的名字来命名(jvm是reflect className to class)
      

  10.   

    "sleep好像是关键词哦"
    ~~~~~~~
    这个回答经典