posts - 12,  comments - 0,  trackbacks - 0
           
          創建新的對象String s = new String("sfsff");s為對象的引用。
          數據的存儲:寄存器、棧、堆、靜態存儲、固定存儲、非內存的存儲
          基礎類型:Java決定了每種primitive(原始)類型的大小。它不像其它語言那樣,隨機器架構的不同而不同。變量大小的一致性是Java程序可移植的基礎之一。
          對象作用域:{String s=new String("sfsfsf");}end scope
          對象引用s在end scope處已經在作用域外,但對象還在,只是此時對象沒有人操作。
          Static關鍵字:通常只有創建了對象才能分配內存,才能夠使用類中的方法.假如我要一段代碼保存數據的內存或我要一個不從屬任何對象的方法,則通過Static關鍵字實現.當你聲明某種東西是static的時候,你的意思是這項數據或方法沒有被連到任何一個類的實例.因此即使不創建這個類 的實例也可以使用這個static數據或方法.但是static的方法不能直接訪問非static的成員或方法.
          static數據及方法的訪問:
          class StaticTest{static int i=23;}
          可以用兩種方法使用變量i,
          一種使用類的對象StaticTest st1=new StaticTest();st1.i++;
          一種是直接使用類名.StaticTest.i++;
          注意:如果使用類的多個對象使用變量i時,改變其中一個另一個跟著改變,因為他們使用的是同一段內存.
          StaticTest st1=new StaticTest();
          StaticTest st2=new StaticTest();
          st1.i++;
          st2.i++;
          如main函數中的方法.
          public static void main(String[] args){
              System.out.println("slfsfsfsf");
          }
          因為out是System類中聲明為static類型的對象




          posted @ 2007-11-28 16:59 仰望者 閱讀(120) | 評論 (0)編輯 收藏
          第一章:對象簡介
          對象有狀態、行為、標識。
          類與數據類型區別:
          類實際上是一種數據類型。它們的區別在于:類是程序員為解決特定問題而定做的,而數據類型是為了表示機器的存儲單元而設計的,它是現成的,是程序員無可奈何時的選擇。
          面向對象編程的挑戰之一就是:如何在問題空間的元素與解決空間的對象之間建立一種一對一的映射。

          可以向每個對象發送請求,這樣才能讓對象為你解決問題,但每個對象只能滿足某些請求,具體能夠滿足哪些請求呢?這是由對象的接口(interface)所定義的。決定接口的是對象的類型。接口只管你能向對象發送什么請求,但還必須要有滿足這一請求的代碼,這些代碼以及隱藏著的數據,組成了實現(implementation)

          將對象做為服務的提供者
          隱藏實現:
          將程序分為類的創造者(class creator)和客戶程序員(client programmer).訪問控制符:public,private,protected.public表示后面跟著的東西誰都能用。而private表示除非是類的創建者用這個類的方法進行訪問,否則沒人能訪問到這個元素。protected很像private,它們的區別在于,繼承類能夠訪問 protected成員但是不能訪問private成員。Java還有一個“缺省”的訪問權限。通常稱為package訪問權限。國為同屬這個 package的類可以訪問這個package中其它類的“缺省權限”的成員。但是出了這個package,它們就都是private的了。

          復用實現(合成):在一個類中用另一個類創建對象,為了能讓新的類提供我所設計的功能,它可以由任意多個,任意類型的對象,以任意形式組合在一起。由于你是用已有的類來合成新的類,因此這一概念被稱為合成。如果這個對象是動態合成的,通常稱為聚合。通常交合成稱為“有(has-a )"關系。

          繼承:(復用接口)當你繼承一個類時,你也創建了一個新類,這個新的類不僅包含了已有類的所有成員,更重要的是它復制了基類的接口,于是所有能夠傳給基類的消息也都可以傳給派生類。
          你有兩種辦法來區分新的派生出來的類和那個原來的基類。第一種方法很簡單:直接往派生類里加新的方法。這些新的方法不屬于基類的接口。也就是說由于基類不能完成所有的工作,你必須加上更多的方法。第二種方法是在新的類中修改基類方法的行為,這被稱為覆寫(override)那個方法。要覆寫一個方法直接在類中重新定義這個方法就行了。

          多態性:
          多態性指的是相關的對象按照各自類型來實現方法的能力。繼承性指的就是派生類(子類)繼承抽象類(基類、父類),它是一種類特殊化的方式,用于聯系派生類和抽象類。在這里我把這兩個特點一起舉例說明一下。在魔獸里,四個種族都有農民,而且屬性和方法基本一樣,那我們就可以為農民這個概念設置一個基類,然后將每族農民設為一個子類。每個子類方法的類型可能不一樣。在運行時,通過判定對象所屬的類型再去執行相應類型所對應的方法的。所以多態性與繼承是緊密關聯的。

          抽象類與接口(abstrcat與interface): 通常在有些設計方案中,你只想讓基類去表示由其派生出的類的接口。也就是你不想讓人創建一個基類的對象,而只是想把對象上傳給它,以期能使用這個類的接口。這樣你就需要使用abstract關鍵詞來把這個類做成抽象類。編譯器會阻止任何人創建abstrcat的對象。abstrcat 關鍵詞也可以用來表示這個方法還沒有實現--它就象是一個聲明”由這個類所派生出的所有類都有這個方法,但是它的實現不在這里“。abstrcat方法只能存在于abstrcat類里。如果有個類繼承了這個abstrcat類,那么它要么實現這個方法,要么也是一個abstrcat類。abstrcat方法能讓你將方法放到接口而不必為它寫一些無意義的代碼。interface關鍵詞更是對abstrcat類的概念的深化,它不允許你實現任何方法。如果你愿意你可以繼承多個接口,因為要繼承多個常規或是抽象類是不允許的。
          posted @ 2007-11-28 15:21 仰望者 閱讀(139) | 評論 (0)編輯 收藏
          僅列出標題
          共2頁: 上一頁 1 2 
          主站蜘蛛池模板: 昆明市| 南康市| 水城县| 当阳市| 济南市| 博兴县| 福泉市| 海安县| 彰武县| 梁山县| 建阳市| 安徽省| 吉林省| 台北县| 安康市| 夹江县| 蒙城县| 兴文县| 邹城市| 耿马| 临朐县| 收藏| 忻城县| 佛教| 随州市| 马边| 桑植县| 桃园市| 库伦旗| 诸城市| 珠海市| 潞城市| 临安市| 仙游县| 涡阳县| 徐汇区| 安吉县| 宁武县| 墨玉县| 香格里拉县| 新平|