當前位置:
首頁 > 最新 > 揭秘Java中的面向對象模型

揭秘Java中的面向對象模型

前面一系列文章講了Java的一些語法基礎知識、Java中的數據類型和Java中的運算符,基本上都是學習Java語言的基礎知識,從這一講開始將會逐步介紹Java面向對象編程的一些高級知識。所有提到Java語言特性的文章肯定都會提到Java是面向對象的,在我的一篇文章中也說了Java語言有哪些特性,這一篇文章就給大家講講Java面向對象這一知識,有一個面向對象的概念,為以後學習更深層次的東西打下基礎。

面向對象程序設計五個特徵:

在Java編程思想中提到了面向對象程序設計的五個特徵:

萬物皆為對象。也就是說世界上所有的事物都能通過抽象變成一個可以實現的對象。比如動物、建築物、服務。

程序是對象的集合,他們通過發送消息來告知彼此所有做的。程序是把要解決的問題抽象為若干的對象,這些對象之間通過消息來通知彼此做什麼和傳遞數據。比如:動物吃食物,這個程序包含了動物、食物兩種對象,通過吃這一動作來告知動物吃食物。

每個對象都有自己由其他對象構成的存儲。意思是對象之間可以是包含的關係,一個對象中可以含有另外一個對象,這樣就構成了一個新的對象。比如:發動機,汽車,汽車這一對象中包含發動機。

每個對象都擁有其類型。每個對象都是某個類的一個實例,這個類就是抽象出來的一類事物,這個類與其他類之間的重要區別就是行為,它能接受什麼樣的消息。比如:動物和食物,動物有吃的行為,移動的行為,而食物是沒有的。

某一特定類型的所有對象都可以接受同樣的消息。這是判斷某一對象是不是某個類型的標準。比如你定義了動物的一些行為,比如移動,那麼所有的動物都要相應移動這一消息,無論你是跑著移動、飛著移動,還是游著移動。

上面是面向對象程序設計的基本特徵,下面介紹面向對象中用到的一些關鍵詞。

類:

類描述了具有相同特性(數據元素)和行為(功能)的對象集合,也是一個數據類型。比如說動物,它有重量、大小的特徵(數據元素),也有移動、吃的行為(功能)。

對象:

對象是具有狀態、行為和標識的是上面類的一個實例。每一個對象都有內部數據(它描述該對象的狀態)和方法(它產生行為),並且每一個對象都可以與其他對象區分開來,就是一個對象在內存中都有一個唯一的地址。在Java中對象都必須通過new來產生。

繼承:

把某些具有相同屬性和行為的事物抽象起來集中到一個類中,一個新類可以從這個類中派生,新類具有父類的所有的行為和特徵,這個過程稱為類繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類),在Java中是通過 ChildCalss extends FartherClass 這種方式實現的。

抽象:

抽象在編程中就是把你要解決的問題分解為一個一個的小問題,直到你不能再分解為止,然後把你分解的這些小問題用一個一個的對象描述對應起來,將問題集合分解為對象集合。實際中就是不斷的問需要哪些服務,需要哪些對象才能履行它們的服務。良好的面向對象的的設計中,每個對象都可以很好的完成一項任務,但是它並不試圖做更多的事。

多態:

多態指的是在繼承關係中子類繼承父類的行為,這種行為在子類具體實現時可以是不一樣的。比如動物這一父類中有move()方法,在鳥類子類中和魚類子類中move的實現是不一樣的。在Java中多態是通過重寫(override:把父類的方法重新實現)和重載(overload:通過方法參數的不同在子類中來重新創建名字相同的方法)來實現的。

總結:

面向對象這一知識點太大,包含了面向對象的分析、面向對象的設計和面向對象的編程,這三部分每一部分都是一個很大的課題,包含的知識不僅僅是編程領域,還有哲學等其他知識,我肯定達不到大師級的那種分析。上面對於面向對象編程一些基本概念的介紹是看書加上自己的理解,個人水平有限,對於面向對象的理解還不夠深入,有寫的不合適的地方還請留言,批評指正。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 java學習吧 的精彩文章:

Java中的靜態綁定和動態綁定
Java初學者的建議(上)
Java 新手問題匯總
影響Java EE性能的十大問題
新手學習Java需要學習哪些基礎?

TAG:java學習吧 |

您可能感興趣

Lua 面向對象
Perl 面向對象
AppleCare+ for Mac正式面向中國市場推出
面向不同需求的對象存儲系統對比:Ceph與Swift
蘋果AppleCare+for Mac正式面向中國市場推出
思科聯合Pure Storage發布面向AI的FlashStack融合系統
Dell宣布與Google合作:面向商務領域推出Chromebook
出門問問發布面向企業場景的智能交互屏TicKasa Show
Facebook Reality Labs正式成立面向VR/AR開發
TensorFlow官方最新tf.keras指南:面向對象構建深度網路
Mentor面向智能家居的IoT方案
印度運營商Reliance Jio面向家庭推出AR頭顯套裝
谷歌 I/O 開發者大會上的 Smart Compose 功能開始面向 Gmail 桌面用戶公測
Unity 編輯器現已正式面向 Linux 推出
三星或正在研發第二款Bixby智能音箱,對標Google Home Mini面向低端市場
Surface Phone:ARW處理器和觸屏筆,將面向高端市場開放
面向 JS 開發者的機器學習框架 TensorFlow.js 以及相關示例
Semtech的LoRa技術被集成到群登科技(AcSiP)面向物聯網應用的模塊之中
微軟面向醫療機構推出Healthcare Bot服務
TPCast宣布推出面向HTC Vive的新型多用戶無線VR解決方案