[Java初探07]__關於面向物件的簡單認識
-
前言
類和物件,在我們學習Java語言的過程中,它們無時無刻不存在著,在我們還遠未詳細弄明白它們的意義之前,在我們不知不覺的下意識裡,我們都會直接或間接的用到它們,這是因為Java是一門面向物件的語言,在學習類與物件的前提下,我們應當先對面向物件有所瞭解.
我們都知道,Java語言是一門面向物件的語言,實際上類與物件,就是面向物件程式設計思想的重要基礎.
- 面向物件程式設計思想概述
面向物件的開發思想可以說是人類最自然的一種思考方式,它將所有預處理的問題抽象成為物件,同時瞭解這些物件的相應屬性以及展示這些物件的行為,以解決這些物件面臨的一些實際問題,面向物件設計的實質就是對現實社會中的物件進行建模操作.
-
物件
物件是什麼,按表面意思理解,物件就是表示我們眼中的某件事物.它可以是現實世界的任何一件事物,也可以是一個抽象的,我們自己腦海中構造的.
物件就是某個事物存在的實體,就例如人類,書桌,高樓大廈等,人類解決問題的方式總是不斷將複雜的事物簡化,於是就會思索這些物件由哪些組成,通常會將物件劃分為靜態部分和動態部分.
- 靜態部分,即物件不變的部分,稱之為屬性.任何物件都具有其自身屬性.
- 動態部分,即物件可能存在的行為,動作.如一個人會哭泣,微笑,行走奔跑等.
人們通過研究物件的屬性和行為來了解物件.
- 而面向物件抽象設計的思想,就是以物件來思考問題的,首先將現實世界中的實體抽象為物件.然後考慮這個物件具備的屬性和行為.
我們通過一個大雁南飛的問題來看看:
首先我們將大雁抽象為一個物件,接著觀察分析物件,大雁因該具有的屬性和行為:
我們分析完成後,這個物件的定義就完成了,然後就可以根據這個物件來解決大雁南飛的問題.
我們還可以發現,在現實生活中,很多大雁都具有這樣的特性,而大雁又不只一隻, 所以我們就將這些屬性和行為封裝起來,就組成了類,物件就是類抽象出來的一個例項.這其中的原理和圖書館圖書的分類類似,具有某些特徵的書歸為一類存放,而這類裡的書都可以說是這個類別的一個例項.
-
類
類,其實就如同我們日常生活中的類別一樣,指的是具有某一類相同特性的一類事物,描述的是一個群體,類不能用來單指某個事物,所以也不能當作某一事物來使用.
類是構造物件時所依賴的規範(因為物件都是基於類建立的).物件就是符合某個類的定義所產生出來的例項.
類是封裝物件的屬性和行為的載體.也可以說具有相同屬性和行為的一類實體被稱為類.
在Java語言中,類中物件的行為是通過方法的形式定義的,物件的屬性是以成員變數定義的.
-
面向物件程式設計的特點
-
封裝性
封裝是面向物件程式設計的核心思想,將物件的屬性和行為封裝起來,其載體就是類,類通常對使用者隱藏其實現的細節,這就是封裝思想,其實很容易理解,我們在使用某一方法時,只需要通過類.方法名呼叫,不用瞭解其實現細節.
採用封裝的思想保證了類內部資料結構的完整性,應用類的使用者不能輕易的直接操作類的資料結構.只能執行類允許公開的資料.這樣就避免了外部操作對內部資料的影響,提高了程式的可操作性.
-
-
繼承性
類和類之間同樣有著聯絡這種聯絡有很多種,其中比較典型的關係之一就是繼承,就像是圖書分類一樣,有著層層分級的關係,其中小類同樣擁有其父類的屬性和方法,這就是繼承關係.繼承性主要用到特定物件之間共有屬性.
- 多型性
前面我們瞭解了繼承,知道了父類與子類的關係,多型就是將父類物件應用與子類的特徵.多型的實現不依賴於具體的類,而是依賴於介面可抽象類的.在多型的機制中,比抽象類更方便的方式是將抽象類定義為介面.由抽象方法的集合就是介面.介面的概念在現實生活中也是十分常見的.
關於類,物件,及三大特性,介面,抽象類,抽象方法等概念會在後面單獨出一篇文章專門學習,這裡主要是為了簡單瞭解下面向物件的程式設計思想.
***
更新時間:
2019-4-8
1:09