blog 2 Objects, state, behavior in real-world
1.创建变量并命名它们
变量
对象将其状态存储在字段中。
Java 编程语言定义了以下类型的变量:
- 实例变量(非静态字段)从技术上讲,对象将其各个状态存储在“非静态字段”中,即没有关键字的字段。非静态字段也称为实例变量,因为它们的值对于类的每个实例(换句话说,对于每个对象)都是唯一的;一辆自行车独立于另一辆自行车。
staticcurrentSpeedcurrentSpeed - 类变量(静态字段)类变量是使用修饰符声明的任何字段;这告诉编译器,无论该类被实例化了多少次,都存在此变量的一个副本。定义特定类型自行车的齿轮数的字段可以标记为,因为从概念上讲,相同的齿轮数将适用于所有实例。代码将创建这样一个字段。此外,可以添加关键字以指示齿轮数永远不会改变。
staticstaticstatic int numGears = 6;staticfinal - 局部变量与对象在字段中存储其状态的方式类似,方法通常将其临时状态存储在局部变量中。声明局部变量的语法类似于声明字段(例如 ,)。没有将变量指定为局部的特殊关键字;该确定完全来自声明变量的位置 - 位于方法的左大括号和结束大括号之间。因此,局部变量仅对声明它们的方法可见;无法从类的其余部分访问它们。
int count = 0; - 参数您已经在类和“Hello World”应用程序的主要方法中看到了参数示例。回想一下,main 方法的签名是 。此处,变量是此方法的参数。要记住的重要一点是,参数始终被归类为“变量”而不是“字段”。这也适用于其他参数接受构造(如构造函数和异常处理程序),您将在本教程后面部分了解这些构造。
Bicyclepublic static void main(String[] args)args命名变量
每种编程语言都有自己的一套规则和约定,用于允许使用的名称类型,Java编程语言也不例外。命名变量的规则和约定可以总结如下:
变量名称区分大小写。变量的名称可以是任何合法的标识符 — Unicode 字母和数字的无限长度序列,以字母、美元符号“$”或下划线字符“
- ”。此外,按照惯例,美元符号字符从未使用过。您可能会发现在某些情况下,自动生成的名称将包含美元符号,但您的变量名称应始终避免使用它。对于下划线字符,也存在类似的约定。虽然从技术上讲,变量名称以“_”开头是合法的,但不鼓励这种做法。不允许使用空格。
- 后续字符可以是字母、数字、美元符号或下划线字符。约定(和常识)也适用于此规则。为变量选择名称时,请使用完整单词而不是神秘的缩写。这样做将使你的代码更易于阅读和理解。在许多情况下,它还会使你的代码自我记录;例如,名为“节奏”、“速度和档位”的字段比缩写版本(如 s、c 和 g)更直观。另请记住,您选择的名称不得是关键字或保留字。
- 如果您选择的名称仅包含一个单词,请用所有小写字母拼写该单词。如果它由多个单词组成,请将每个后续单词的第一个字母大写。名称和是该公约的主要例子。如果变量存储常量值(如静态 final int NUM_GEARS = 6),则约定会稍作更改,将每个字母大写,并用下划线字符分隔后续单词。按照惯例,下划线字符永远不会在其他地方使用。
gearRatiocurrentGear2,在程序中创建基元类型变量
基元类型
Java 编程语言是静态类型的,这意味着必须先声明所有变量,然后才能使用它们。
-
byte:数据类型为 8 位有符号二的补码整数。它的最小值为 -128,最大值为 127(含)。数据类型可用于在大型数组中节省内存,其中内存节省实际上很重要。它们也可以用于代替它们的限制有助于澄清代码的地方;变量范围有限的事实可以作为文档的一种形式。bytebyteint -
short:数据类型为 16 位有符号二的补码整数。它的最小值为 -32,768,最大值为 32,767(含)。与 一样,同样的准则也适用:在节省内存真正重要的情况下,您可以使用短代码将内存保存在大型数组中。shortbyte -
int:默认情况下,数据类型为 32 位有符号 2 的补码整数,其最小值为 -2int31最大值为 231-1.在 Java SE 8 及更高版本中,可以使用数据类型来表示无符号的 32 位整数,该整数的最小值为 0,最大值为 2int32-1.使用Integer类将数据类型用作无符号整数。有关详细信息,请参阅编号类部分。像 compareUnsigned()这样的静态方法已添加到Integer类中,以支持无符号整数的算术运算。int -
long:数据类型为 64 位 2 的补码整数。有符号多头的最小值为 -2long63最大值为 263-1.在 Java SE 8 及更高版本中,可以使用数据类型来表示无符号的 64 位长度,其最小值为 0,最大值为 2long64-1.当您需要的值范围大于 所提供的值范围时,请使用此数据类型。Long类还包含比较无符号 ()、除法无符号 ()等方法,以支持无符号长整型的算术运算。int -
float:数据类型为单精度 32 位 IEEE 754 浮点。其值范围超出了本讨论的范围,但在 Java 语言规范的浮点类型、格式和值部分中指定。与 和 的建议一样,如果需要将内存保存在大型浮点数数组中,请使用 a(而不是 )。此数据类型绝不应用于精确值,如货币。为此,您需要改用Java.math.数字和字符串涵盖了 Java 平台提供的十进制和其他有用的类。floatbyteshortfloatdouble -
double:数据类型为双精度 64 位 IEEE 754 浮点。其值范围超出了本讨论的范围,但在 Java 语言规范的浮点类型、格式和值部分中指定。对于十进制值,此数据类型通常是默认选项。如上所述,此数据类型绝不应用于精确值,例如货币。double -
boolean:数据类型只有两个可能的值:和 。将此数据类型用于跟踪真/假条件的简单标志。此数据类型表示一位信息,但其“大小”不是精确定义的。booleantruefalse -
char:数据类型是单个 16 位 Unicode 字符。它的最小值为(或 0)和最大值(包括 65,535)。char\u0000\uffff
除了上面列出的八种基元数据类型之外,Java 编程语言还通过
java.lang.String类为字符串提供特殊支持。使用默认值初始化变量
在声明字段时,并不总是需要赋值。已声明但未初始化的字段将由编译器设置为合理的默认值。一般来说,此默认值将为零或 null,具体取决于数据类型。
下表汇总了上述数据类型的默认值。
数据类型 默认值(对于字段) 字节 0 短 0 整型 0 长 0L 浮 0.0华氏度 双 0.0d 煳 \u0000字符串(或任何对象) 零 布尔 false局部变量略有不同;编译器从不将默认值分配给未初始化的局部变量。如果无法在声明本地变量的位置对其进行初始化,请确保在尝试使用它之前为其赋值。访问未初始化的局部变量将导致编译时错误。
使用文本创建值
您可能已经注意到,在初始化基元类型的变量时不使用关键字。基元类型是内置于语言中的特殊数据类型;它们不是从类创建的对象。文字是固定值的源代码表示;文本直接在代码中表示,无需计算。如下所示,可以将文本分配给基元类型的变量:
new -

浙公网安备 33010602011771号