将field翻译从属性改为字段,相对来说字段更常用。

This commit is contained in:
秦骏
2019-09-19 22:31:20 +08:00
parent fc6290acd4
commit 0cb74d1550

View File

@@ -219,9 +219,9 @@ ATypeName a = new ATypeName();
到现在为止,我们还不能用这个对象来做什么事(即不能向它发送任何有意义的消息),除非我们在这个类里定义一些方法。
<!-- Fields -->
### 属性
### 字段
当我们创建好一个类之后我们可以往类里存放两种类型的元素方法method属性field。类的属性可以是基本类型,也可以是引用类型。如果类的属性是对某个对象的引用,那么必须要初始化该引用将其关联到一个实际的对象上(通过之前介绍的创建对象的方法)。每个对象都有用来存储其属性的空间。通常,属性不在对象间共享。下面是一个具有某些属性的类的代码示例:
当我们创建好一个类之后我们可以往类里存放两种类型的元素方法method字段field。类的字段可以是基本类型,也可以是引用类型。如果类的字段是对某个对象的引用,那么必须要初始化该引用将其关联到一个实际的对象上(通过之前介绍的创建对象的方法)。每个对象都有用来存储其字段的空间。通常,字段不在对象间共享。下面是一个具有某些字段的类的代码示例:
```java
class DataOnly {
@@ -237,7 +237,7 @@ class DataOnly {
DataOnly data = new DataOnly();
```
我们必须通过这个对象的引用来指定属性值。格式:对象名称.方法名称或属性名称。代码示例:
我们必须通过这个对象的引用来指定字段值。格式:对象名称.方法名称或字段名称。代码示例:
```java
data.i = 47;
@@ -256,7 +256,7 @@ class DataOnly {
<!-- Default Values for Primitive Members -->
### 基本类型默认值
如果类的成员变量(属性)是基本类型,那么在类初始化时,这些类型将会被赋予一个初始值。
如果类的成员变量(字段)是基本类型,那么在类初始化时,这些类型将会被赋予一个初始值。
| 基本类型 | 初始值 |
| :-----: |:-----: |
@@ -269,9 +269,9 @@ class DataOnly {
| float | 0.0f |
| double | 0.0d |
这些默认值仅在 Java 初始化类的时候才会被赋予。这种方式确保了基本类型的属性始终能被初始化(在 C++ 中不会),从而减少了 bug 的来源。但是,这些初始值对于程序来说并不一定是合法或者正确的。 所以,为了安全,我们最好始终显式地初始化变量。
这些默认值仅在 Java 初始化类的时候才会被赋予。这种方式确保了基本类型的字段始终能被初始化(在 C++ 中不会),从而减少了 bug 的来源。但是,这些初始值对于程序来说并不一定是合法或者正确的。 所以,为了安全,我们最好始终显式地初始化变量。
这种默认值的赋予并不适用于局部变量 —— 那些不属于类的属性的变量。 因此,若在方法中定义的基本类型数据,如下:
这种默认值的赋予并不适用于局部变量 —— 那些不属于类的字段的变量。 因此,若在方法中定义的基本类型数据,如下:
```java
int x;
@@ -405,7 +405,7 @@ import java.util.*;
一些面向对象的语言使用类数据class data和类方法class method表示静态数据和方法只是作为类而不是类的某个特定对象而存在的。有时 Java 文献也使用这些术语。
我们可以在类的属性或方法前添加 `static` 关键字来表示这是一个静态属性或静态方法。 代码示例:
我们可以在类的字段或方法前添加 `static` 关键字来表示这是一个静态字段或静态方法。 代码示例:
```java
class StaticTest {
@@ -428,7 +428,7 @@ StaticTest.i++;
`++` 运算符将会使变量结果 + 1。此时 `st1.i``st2.i` 的值都变成了 48。
使用类名直接引用静态变量是首选方法,因为它强调了变量的静态属性。类似的逻辑也适用于静态方法。我们可以通过对象引用静态方法,就像使用任何方法一样,也可以通过特殊的语法方式 `Classname.method()` 来直接调用静态属性或方法 [^7]。 代码示例:
使用类名直接引用静态变量是首选方法,因为它强调了变量的静态属性。类似的逻辑也适用于静态方法。我们可以通过对象引用静态方法,就像使用任何方法一样,也可以通过特殊的语法方式 `Classname.method()` 来直接调用静态字段或方法 [^7]。 代码示例:
```java
class Incrementable {
@@ -546,7 +546,7 @@ os.arch=amd64
java.io.tmpdir=C:\Users\Bruce\AppData\Local\Temp\
```
`main()` 方法中的第一行会输出所有的系统属性,也就是环境信息。 **list()** 方法将结果发送给它的参数 **System.out**。在本书的后面,我们还会接触到将结果输出到其他地方,例如文件中。另外,我们还可以请求特定的属性。该例中我们使用到了 **user.name****java.library.path**
`main()` 方法中的第一行会输出所有的系统字段,也就是环境信息。 **list()** 方法将结果发送给它的参数 **System.out**。在本书的后面,我们还会接触到将结果输出到其他地方,例如文件中。另外,我们还可以请求特定的字段。该例中我们使用到了 **user.name****java.library.path**
<!-- Compiling and Running -->
### 编译和运行