給讀者(if there's any)
首先聲明**這不是一個完整的百框、專業(yè)的JAVA教程!
本人非計算機專業(yè)浸锨,是只學(xué)過一學(xué)期JAVA的菜鳥战秋,時隔半年和JAVA可說是若如初見璧亚,寫這篇筆記的主要目的是為下學(xué)期學(xué)習數(shù)據(jù)結(jié)構(gòu)打好基礎(chǔ)(距離開學(xué)只剩4天了!V拧)癣蟋。因為只是復(fù)習筆記,實際上只是記錄了一些我自己了解得不夠透徹的知識點吉嚣,其中許多是以易于理解但并不嚴謹?shù)恼Z句寫的。
之前僅使用簡書來閱讀蹬铺,今天第一次登錄用它做筆記的原因是它的編輯器支持markdown(結(jié)果第一次發(fā)布之后發(fā)現(xiàn)markdown的部分為毛并沒有生效尝哆。。甜攀。秋泄。是一定要用上面的按鈕嗎不!规阀!而且我找不到預(yù)覽模式哭瞎了)恒序,比較易于記錄代碼片段。好了廢話切斷開始復(fù)習谁撼!
***
可以說面對對象編程是為了模擬現(xiàn)實生活中的事物歧胁,從而使人以最自然的思維方式看待程序.
基本理論包括:
類class- 也就是“種類”、“類別”厉碟,例如哺乳動物喊巍、禽、獸(- -)等箍鼓。類定義了此類中的對象的數(shù)據(jù)以及他們能夠執(zhí)行的動作崭参。例如禽類的定義中可能有:重量(數(shù)據(jù))、吃(動作)等款咖。
對象object - 對象是類中的實例何暮,比如雞是禽類中的一個實例奄喂,獅子是獸類中的一個實例
消息傳遞Message Passing
引用維基百科中的描述
一個對象通過接受消息、處理消息海洼、傳出消息或使用其他類的方法來實現(xiàn)一定功能跨新,這叫做消息傳遞機制。
唔贰军,我還沒搞明白玻蝌,大概是說要使用對象名稱.方法名稱()這種格式來執(zhí)行?
繼承Inheritance
這涉及到當一個類有子類(subclass)的時候词疼,subclass會繼承父類(superclass)的所有屬性俯树。例如,人和猩猩都是哺乳類贰盗,哺乳類的共同特征是:溫血许饿、具備毛囊和汗腺等。人和猩猩作為哺乳類的子類舵盈,繼承了哺乳類的所有屬性陋率,并且還可具備比父類更多的信息和動作。例如哺乳動物可以爬行秽晚,人類和猩猩也可以爬瓦糟,人類還能直立行走,用電腦赴蝇,還能用電腦記筆記菩浙,猩猩還可以接受挑釁并沖向與之直視的人物、動物等句伶。
封裝性Encapsulation
簡而言之就是把東西裝進黑匣子里劲蜻,例如我正在使用杯子喝水、喝牛奶考余、喝果汁先嬉,而我并不需要知道這個杯子是如何制作的。再簡單點兒說就是私有變量公共方法private variables public methods
多態(tài)Polymorphism
>是指由繼承而產(chǎn)生的相關(guān)的不同的類楚堤,其對象對同一消息會做出不同的響應(yīng)疫蔓。例如,狗和雞都有“叫()”這一方法身冬,但是調(diào)用狗的“叫()”鳄袍,狗會吠叫;調(diào)用雞的“叫()”吏恭,雞則會啼叫拗小。維基百科(天啊好懶開始復(fù)制粘貼了)
抽象化Abstraction
抽象化是為了簡化程序的復(fù)雜程度。簡而言之樱哼,如果在某一設(shè)定下哀九,人類只需要爬行剿配,那么你完全可以把人類作為哺乳動物來看待,這樣就省去了一大批在這里無用的細節(jié)阅束,例如"用電腦記筆記"呼胚。