面試 啥是物件導向?

2021-10-10 02:55:11 字數 1646 閱讀 2986

最近聽到一位技術很牛的同學分享了他的面試經歷,據他所述,唯一難到他的問題,居然是程式設計師最熟悉東西–什麼是物件導向?

我相信無論是初學者還是老程式設計師,都有乙個標準答案。但面試的時候,我們所熟悉的答案,是否就能讓面試官滿意呢?

物件導向是一種思想,是基於面向過程而言的,就是說物件導向是將功能等通過物件來實現,將功能封裝進物件之中,讓物件去實現具體的細節;這種思想是將資料作為第一位,而方法或者說是演算法作為其次,這是對資料一種優化,操作起來更加的方便,簡化了過程。物件導向有三大特徵:封裝性、繼承性、多型性,其中封裝性指的是隱藏了物件的屬性和實現細節,僅對外提供公共的訪問方式,這樣就隔離了具體的變化,便於使用,提高了復用性和安全性。對於繼承性,就是兩種事物間存在著一定的所屬關係,那麼繼承的類就可以從被繼承的類中獲得一些屬性和方法;這就提高了**的復用性。繼承是作為多型的前提的。多型是說父類或介面的引用指向了子類物件,這就提高了程式的擴充套件性,也就是說只要實現或繼承了同乙個介面或類,那麼就可以使用父類中相應的方法,提高程式擴充套件性,但是多型有一點不好之處在於:父類引用不能訪問子類中的成員

我覺得面試官應該是想聽到物件導向給程式設計帶來的好處,也就是物件導向的特點和它的特性。

這裡大佬給出的回答思路:

(1)物件導向思想的由來;

(2)如何理解物件導向程式設計思想;

(3)自己對物件導向思想三大特性的理解。

答:(1)首先物件導向是一種程式設計思想。在物件導向這種程式設計思想出現以前,主要是以c為首的面向過程的語言,它更多的是按照計算機處理事務的思想來編寫**,被稱為函式,這種程式設計思想對我們人來說太複雜,不符合我們人類的思考方式,特別是對新手不是很友好,因此物件導向的程式設計思想孕育而生。

這裡擴充套件一下,物件導向之父–alan kay

alan kay是物件導向之父大概是有爭議的,因為公認的第乙個oo語言是simula,由另外兩個圖靈獎得主(2023年)ole-johan dahl and kristen nygaard發明,所以wikipedia將三者都稱為oo之父。不過考慮到物件導向程式設計這個名字卻是alan kay的發明。

附上老人家**:

答:(2)然後要理解物件導向,前提要理解什麼是物件;萬物皆物件這句話就能說明什麼是物件,但這個太抽象,舉個簡單的例子,你是乙個物件,我是乙個物件,電腦是乙個物件,房子是乙個物件,宇宙是乙個物件等等等,只要你能說的出來的東西都可以認為是乙個物件;那麼物件導向就可以理解為把任何事物抽象成乙個物件來對待,之後再對這個物件進行相關的操作。

ke答:(3)最後面試官可能會問,物件導向有什麼好處啊?

說到好處,那麼我們就可以把我們所熟知的三大特性的知識(封裝,繼承,多型)用自己的理解和言語再跟「和藹可親」的面試官說一遍就行了

面試題 什麼是物件導向程式設計

什麼是物件導向程式設計?對物件進行程式設計 萬物皆可為物件 所有事物都可以抽象為物件 我們將物件的屬性和行為 方法 統一到乙個 類 中 然後例項化類,即規定物件特定的屬性和方法 這樣具體的物件就能完成一系列不同的行為 這就是物件導向程式設計 它有三個特徵 封裝 繼承 多型 封裝就是說隱藏物件的屬性和...

啥 啥 啥,服務治理是個啥

首先,先說下服務治理的邊界,本質上任何能提公升服務可用性,效能,讓服務更穩定等等,只要是能讓服務執行的更好,都屬於服務治理的範疇。服務治理比較常見的話題 服務發現,服務變更管理,服務監控,服務擴容縮容,服務自我保護,服務降級,服務授權防攻擊,服務上線驗證和灰度發布,服務問題定位和跟蹤,服務負載,服務...

什麼是物件導向

什麼是物件導向 物件導向,就是,思考問題的方法,以物件為主體,眼睛看什麼都是物件 說 物件 其實還是不好懂,因為這個概念是直接從英文翻譯過來的 對中國人也許說,面向東西,面向物體 抽象的物體 面向事物,之類的翻譯或許更好理解 為什麼說是物件導向呢,是為了和 面向過程 相對以前 物件導向 的程式概念等...