steinqiao  
          日歷
          <2011年11月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910
          統計
          • 隨筆 - 8
          • 文章 - 0
          • 評論 - 1
          • 引用 - 0

          導航

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

           

           

           

           

          JAVA SE Lesson 1

           

           

          1. 類是一種抽象的概念,對象是類的一種具體表示形式,是具

           

          體的概念。先有類,然后由類來生成對象(Object)。對象又

           

          叫做實例(Instance)。

           

          2. 類由兩大部分構成:屬性以及方法。屬性一般用名詞來表示,

           

          方法一般用動詞來表示。

           

          3. 如果一個 java 源文件中定義了多個類,那么這些類中最多只

           

          能有一個類是 public 的,換句話說,定義的多個類可以都不

           

          public 的。

           

          4.  Java 中進行方法的參數傳遞時,無論傳遞的是原生數據類

           

          型還是引用類型,參數傳遞方式統一是傳值(pass by value)。

           

          Java 中沒有傳引用(pass by reference)的概念。

           

          5. 方法重載(Overload)。表示兩個或多個方法名字相同,但方

           

          法參數不同。方法參數不同有兩層含義:1)參數個數不同。

           

          2)參數類型不同。 注意:方法的返回值對重載沒有任何影

           

          響。

           

          6. 構造方法重載:只需看參數即可。如果想在一個構造方法中

           

          調用另外一個構造方法,那么可以使用 this()的方式調用,this()

           

          括號中的參數表示目標構造方法的參數。this()必須要作為構

           

          造方法的第一條語句,換句話說,this()之前不能有任何可執

           

          行的代碼。

           

          7. 繼承(Inheritence):Java 是單繼承的,意味著一個類只能從


           

           

           

           

          另一個類繼承(被繼承的類叫做父類【基類,base class】,

           

          承的類叫做子類),Java 中的繼承使用 extends 關鍵字。

           

          8. 當生成子類對象時,Java 默認首先調用父類的不帶參數的構造

           

          方法,然后執行該構造方法,生成父類的對象。接下來,再

           

          去調用子類的構造方法,生成子類的對象。【要想生成子類的

           

          對象,首先需要生成父類的對象,沒有父類對象就沒有子類

           

          對象。比如說:沒有父親,就沒有孩子】。

           

          9. super 關鍵字:super 表示對父類對象的引用。

           

          10. 如果子類使用 super()顯式調用父類的某個構造方法,那么在

           

          執行的時候就會尋找與 super()所對應的構造方法而不會再去

           

          尋找父類的不帶參數的構造方法。與 this 一樣,super 也必須

           

          要作為構造方法的第一條執行語句,前面不能有其他可執行

           

          語句。

           

          11. 關于繼承的 3 點:

           

          a) 父類有的,子類也有

           

          b) 父類沒有的,子類可以增加

           

          c) 父類有的,子類可以改變

           

          12. 關于繼承的注意事項

           

          a) 構造方法不能被繼承

           

          b) 方法和屬性可以被繼承

           

          c) 子類的構造方法隱式地調用父類的不帶參數的構造方法

           

          d) 當父類沒有不帶參數的構造方法時,子類需要使用 super 來顯


           

           

           

           

          式地調用父類的構造方法,super 指的是對父類的引用

           

          e) super 關鍵字必須是構造方法中的第一行語句。

           

           

          13. 方法重寫(Override):又叫做覆寫,子類與父類的方法返回

           

          類型一樣、方法名稱一樣,參數一樣,這樣我們說子類與父

           

          類的方法構成了重寫關系。

           

          14. 方法重寫與方法重載之間的關系:重載發生在同一個類內部

           

          的兩個或多個方法。重寫發生在父類與子類之間。

           

          15.

           

          super.run()形式調用父類的 run()方法,其中 super.run()不必放

           

          在第一行語句,因此此時父類對象已經構造完畢,先調用父

           

          類的 run()方法還是先調用子類的 run()方法是根據程序的邏輯

           

          決定的。

           

          16. 在定義一個類的時候,如果沒有顯式指定該類的父類,那么

           

          該類就會繼承于 java.lang.Object 類(JDK 提供的一個類,Object

           

          類是 Java 中所有類的直接或間接父類)。

           

          17. 多態(Polymorphism):我們說子類就是父類(玫瑰是花,男

           

          人是人),因此多態的意思就是:父類型的引用可以指向子類

           

          的對象。

           

           

           

          Java SE Lesson 2

           

           

           

          1. 多態:父類型的引用可以指向子類型的對象。

          2. Parent p = new Child();當使用多態方式調用方法時,首先檢查父類中是否有

          sing()方法,如果沒有則編譯錯誤;如果有,再去調用子類的 sing()方法。

          3. 一共有兩種類型的強制類型轉換:

          a) 向上類型轉換(upcast):比如說將 Cat 類型轉換為 Animal 類型,即將子類型

          轉換為父類型。對于向上類型轉換,不需要顯式指定。

          b) 向下類型轉換(downcast):比如將 Animal 類型轉換為 Cat 類型。即將父類型

          轉換為子類型。對于向下類型轉換,必須要顯式指定(必須要使用強制類型

          轉換)。

          4. 抽象類(abstract class):使用了 abstract 關鍵字所修飾的 類叫做抽象類。抽

          象類無法實例化,也就是說,不能 new 出來一個抽象類的對象(實例)。

          5. 抽象方法(abstract method):使用 abstract 關鍵字所修飾的方法叫做抽象方

          法。抽象方法需要定義在抽象類中。相對于抽象方法,之前所定義的方法叫

          做具體方法(有聲明,有實現)。

          6. 如果一個類包含了抽象方法,那么這個類一定是抽象類。

          7. 如果某個類是抽象類,那么該類可以包含具體方法(有聲明、有實現)。

          8. 如果一個類中包含了抽象方法,那么這個類一定要聲明成 abstract class,也

          就是說,該類一定是抽象類;反之,如果某個類是抽象類,那么該類既可以

          包含抽象方法,也可以包含具體方法。

          9. 無論何種情況,只要一個類是抽象類,那么這個類就無法實例化。

          10. 在子類繼承父類(父類是個抽象類)的情況下,那么該子類必須要實現父類

          中所定義的所有抽象方法;否則,該子類需要聲明成一個 abstract class

          11. 接口(interface):接口的地位等同于 class,接口中的所有方法都是抽象方

          法。在聲明接口中的方法時,可以使用 abstract 關鍵字,也可以不使用。通

          常情況下,都會省略掉 abstract 關鍵字。

          12. 可以將接口看作是特殊的抽象類(抽象類中可以有具體方法,也可以有抽象

          方法,而接口中只能有抽象方法,不能有具體方法)。

          13. 類可以實現接口。實現使用關鍵字 implements 表示,代表了某個類實現了

          某個接口。

          14. 一個類實現了某個接口,那么該類必須要實現接口中聲明的所有方法。如果

          該類是個抽象類,那么就無需實現接口中的方法了。

          15. Java 是單繼承的,也就是說某個類只能有唯一一個父類;一個類可以實現多

          個接口,多個接口之間使用逗號分隔。

          16. 多態:所謂多態,就是父類型的引用可以指向子類型的對象,或者接口類型

          的引用可以指向實現該接口的類的實例。關于接口與實現接口的類之間的強

          制類型轉換方式與父類和子類之間的強制類型轉換方式完全一樣。

          17. static 關鍵字:可以用于修飾屬性,也可以用于修飾方法,還可以用于修飾

          類(后面的課程講)

          18. static 修飾屬性:無論一個類生成了多少個對象,所有這些對象共同使用唯

          一一份靜態的成員變量;一個對象對該靜態成員變量進行了修改,其他對象

          的該靜態成員變量的值也會隨之發生變化。如果一個成員變量是 static 的,


           

           

           

          那么我們可以通過類名.成員變量名的方式來使用它(推薦使用這種方式)。

          19. static 修飾方法:static 修飾的方法叫做靜態方法。對于靜態方法來說,可以

          使用類名.方法名的方式來訪問。

          20. 靜態方法只能繼承,不能重寫(Override)。

          21. final 關鍵字:final 可以修飾屬性、方法、類。

          22. final 修飾類:當一個類被 final 所修飾時,表示該類是一個終態類,即不能被

          繼承。

          23. final 修飾方法:當一個方法被 final 所修飾時,表示該方法是一個終態方法,

          即不能被重寫(Override)。

          24. final 修飾屬性:當一個屬性被 final 所修飾時,表示該屬性不能被改寫。

          25.  final 修飾一個原生數據類型時,表示該原生數據類型的值不能發生變化

          (比如說不能從 10 變為 20);如果 final 修飾一個引用類型時,表示該引用

          類型不能再指向其他對象了,但該引用所指向的對象的內容是可以發生變化

          的。

          26. 對于 final 類型成員變量,一般來說有兩種賦初值方式:

          a) 在聲明 final 類型的成員變量時就賦上初值

          b) 在聲明 final 類型的成員變量時不賦初值,但在類的所有構造方法中都為其賦

          上初值。

          27. static 代碼塊:靜態代碼塊。靜態代碼塊的作用也是完成一些初始化工作。首

          先執行靜態代碼塊,然后執行構造方法。靜態代碼塊在類被加載的時候執行,

          而構造方法是在生成對象的時候執行;要想調用某個類來生成對象,首先需

          要將類加載到 Java 虛擬機上(JVM),然后由 JVM 加載這個類來生成對象。

          28. 類的靜態代碼塊只會執行一次,是在類被加載的時候執行的,因為每個類只

          會被加載一次,所以靜態代碼塊也只會被執行一次;而構造方法則不然,每

          次生成一個對象的時候都會調用類的構造方法,所以 new 一次就會調用構造

          方法一次。

          29. 如果繼承體系中既有構造方法,又有靜態代碼塊,那么首先執行最頂層的類

          的靜態代碼塊,一直執行到最底層類的靜態代碼塊,然后再去執行最頂層類

          的構造方法,一直執行到最底層類的構造方法。注意:靜態代碼塊只會執行

          一次。

          30. 不能在靜態方法中訪問非靜態成員變量;可以在靜態方法中訪問靜態的成員

          變量。可以在非靜態方法中訪問靜態的成員變量。

          31. 總結:靜態的只能訪問靜態的;非靜態的可以訪問一切。

          32. 不能在靜態方法中使用 this 關鍵字。

          posted on 2011-11-22 22:35 斯坦 閱讀(329) 評論(1)  編輯  收藏
          評論:
          • # re: javaSE 對前面面向對象和方法參數傳遞的補充  習近平 Posted @ 2013-10-06 16:06
            在java面向對象中如何調用類中無返回帶參數的方法  回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
           
          Copyright © 斯坦 Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 昌吉市| 威远县| 玉树县| 五大连池市| 扶余县| 合水县| 南召县| 尉犁县| 吉水县| 油尖旺区| 简阳市| 朝阳区| 海宁市| 醴陵市| 仁怀市| 吴旗县| 和龙市| 淮滨县| 平昌县| 景德镇市| 苍山县| 沅江市| 缙云县| 阳泉市| 礼泉县| 桃源县| 会东县| 信丰县| 石河子市| 门头沟区| 宣武区| 黄梅县| 曲周县| 田东县| 准格尔旗| 巫山县| 延长县| 竹北市| 秦皇岛市| 镇坪县| 阜康市|