创建变量并命名
变量
正如您在上一节中了解到的,对象在其字段中存储其状态。
int cadence = 0;
int speed = 0;
int gear = 1;
在什么是对象?讨论中,您了解了字段,但您可能仍然有一些问题,例如:命名字段的规则和约定是什么?除了int
之外,还有哪些其他数据类型?字段在声明时必须初始化吗?如果字段没有显式初始化,是否会分配默认值?我们将在本节中探讨这些问题的答案,但在我们这样做之前,您必须首先了解一些技术上的区别。在 Java 编程语言中,术语“字段”和“变量”都使用;对于新开发人员来说,这是一个常见的混淆来源,因为两者似乎都指的是同一件事。
Java 编程语言定义了以下类型的变量
- 实例变量(非静态字段) 从技术上讲,对象在其“非静态字段”中存储其各自的状态,即在没有
static
关键字的情况下声明的字段。非静态字段也称为实例变量,因为它们的值对于类的每个实例(换句话说,对于每个对象)都是唯一的;一辆自行车的currentSpeed
与另一辆自行车的currentSpeed
无关。 - 类变量(静态字段) 类变量是任何用
static
修饰符声明的字段;这告诉编译器,无论类被实例化多少次,都只存在此变量的一个副本。定义特定类型自行车的齿轮数量的字段可以标记为static
,因为从概念上讲,相同的齿轮数量将适用于所有实例。代码static int numGears = 6;
将创建这样的static
字段。此外,可以添加关键字final
来指示齿轮数量永远不会改变。 - 局部变量 与对象在其字段中存储其状态类似,方法通常在其局部变量中存储其临时状态。声明局部变量的语法类似于声明字段(例如,
int count = 0;
)。没有专门的关键字将变量指定为局部变量;该确定完全来自变量声明的位置——即方法的开始和结束大括号之间。因此,局部变量只对声明它们的那些方法可见;它们无法从类的其他部分访问。 - 参数 您已经看到了参数的示例,包括在
Bicycle
类中以及“Hello World!”应用程序的主方法中。回想一下,主方法的签名是public static void main(String[] args)
。这里,args
变量是此方法的参数。要记住的重要一点是,参数始终被归类为“变量”,而不是“字段”。这也适用于您将在本教程后面学习的其他接受参数的结构(例如构造函数和异常处理程序)。
话虽如此,本教程的其余部分在讨论字段和变量时使用以下一般准则。如果我们谈论的是“一般字段”(不包括局部变量和参数),我们可能只说“字段”。如果讨论适用于“以上所有”,我们可能只说“变量”。如果上下文需要区分,我们将根据需要使用特定术语(静态字段、局部变量等)。您也可能偶尔看到术语“成员”的使用。类型的字段、方法和嵌套类型统称为其成员。
命名变量
每种编程语言都有自己的一套规则和约定,用于您允许使用的名称类型,Java 编程语言也不例外。命名变量的规则和约定可以概括如下
- 变量名称区分大小写。变量的名称可以是任何合法的标识符——一个无限长度的 Unicode 字母和数字序列,以字母、美元符号
$
或下划线字符_
开头。但是,约定是始终以字母开头您的变量名称,而不是$
或_
。此外,根据约定,美元符号字符根本不使用。您可能会发现某些情况下自动生成的名称将包含美元符号,但您的变量名称应始终避免使用它。下划线字符也存在类似的约定;虽然从技术上讲,以_
开头您的变量名称是合法的,但这种做法不鼓励。不允许使用空格。 - 后续字符可以是字母、数字、美元符号或下划线字符。约定(和常识)也适用于此规则。在为变量选择名称时,请使用完整的单词,而不是神秘的缩写。这样做将使您的代码更易于阅读和理解。在许多情况下,它还会使您的代码具有自文档性;例如,名为 cadence、speed 和 gear 的字段比缩写版本(例如 s、c 和 g)更直观。还要记住,您选择的名称不能是关键字或保留字。
- 如果您选择的名称只包含一个单词,请将该单词全部小写。如果它包含多个单词,请将每个后续单词的第一个字母大写。名称
gearRatio
和currentGear
是此约定的主要示例。如果您的变量存储一个常量值,例如 static final int NUM_GEARS = 6,则约定略有变化,将每个字母大写,并将后续单词用下划线字符隔开。根据约定,下划线字符在其他地方从不使用。
上次更新: 2021 年 9 月 23 日