错误信息是:
类Dog是公共的(public),应该在名为Dog。java的文件中被声明public class Dog都不知道在说什么,你自己编译看看。

解决方案 »

  1.   

    我倒
    上面的那个程序你能完全通过????不是说一个*.java文件里只有主类是默认public的吗???
    上面那个程序里Dog类也有public啊
      

  2.   

    一个文件里只能有一个public class,有main的class应该是public
      

  3.   

    对啊,那也就是说。Dog类前不能加public了,如果加了,编译肯定会有问题。那加菲猫怎么说编译通过了啊
      

  4.   

    一个*.java文件只能有一个public类,而且要与文件名相同。
      

  5.   

    哦,你是一个Java文件啊?class Dog是内部类?内部类不能是public的。
      

  6.   

    我觉得Dog不是内部类,它不是在SL275内部定义的,它应该是一个bean。
      

  7.   

    越讲越夸张了,上面那段代码是在一个文件SL275.java中的。同志们。
      

  8.   

    to: wwangl(???) 
    说得对。我没细心看明白。犯错误了。呵呵。
      

  9.   

    我好像越来越糊涂了?上面那段代码是在一个文件SL275.java中的。
      

  10.   

    那么类SL275应定义为public,类Dog的public去掉,如果非要定义为public的话,从新建立一个文件然后在SL275中用import或package引入。
      

  11.   

    yes。不过问问package的作用是什么?
    帮忙解释一下
      

  12.   

    class Dog怎么是内部类呢?内部类是指将一个类定义置入另一个定义中。
      

  13.   

    package就是打包的意思,package mypackage;表明,这个编译单元属于mypackage的一个库的
    一部分。
    其实,每个文件只能有一个或者一个都没有public类,所以,你只要把Dog前面的public去掉
    就可以编译成功,public如果要有,必须与包含编译单元的那个文件的名字完全相符,而不是说
                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    有main的class就要有public,如果你现在定义的是Dog文件,编译也是没有问题的。
    至于内部类嘛
    public class SL275 
    {
       class Dog
      {
         private int weight;     public int getWeight()
        {
          return weight;
        }     public void setWeight(int newWeight)
        {
          weight = newWeight;
        }
      } 
         public static void main(String[] args) 
       {
         Dog d=new Dog();
         d.setWeight(42);
        }
    }这样就是了!多看书,书上说的很明白。
      

  14.   

    楼上的,
    你说:“public如果要有,必须与包含编译单元的那个文件的名字完全相符”
    我说:“有main()的class就要有public”“与包含编译单元的那个文件的名字完全相符”也就是和文件同名,那和文件同名的不就是主类啊。那程序的入口点不就在主类的main()里吗?还不是一样的意思?
    如果我把上面那个文件改名成Dog。java,那即使编译通过了,运行的时候还不是要出现异常,提示你main()方法找不到?
      

  15.   

    在一个java文件中,只有主类的类型才能声明为public,并且也只能有一个public,要不然编译程序会找不到程序的入口.比方说有main()方法的类一定要声明为public
      

  16.   

    错误不是很清楚吗?
    类Dog是公共的(public),应该在名为Dog。java的文件中被声明public class Dog
    文件名叫Dag.java不就可以了吗?
      

  17.   

    补充一点,一个*.java文件中不能有两个public类声明.