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