Java有强制的类、方法、字段和变量命名规范。
- 类名应以大写字母开头
- 方法、字段和变量名应以小写字母开头
JDK对这两个规则只有很少的例外。
但是约定并不是语法规则,因此像下面的类编译时不会出错(C#程序员可能会很高兴):
public class string {
private char[] C;
public int Length() { return C.length; }
}
但是,传统与语法规则之间的差距不可避免地会导致初学者违反惯例,然后需要对命名惯例进行漫长的解释。
如果最基本的命名约定(如上述约定)成为语法的一部分,则Java编译器将强制执行它们并自动教育那些初学者。
所以问题来了:
从Java语言设计师的角度来看,留下语法和命名惯例之间的差距是否有任何好的理由,这些惯例永远不应该被违反?是否存在任何有意义的使用案例,涉及类、方法、字段、变量的命名,这些名称违反了约定,但超越了公约的意义?