正如您在上一课中学到的,对象存储在字段中。
int cadence = 0;
int speed = 0;
int gear = 1;
在 什么是对象?讨论中,向您介绍了字段,但是您可能还有几个问题,例如:命名字段的规则和约定是什么?除了int
,还有其他哪些数据类型?声明字段时是否必须对其进行初始化?如果未显式初始化字段,是否为它们分配默认值?在本课中,我们将探讨这些问题的答案,但是在我们这样做之前,您必须首先意识到一些技术上的区别。在Java编程语言中,术语“字段”和“变量”都被使用。这是新开发人员之间普遍感到困惑的根源,因为两者似乎常常指的是同一件事。
Java编程语言定义了以下种类的变量:
- 实例变量(非静态字段)从技术上讲,对象将其各自的状态存储在“非静态字段(Non-Static Fields)”中,即声明为不使用
static
关键字的字段。非静态字段也称为实例变量(**Instance Variables**),因为它们的值对于类的每个实例(换句话说,对于每个对象)都是唯一的。一个自行车的currentSpeed
,独立于另一个自行车的currentSpeed
。 - 类变量(静态字段)类变量(Class Variables)是使用static修饰符声明的任何字段;这告诉编译器,无论该类被实例化了多少次,该变量确实只存在一个副本。可以将特定类型自行车的齿轮数的字段标记为
static
,因为从概念上讲,特定类型的自行车有相同的齿轮数。代码static int numGears = 6;
就创建了这样的静态字段(Static Fields)。另外,可以添加final
关键字以指示齿轮数永远不会改变。 - 局部变量 类似于对象在字段中存储其状态,方法(method)通常会将其临时状态存储在局部变量(Local Variables)中。声明局部变量的语法,类似于声明字段(例如
int count = 0;
)。没有特殊的关键字将变量指定为局部变量。该确定完全来自变量声明的位置,该位置在方法的左花括号和右花括号之间。因此,局部变量仅对声明它们的方法可见;它们是类上其他部分无法访问的。 - 参数 您已经在
Bicycle
类和“Hello World!
”程序的main
方法中看到了参数(Parameters)示例。回想一下,main
方法的签名是public static void main(String[] args)
。在此,args
变量是该方法的参数。要记住的重要一点是,参数始终被分类为“变量(Variables)”而不是“字段(Fields)”。这也适用于其他接受参数的构造(例如构造器(**constructors**)和异常处理程序(**exception handlers**)),您将在本教程的后面部分了解到。
话虽如此,本教程的其余部分在讨论字段和变量时将使用以下通用准则。如果我们谈论的是“一般字段”(不包括局部变量和参数),我们可以简单地说“字段”。如果讨论适用于“以上所有内容”,我们可以简单地说“变量”。如果上下文需要区分,我们将酌情使用特定术语(静态字段,局部变量等)。您可能还会偶尔看到术语“成员(**member**)”。类型(**type**)的字段,方法和嵌套类型统称为其成员。
命名
对于允许使用的各种名称,每种编程语言都有自己的规则和约定集,Java编程语言也不例外。命名变量的规则和约定,可以总结如下:
- 变量名称区分大小写。变量的名称可以是任何合法的标识符(identifier)——无限长度的Unicode字母和数字序列,以字母,美元符号“
$
”或下划线字符“_
” 开头。但是,惯例是变量名始终以字母开头,而不是“$
”或“_
”。此外,按照惯例,完全不会使用美元符号字符。您可能会发现某些情况,其中自动生成的名称将包含美元符号,但您的变量名称应始终避免使用它。下划线字符存在类似的约定;尽管以“_
” 开头的变量名,在技术上是合法的,但不建议这样做。不允许使用空格。 - 后续字符可以是字母,数字,美元符号或下划线字符。约定(和常识)也适用于此规则。为变量选择名称时,请使用完整的单词,而不要使用隐晦的缩写。这样做将使您的代码更易于阅读和理解。在许多情况下,这还将使您的代码具有自记录性。例如,命名
cadence
,speed
和gear
,比缩写版本,如s
,c
和g
,更直观。另外,请记住,您选择的名称不能是 关键字(keyword)或保留字(reserved word)。 - 如果您选择的名称仅包含一个单词,则用所有小写字母拼写该单词。如果它包含多个单词,请大写每个后续单词的第一个字母。名称
gearRatio
和currentGear
是该约定的主要示例。如果您的变量存储一个常量值(例如)static final int NUM_GEARS = 6
,则约定会稍有变化,将每个字母大写,并用下划线字符分隔后续单词。按照惯例,下划线字符永远不会在其他地方使用。Java语言关键字
这是Java编程语言中的关键字列表。您不能在程序中使用以下任何一种作为标识符。关键字const
和goto
保留,即使它们当前未使用。true
,false
和null
可能看起来像关键字,但它们实际上是字面量。您不能在程序中将它们用作标识符。
abstract |
continue |
for |
new |
switch |
---|---|---|---|---|
assert |
default |
goto |
package |
synchronized |
boolean |
do |
if |
private |
this |
break |
double |
implements |
protected |
throw |
byte |
else |
import |
public |
throws |
case |
enum |
instanceof |
return |
transient |
catch |
extends |
int |
short |
try |
char |
final |
interface |
static |
void |
class |
finally |
long |
strictfp |
volatile |
const |
float |
native |
super |
while |
备注
未使用 | ||
---|---|---|
1.2版本添加 | ||
1.4版本添加 | ||
5.0版本添加 |