Java OOP(Object Oriented Programming)个人理解及总结
生活随笔
收集整理的這篇文章主要介紹了
Java OOP(Object Oriented Programming)个人理解及总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
- 面向對象編程(Object Oriented Programming,OOP,面向對象程序設計)
- 其三大特征:封裝,繼承,多態;
- 封裝:解決數據的安全問題。
- 繼承:解決代碼的重用問題。
- 多態:解決程序的拓展問題。
封裝(Encapsulation)
-
個人理解:將該類的代碼和數據包裝,隱藏起來,形成一個保護屏障;同時要想訪問該的代碼和數據,必須通過嚴格的接口控制;
-
優點:
- 減少耦合(具體包括哪些耦合?代碼,功能)。
- 便于修改自身結構。
- 便于內部管理(成員變量),高度的中央集權。
- 簡潔方便,便于調用。
- 例如:常用的JavaBean;
- 先定義該類的(私有)屬性,以及相關的公用方法;
- 在調用該類時,直接創建該類的實例對象,調用公用方法即可;便可達到上述優點;
繼承
- 個人理解:為了解決相同,類似的問題,將二者相似,共有的屬性行為,提取出來進而新建父類,通過繼承的方式解決代碼量大且臃腫;同時可以增加后期代碼可維護性;
- 格式
class father {}class daughter extend father {}
-
注
- Java不支持多繼承,多繼承通過接口實現;
- Java支持多重繼承,即可理解為爸爸繼承爺爺,孫子繼承爸爸,進而實現孫子繼承爺爺;
- 子類無法繼承父類私有方法;
- 子類可以擁有自己私有方法,同時可以對父類進行拓展;
- Java所有類都繼承與java.lang.Object;
-
關鍵字使用:
- super 和 this:前者用來引用當前對象的父類;后者用于對自己的引用;
- final 最終類,無法被繼承;
-
對于構造器,不懂(需要的朋友可以自行學習,并推薦給本人);
多態
-
個人理解:面對一行為,具有多種不同表現形式,多態性是對象多種表現形式的體現;
-
作用:使程序具有良好的拓展,可以對所有類的對象進行通用處理;
-
理解,從未使用過,概念模糊;
-
多態的實現方式:
- 重寫
- 接口
- 抽象類和抽象方法
-
補充:
對于重寫與重載:- 參數列表與被重寫方法的參數列表必須完全相同;
- 重載在一個類中,方法名字相同,參數不同,返回類型可相同也可不同;
- 代碼參考:
public class Overloading {public int test(){System.out.println("test1");return 1;}public void test(int a){System.out.println("test2");} //以下兩個參數類型順序不同public String test(int a,String s){System.out.println("test3");return "returntest3";} public String test(String s,int a){System.out.println("test4");return "returntest4";} public static void main(String[] args){Overloading o = new Overloading();System.out.println(o.test());o.test(1);System.out.println(o.test(1,"test3"));System.out.println(o.test("test4",1));}
}
Console:test11test2test3 returntest3test4returntest4
- 總結:
- 方法重載,同類下多個同名方法,參數數量不同,類型不同,次序不同;
- 方法重寫,子類存在與父類同名方法,參數個數,類型相同,返回值相同。
- 前者是一個類的多態性體現,后者則是子類與父類的一種多態性表現;
總結
以上是生活随笔為你收集整理的Java OOP(Object Oriented Programming)个人理解及总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java基本数据之间的类型转换
- 下一篇: 使用最新版(2020)IntelliJ