这个陈述有意义吗? (Sun的Java变量命名约定)

时间:2010-04-26 04:40:51

标签: java naming-conventions

过去几天我一直在引用Sun的文档中的这一部分,现在我才停下来思考它的内容,我无法理解它。请记住,英语不是我的第一语言。

Naming conventions

  

变量:除变量外,所有实例,类和类常量都是大小写混合,带有小写的第一个字母

这有什么意义?这不是说这个类名是小写的首字母大小写的吗?就像我应该命名class myClass一样?类常量也是大小写的首字母大小写的混合大小写?与Integer.MAX_VALUE不同,它应该被命名为integer.maxValue

它是否真的在说变量本身应如何命名?

我没有正确解析这个或者这实际上是一个明显的错误吗?

4 个答案:

答案 0 :(得分:4)

Sun已将此视为错误,优先级较低:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4311597

  

描述命名变量的约定(表中的倒数第二行)。这显然是错的 - 上课   常量不是大小写混合,如表中的下一行所示。什么是“除了变量”   商业?文本假设描述变量!!

     

文字应为:

     

“所有实例和类变量都混合在一起......”

     

因此删除“除变量”和“类常量”之外的单词

答案 1 :(得分:3)

这上面有几个方框:

  

类名应该是名词,大小写混合,每个内部单词的首字母大写。尽量保持您的类名简单和描述性。使用整个单词 - 避免缩略语和缩写(除非缩写比长格式更广泛使用,例如URL或HTML)。

class Raster;
class ImageSprite;

以下:

  

声明类常量和ANSI常量的变量名称应全部为大写,并用下划线(“_”)分隔。 (为了便于调试,应避免使用ANSI常量。)

static final int MIN_WIDTH = 4;

static final int MAX_WIDTH = 999;

static final int GET_THE_CPU = 1;

矛盾,不是吗? “类常量”应该从那个变量约定语句排除,即使它们意味着public final类型的非静态常量,因为它会让人感到困惑。

至于“变量除外”,我认为它们意味着原始local variables应该只有一个词。

答案 2 :(得分:2)

这几乎可以肯定是实际意义上的严重编辑版本:

  

变量:所有变量名称   (不包括常数)是混合的   小写第一个字母的情况。

答案 3 :(得分:1)

您需要阅读整个内容以获取上下文:

  

除变量外,所有实例,   class和类常量都在   首先是小写的混合大小写   信件。内部词开头   大写字母。变量名称应该   不要以下划线_或美元开头   签署$字符,即使两者都有   是允许的。

     

变量名称应该很短   有意义的。变量的选择   名字应该是助记符 - 也就是说,   旨在表明随意   观察者使用它的意图。   单字符变量名应该是   避免除了临时   “一次性”变量。俗名   临时变量是i,j,k,   m和n表示整数; c,d和e代表   字符。

所以[本地]变量要短(意味着它们可能没有足够的“单词”来混合大小写)。

所有其他变量(实例或类级别的变量,非本地变量)都应该是混合大小写,并以小写字母开头(大概是“罗嗦”足以能够混合大小写,比如“lineNumber”而不是“number”);

编辑(忘了常数)。

在Java中查看常量有两种方法:

  1. 任何单词final
  2. 任何有保证价值的东西 总是一样的
  3. 这样:

    class Foo
    {
        public final int variable;
        public final int CONSTANT;
    
        static
        {
            variable = // generate a random number.
            CONSTANT = 5;
        }
    }
    

    这里“变量”是“常数”,因为一旦赋值,它就不能改变,但它不是像“CONSTANT”那样的常量,因为“CONSTANT”的值总是为5。

    我认为#2是Java中唯一的常量。

    编辑#2(回应下面的评论)。

    我会把它重写为:

      

    除局部变量外,全部   实例,类和类空白   决赛[我也可能会指出这一点   空白的最终没有了   单个编译时间值]在   首先是小写的混合大小写   信。

    您可以查看http://www.codeguru.com/java/tij/tij0071.shtml了解更多信息。