急!急!急!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 系统中重名,后者会覆盖掉前者。