class MethodOvreloading {
void set(int x){
System.out.println("set(int):"+x);
}
void set(int x,int y){
System.out.println("set(int,int):"+x+","+y);
}
void set(double d){
System.out.println("set(double):"+d);
}
void set(String s){
System.out.println("set(String):"+s);
}
}
public class MethodOverloadingTest{
public static void main(String[] args) {
MethodOvreloading mo=new MethodOvreloading();
mo.set(1);
mo.set(2,3);
mo.set(12.56);
mo.set("Message");
     
}
}
----------------------------------------------------------------------------------------------------
程序如上:程序完全是教材代码,当我执行程序时,类名写的是MethodOverloadingTest,在eclipse中主函数所在的类有错误误?我不知道错在哪?
当我把类改为(如程序)蓝色字了类时,还是主函数所在类有错误。
请问当一个程序有多个类时,我执行时是不是应该把主函数所在类当做要执行的类名?

解决方案 »

  1.   

    class MethodOverloading {
        void set(int x){
    System.out.println("set(int):"+x);
        }
        void set(int x,int y){
    System.out.println("set(int,int):"+x+","+y);
        }
        void set(double d){
    System.out.println("set(double):"+d);
        }
        void set(String s){
    System.out.println("set(String):"+s);
        }
    }
    public class MethodOverloadingTest{
        public static void main(String[] args) {
    MethodOverloading mo=new MethodOverloading();
    mo.set(1);
    mo.set(2,3);
    mo.set(12.56);
    mo.set("Message");
       
        }
    }
      

  2.   

    如果你的两个类写在同一个文件中,那么,你的文件必须是MethodOverloadingTest.java,否则就会报错。
      

  3.   

    补充:文件名字必须是MethodOverloadingTest.java,如果你的文件不是在同一个包中,就是文件MethodOvreloading.java和文件MethodOverloadingTest.java不再同一个包中,那么你的类MethodOvreloading 必须用public来修饰
      

  4.   

    请问你是在eclipse中执行的吗?
      

  5.   

    ublic class MethodOvreloading {
    void set(int x) {
    System.out.println("set(int):" + x);
    } void set(int x, int y) {
    System.out.println("set(int,int):" + x + "," + y);
    } void set(double d) {
    System.out.println("set(double):" + d);
    } void set(String s) {
    System.out.println("set(String):" + s);
    }
    }class MethodOverloadingTest {
    public static void main(String[] args) {
    MethodOvreloading mo = new MethodOvreloading();
    mo.set(1);
    mo.set(2, 3);
    mo.set(12.56);
    mo.set("Message"); }
    }如果是写成上面那样,在cmd下执行javac MethodOvreloading.java后,在执行java MethodOverloadingTest也可以的。但在eclips中主函数貌似就得写在带有public修饰的类中。
    在一个文件中可以有多个类,但只能有一个public类。  
      

  6.   

    一个 .JAVA 文档中只能有一个类被声明为 public,而且被声明为 public 的类必须与文件名相同 !