问大家一个java问题

来源:百度知道 编辑:UC知道 时间:2024/06/08 01:21:28
public class Overload{
void a(int a,int b)
{
System.out.println(a<b?a:b);
}
void a(int a,int b,int c)
{
System.out.println(a==b?c:b);
}
}
class Over{
public static void main(String []aa)
{
Overload z =new Overload();
z.a(1,2);
z.a(2,2,3);

}
}
这个程序编译成功了可是运行是显示:
Exception in thread "main" java.lang.NoSuchMethodError: main

你已经定义了主类Overload那么你的main函数就应该在此类中,在别的类中无效。即使你把Overload类的public修饰符去掉也不可以,因为入口是Overload。
想用你的方法实现,把文件名改为Over.java把Overload类的public修饰符去掉,这样可以通过编译达到你想要的结果。
还有,你为什么不直接在Overload里写main函数,那样即简单有方便(如果只是举例,算我最后这句没说)
附正确代码:
class Overload{
void a(int a,int b)
{
System.out.println(a<b?a:b);
}
void a(int a,int b,int c)
{
System.out.println(a==b?c:b);
}
}
class Over{

public static void main(String []aa)
{
Overload z =new Overload();
z.a(1,2);
z.a(2,2,3);
}
}

或者:
public class Overload{
void a(int a,int b)
{
System.out.println(a<b?a:b);
}
void a(int a,int b,int c)
{
System.out.println(a==b?c:b);
}
public static void main(String []aa){
Overload z =new Overload();
z.a(1,2);
z.a(2,2,3);
}
}