查看完整版本: 關於書上寫的範例
頁: [1]

ww22511 發表於 2018-4-14 02:35 PM

關於書上寫的範例

不好意思 請問 public class ObjectA
{
   private ObjectB(<請問 這個 資料型態 是要我自己設一個 還是?) objectb;//宣稱物件 objectb
}
還有 為什麼 他類別A裡的方法 可以直接去叫用類別B 裡面的方法?
public void operation1()
{
  objectb.operation2();
  objectb.operation4();
}
我想要實際的做出來看看 這樣比較容易了解 但是 我做不出來...
能請各位指點一下嗎

<div></div>

codewice 發表於 2018-4-14 07:21 PM

關於第一題,看起來就是

1. 有個 ObjectB.java 的檔案,編譯之後會生成 ObjectB.class
2. 有個 ObjectA.java 的檔案,裡面就拿了 ObjectB 類別來生成一個物件 objectb (請注意大小寫,來分辨我說的是什麼東西)

所以第一題就是「是的,就是要寫一個 class ObjectB { .... }」

關於第二題,從附檔的 3.jpg 來看,class ObjectB 的幾個方法 operation2, operation4 被宣告成 public,所以任何物件都可以呼叫。其他還有 private/protected,你應該會在未來的章節學到這個東西。

另外再碎嘴一下跟問題無關的事

這本書的範例程式,排版看起來很不用心。基本的換行、縮排都沒做到,也完全沒有遵照 Java 的排版風格。我覺得把程式碼排得整齊好讀,至少是出書的基本要求。

另外通常在命名的時候,不會把類別(Class)跟物件(Object)搞混,所以拿 ObjectA 來當類別的命名根本是地雷。不知道作者是不是刻意這麼用,然後認為這樣對初學者比較友善?但我很確定在職場工作的時候,如果用這種規則去命名,應該很容易激怒同事。

如果還不很清楚類別跟物件的差別,可以去想像紅龜粿的製作過程。class 就是那個模版,把麵糰塞進去敲一下就是一個物件(Object, 有時候叫實體 instance) 出來。

所以我們會把類別命名成 ClassFoobar, 把物件命名成 foobarA, foobarB....etc.
ClassFoobar foobarA = new ClassFoobar();
ClassFoobar foobarB = new ClassFoobar();
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>
頁: [1]