Skip to content

Commit 0ec5253

Browse files
authored
Merge pull request JustinSDK#7 from starbops/patch-2
Update CH07.md
2 parents e27887d + 226522f commit 0ec5253

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

docs/CH07.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ public class Account {
131131
<pre>Account account1 = new Account();
132132
Account account2 = new Account("123-4567", 100.0);</pre>
133133

134-
在上面的程式片段中宣告了 account1 與 account2 兩個 Account 型態的參考名稱,並讓它們分別參考至物件,account1 所參考的物件在建立時並不指定任何引數,所以根據之前對 Account 類別的定義,account1 所參考物件的 balance 將設定為 0.0,accountNumber 設定為 "empty";accont2 所參考的物件在新建時則給定兩個引數,所以 account2 所參考物件的 balance 設定為 100.0,而 accountNumber 設定為 "empty"。
134+
在上面的程式片段中宣告了 account1 與 account2 兩個 Account 型態的參考名稱,並讓它們分別參考至物件,account1 所參考的物件在建立時並不指定任何引數,所以根據之前對 Account 類別的定義,account1 所參考物件的 balance 將設定為 0.0,accountNumber 設定為 "empty";account2 所參考的物件在新建時則給定兩個引數,所以 account2 所參考物件的 balance 設定為 100.0,而 accountNumber 設定為 "123-4567"。
135135

136136
要透過公開成員來操作物件或取得物件資訊的話,可以在物件名稱後加上「.」運算子來進行,例如:
137137
<pre>account1.getBalance();
@@ -359,7 +359,7 @@ public class SafeArrayDemo {
359359

360360
### 7.1.5 關於 this
361361

362-
請您回顧一下範例 7.1,在範例的 Account 類別中定義有 accountNumber 與 balance 成員,當您使用 Account 類別新增兩個物件並使用 account1 與 account2 來參考時,account1 與 account2 所參考的物件會各自擁有自己的 accountNumber 與 balance 資料成員,然而方法成員在記憶體中會只有一份,當您使用 account1.getBalance() 與 account1.getBalance() 方法取回 balance 的值時,既然類別的方法成員只有一份,getBalance() 時如何知道它傳回的 balance 是 account1 所參考物件的 balance,還是 account2 所參考物件的 balance 呢?
362+
請您回顧一下範例 7.1,在範例的 Account 類別中定義有 accountNumber 與 balance 成員,當您使用 Account 類別新增兩個物件並使用 account1 與 account2 來參考時,account1 與 account2 所參考的物件會各自擁有自己的 accountNumber 與 balance 資料成員,然而方法成員在記憶體中會只有一份,當您使用 account1.getBalance() 與 account2.getBalance() 方法取回 balance 的值時,既然類別的方法成員只有一份,getBalance() 時如何知道它傳回的 balance 是 account1 所參考物件的 balance,還是 account2 所參考物件的 balance 呢?
363363

364364
![物件實例擁有自己的資料成員](../images/img07-04.png)
365365

@@ -737,7 +737,10 @@ public class UseRecursion {
737737
圖 7.5 沒有被名稱參考到的物件資源將會被回收
738738

739739
範例7.13簡單的示範了finalize()方法的使用。
740+
740741
 範例7.13 GcTest.java
742+
743+
```java
741744
public class GcTest {
742745
private String name;
743746

@@ -750,7 +753,8 @@ public class GcTest {
750753
protected void finalize() {
751754
System.out.println(name + "被回收");
752755
}
753-
}.
756+
}
757+
```
754758

755759
使用範例 7.14來作個簡單的執行測試。
756760

@@ -798,4 +802,4 @@ public class UseGC {
798802
- 瞭解靜態(static)成員的作用
799803
- 瞭解如何重載方法
800804

801-
在物件導向程式設計中,只是單純的封裝物件特性只能解決一部份的問題,有時候您必須提取出物件的共同抽象特性並加以定義,然後再「繼承」(Inherit)抽象的定義對個別的物件加以實作,有時您必須繼承某個類別並重新改寫類別中的某些定義,這在下一個章節中都會加以說明,並且您也將瞭解「抽象類別」(Abstract class)與「介面」(Interface)的不同。
805+
在物件導向程式設計中,只是單純的封裝物件特性只能解決一部份的問題,有時候您必須提取出物件的共同抽象特性並加以定義,然後再「繼承」(Inherit)抽象的定義對個別的物件加以實作,有時您必須繼承某個類別並重新改寫類別中的某些定義,這在下一個章節中都會加以說明,並且您也將瞭解「抽象類別」(Abstract class)與「介面」(Interface)的不同。

0 commit comments

Comments
 (0)