看到Objects and Classes這一章了,開始系統地接觸OOP的思想,而不像以前用Delphi只是憑感覺地寫程序。

          1. 構造函數(Constructor)前不能有void修飾符。

          2. instance variable, instance method, anonymous object 的概念

          3. 要測試某個類的代碼是否正確時,只要簡單地加入一個main方法即可。

          4. 類的數據域(data field)中的類型在定義時會被自動賦予一個默認值,但程序中的變量在定義后卻并不會被賦初值。
          class Student {
          String name; //默認賦 null
          int age; //默認賦 0
          //....
          }

          class Test {
          //...
          public static void main(Strings[] args) {
          int x; //不賦初值
          //...
          }
          }

          5. public private 和 package-private 訪問權限
          public 修飾語使得類、方法、數據域均能被任何一個類訪問
          private 保護方法和數據域,使它們只能被該類自身訪問
          無修飾語則默認為package-private,即類、方法、數據域只能被同一個package的任何類訪問。

          一般來講,構造函數應該聲名為public,但要阻止用戶創建一個類的實例(instance)時,構造函數就應該聲名為private,如Math類。

          6. client 的概念 (programs that use a specific class)
          當修改某個類以后,意味著對這個類的數據域具有直接訪問權的client的代碼也很有可能需要修改,為了減少這種工作量,引入數據封裝的概念(data field encapsulation)。
          即將數據域設為private,對于需要訪問的數據增加getPropertyName()方法,類似地,對于需要修改的數據增加setPropertyName(dataType propertyValue)方法。這兩個方法能夠起到一種“過濾”的作用(至少我是這么理解的 =_=)。
          getPropertyName 方法稱為 accessor,setPropertyName 方法稱為 mutator。
          當某個類在創建后,它的內容就無法修改,這個類稱為 immutable class,類似可以定義 immutable object。
          當一個類所有的數據都是private,也不存在 mutator時,并不一定 immutable。
          可以通過
          propertyType value = objectA.getPropertyType()
          由于value所在的那個類可能存在mutator,因此就可以通過value句柄(Delphi里經??吹降男g語,覺得用這個詞比較形象)修改objectA的內容,感覺有點像 hacking....

          7. 靜態(static)變量、方法的概念
          注意static方法中不能引用instance變量,因為static方法屬于整個類,而不僅局限于某個實例。

          8. 變量的作用域
          和Pascal C 都差不多,內框架的變量覆蓋外框架的同名變量。
          但是Java多了 this 關鍵字(不知道C++有沒有類似的),可以訪問外框架的同名變量。
          一個好的編程風格:在實現(implement)構造函數的時候,盡可能多的使用 this(arg-list),增強程序的可讀性。注意Java要求在構造函數中this語句出現在其他語句的前面。
          public class Circle {
          private double radius;

          public Circle(double raduis) {
          this.radius = radius;
          }

          pubic Circle() {
          this(1.0);
          }
          }


          posts - 403, comments - 310, trackbacks - 0, articles - 7
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          1.24 Java notes

          Posted on 2007-04-22 20:22 ZelluX 閱讀(155) 評論(0)  編輯  收藏 所屬分類: OOP
          2007-01-24 22:12:04
          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 湖南省| 乌鲁木齐市| 德令哈市| 丰台区| 乐业县| 江陵县| 兴安县| 新蔡县| 曲阜市| 密山市| 辛集市| 盐源县| 怀远县| 张家口市| 新兴县| 沈阳市| 扎囊县| 寻乌县| 博乐市| 宁阳县| 赫章县| 阿鲁科尔沁旗| 谢通门县| 阿城市| 株洲市| 当雄县| 东光县| 青冈县| 泰兴市| 长宁区| 浦江县| 太和县| 颍上县| 阜新市| 澎湖县| 永德县| 通许县| 霍林郭勒市| 肥城市| 新营市| 石门县|