java面向对象编程知识点总结
一:今天完成
上午詳細了解了java面向對象編程的一些細節,記錄如下。
1)類
是一種引用類型,包含一個簽名和一個主體,主體是放在花括號里面的成員,成員包括字段和方法,還有構造方法、初始化程序和嵌套類型。
常用成員有四種:類字段、類方法、實例字段、實力方法。
其它引用類型還包括數組、接口、枚舉和注解。
2)字段和方法
示例:一個簡單的類和成員
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | public?class?Circle{ //類字段 public?static?final?double?PI=3.14159; //類方法 public?static?double?radiansToDegrees(double?radians){ ????return?radians *?180?/ PI; }?? ?? //實例字段 public?doule r; //兩個實例方法 public?double?area(){ ??return?PI*r*r; } public?double?circumference(){ ??return?2*PI*r; } } |
還有就是this的使用,它竟然是一個隱式參數!第一次知道,,也可能是我之前沒留意。意義是“在當前對象上調用實例方法”。
3)創建和初始化對象
構造方法看作是類成員,可以定義多個構造方法,只要參數列表不一樣就行。在一個構造方法中也可以調用其它構造方法,可以避免大量的初始化代碼。
4)子類和繼承
對于super關鍵字,需要了解的是:在子類中調用超類構造方法時必須在第一個語句中調用。代碼如下
| 1 2 3 4 5 | publc PlaneCircle(double?x;double?y;double?r){ super(r);//調用超類的circle()構造方法 this.cx=x; this.cy=y; } |
這里面涉及到構造方法鏈,就是創建對象時的一系列構造方法,從子類到頂端的Object類為止。
如何引用被遮蓋的字段?把this(或 類的實例)矯正為適當的超類,然后再訪問字段。
例如有三個類A、B和C。它們都定義了一個x的字段,并且C是B子類,B是A子類,那么,在C中可以這樣
| 1 2 3 4 5 6 7 8 9 | x;//c類 this.x;//c類 super.x;//B類 ((B)this).x;/B類 ((A)this).x;//A類<br>類似的,如果c是C的實例,那可以這樣引用<br>c.x;<br>((B)c).x<br>((A)c).x |
還需要分清方法覆蓋和字段遮蓋。
注意調用覆蓋方法時的super和調用超類時的super用法是不一樣的。
5)數據隱藏和封裝
java的包不能“嵌套”,比如java.A.a和java.A是不同的包
對于訪問控制和繼承,如下
總結了一下成員訪問規則,如下
對于有些數據訪問器方法(getter,setter),需要記住的是,public方法訪問字段可以進行檢查。
6)抽象類和方法
有些抽象類可以沒有任何抽象方法,比如classLoder。
示例代碼:一個抽象類和兩個具體類
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | public?abstract?class?Shape{ //兩個抽象方法 public?abstract?double?area(); public?abstract?double?circumference();? } //具體子類 class?Circle?extends?Shape{ public?static?final?double?PI=?3.14159265358;//類字段 protected?double?r;//實例字段 public?Circle(double?r){this.r=r}//構造方法 public?double?getRadius(){?return?r;}//訪問器 public?double?area(){?return?PI*r*r ;}//實現的兩個抽象方法 public?double?circumference(){?return?2?*PI*r ;} } |
對象之間也可以發生轉換,分為放大和縮小轉換
| 1 2 | Object? o="string";//放大 String s= (String)o;//縮小 |
數組轉換規則只適用由對象或數組 組成的數組,基本類型的數組不能轉換。
二:下午計劃
看完并記錄java類型系統這一章,有時間的話開始做那個任務一的第一個板塊
三:遇到問題
為什么感覺平時寫代碼沒有感覺到有這么多的知識點?是沒用到嗎?還是自己缺少思考?
四:收獲感悟
相對于其它面向對象的語言,java真可以說的上是入門首選,即便它有時候會顯得啰嗦一點。
轉載于:https://www.cnblogs.com/yishengyishiduaini321/p/6534404.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的java面向对象编程知识点总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STM32应用实例六:与MS5837压力
- 下一篇: 【java 类加载的深入研究1】load