建立一个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); 
 } 
 } 

解决方案 »

  1.   

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

  2.   

    因为你的类是有main()的类
    是整个程序的入口
    虽然你的class MyClass {}没标注public 
    但是程序从main()开始运行
    所以大前提下 还是public如果你这个类中没有main()
    那么你就需要写成public class MyClass我这样解释你能明白么
      

  3.   

    一个.java源文件中可以包括多个类
    如果这些类中没有公有类,即public修饰的类,那么文件的名称可以任意起
    如果这些类中有公有类,即public修饰的类,那么文件的名称必须与这个公有类的名称一致
    如下面这两个类在同一个文件中,那么文件的名字必须是HelloWorld.javapublic class HelloWorld {

    }class A{
    public static void main(String[] args) {
    System.out.println("A");
    }
    }