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

急!急!急!Java中对类名大小写有什么要求?javac是否识别大小写?
public class Calculate
{
  public static void main(String args[])
  {
  System.out.println(calculate.mul(5, 8));
  }
}

class calculate

  static double mul(float a, float b)
  {
  return a * b;
  }
}

/**********************************************
public class Calculate
{
  public static void main(String args[])
  {
  System.out.println(aa.mul(5, 8));
  }
}

class aa

  static double mul(float a, float b)
  {
  return a * b;
  }
}
/***********************************************
这两个程序运行结果不同,运行第一个出现以下结果
抛出异常:java.lang.NoClassDeFoundError......
 Could not foound the main class :Calculate

第二个运行正常。为什么?不识别类名的大小写吗?

------解决方案--------------------
Java的一些规定
 
1、若在源文件中定义了声明为public的类,需要将类所在的源文件的文件名取名为类名
2、在同一个源文件中有且只能有一个定义为public的类
3、编译时文件名大小写是不敏感的,执行的时候加载的类名是大小写敏感的
------解决方案--------------------
这是 Windows 系统的关系,Windows 文件系统的文件名不区分大小写。

Calculate.java 编译之后会产生两个类文件:Calculate.class 和 calculate.class。这两个文件在 Windows 系统中重名,后者会覆盖掉前者。