日期:2014-05-20  浏览次数:20611 次

新手问个基础问题.
建立一个MyClass.java,代码如下,为什么能运行呢?一个java文件不是必须要有一个与文件名相同的public类吗?如应该有个public   class   MyClass,而不是class   Myclass.

class   MyClass  
  {  
void   myMethod(int   i)   {System.out.println( "int   version ");}  
void   myMethod(String   s)   {System.out.println( "String   version ");}  
public   static   void   main(String   args[])  
  {  
MyClass   obj   =   new   MyClass();  
  char   ch   = 'c ';  
obj.myMethod(ch);  
  }  
  }  


------解决方案--------------------
如果你的main方法所在的类用public 修饰了,那么文件名必须是这个类的类名
如果main方法所在的类没有用public修饰,那么文件名可以随便起,不一定要和任何类名一样.
一个程序中如果有多个类,则只能有一个public类,这个类的名字必须和你程序名字一样,程序的入口点,即main()函数必须包含在public类里面。

------解决方案--------------------
因为你的类是有main()的类
是整个程序的入口
虽然你的class MyClass {}没标注public
但是程序从main()开始运行
所以大前提下 还是public

如果你这个类中没有main()
那么你就需要写成public class MyClass

我这样解释你能明白么