Java全局变量 - 声明的约定是什么?

时间:2013-11-25 12:48:35

标签: java variables coding-style declaration

我认为这个问题不言自明,但如果它不在这里就是我的意思的简短解释:

编写一个java程序,我应该采用什么约定来声明一个全局变量?我的意思是,我应该使用以下哪一个?

    public class Variables {

        private variable;
        private Variable;
        private VARIABLE;

        private largerVariable;
        private Larger_Variable;
        private larger_variable;
        private LARGER_VARIABLE;
}

4 个答案:

答案 0 :(得分:2)

有几条规则:

  • 变量名称区分大小写。变量的名称可以是任何合法标识符 - Unicode字母和数字的无限长度序列,以字母开头,美元符号“$”或下划线字符“”。但是,惯例是始终使用字母开头,而不是“$”或“”。此外,按照惯例,美元符号字符根本不会被使用。您可能会发现某些情况,其中自动生成的名称将包含美元符号,但您的变量名称应始终避免使用它。对于下划线字符存在类似的约定;虽然用“_”开始变量的名称在技术上是合法的,但不鼓励这种做法。不允许有空格。
  • 后续字符可以是字母,数字,美元符号或下划线字符。约定(和常识)也适用于此规则。为变量选择名称时,请使用完整单词而不是隐藏缩写。这样做可以使您的代码更易于阅读和理解。在许多情况下,它还会使您的代码自我记录;例如,名为cadence,speed和gear的字段比缩写版本(如s,c和g)更直观。另请注意,您选择的名称不得是关键字或保留字。
  • 如果您选择的名称只包含一个单词,则拼写全部小写字母。如果它由多个单词组成,则将每个后续单词的首字母大写。名称gearRatio和currentGear是此约定的主要示例。如果变量存储常量值,例如static final int NUM_GEARS = 6,则约定会略有变化,将每个字母大写并用后缀字符分隔后续单词。按照惯例,下划线字符从未在别处使用过。

从这里开始 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/variables.html

如果我正确阅读这些规则,有效名称(通过命名约定)将是:

private Object largerVariable;
private Object LARGER_VARIABLE;

答案 1 :(得分:1)

另一个想法是声明常量,使其无法更改:

private static final boolean POWER_ON = true;

此外,如果我需要定义布尔常量,我会尝试定义它,因此它们是肯定的(真实的)而不是消极的(假的),所以它更容易掌握而不用太多考虑它。例如:

我用这个:

private static final boolean POWER_ON = true;

而不是:

private static final boolean POWER_OFF = false;

另一个考虑因素: 对于布尔变量,我可能会考虑在单词前加上'is'或'has'来指示它的布尔值,如果它不明显的话。示例:IS_RADIOACTIVE。

最后,我只需要定义POWER_ON而不是POWER_OFF,因为!POWER_ON在java语句中的含义相同。

答案 2 :(得分:0)

我在假设全球意味着班级...... 作为练习班级变量应该用大写字母书写 在大多数情况下,它们被标记为静态,因此可以通过所有类方法进行访问。 此外,如果您认为它们只会被初始化一次,那么请考虑将它们作为最终版本。

正确的声明可能是:

private static VARIABLE;
private static LARGER_VARIABLE;

答案 3 :(得分:0)

Java没有“全局”变量这样的东西。 但是,如果要使用任何其他类可以访问的常量,大多数人都会声明public static final变量并立即使用相应的值进行初始化。

public class HttpCodes {
    public static final String NOT_FOUND = "404";
}

任何其他类都可以访问:HttpCodes.NOT_FOUND

如果您尝试将其设为实例变量,请使用camelCase private final String notFound = "404"