面向對象技術

面向對象和面向過程的區別

  1. 出發點不同。
    面向對象強調問題域的要領直接映射到對象和對象之間的接口上,是用符合常規思維的方式來處理客觀世界的問題。
    面向過程方法強調的則是過程的抽象化和模塊化,是以過程為中心構造或處理客觀世界問題的。
  2. 層次邏輯關系不同。
    面向對象方法以對象的集合類作為處理問題的基本單位。面向對象方法是用類的層次結構來體現類之間的繼承和發展。用計算機邏輯來模擬現實世界中的物理存在。
    面向過程方法處理問題的基本單位是能清晰準確地表達過程的模塊,用模塊的層次結構概括模塊或模塊間的關系與功能,把客觀世界的問題抽象成計算機可以處理的過程。
  3. 數據處理方式和控制程序方式不同。
    面向對象方法將數據與對應的代碼封裝成一個整體,對象的修改只能由自身的成員函數完成,控制程序方式上是通過“事件驅動”來激活和運行程序。
    面向過程方法是直接通過程序來處理數據,處理完畢后可顯示數據結果,在控制程序方式上是按照設計調用或返回程序,各模塊之間存在者控制與被控制、調用與被調用的關系。
  4. 分析設計與編碼轉換方式不同。
    面向對象方法貫穿于軟件生命周期的分析、設計及編碼中,是一種平滑過程,從分析到設計再到編碼是采用一致性的模型表示,即實現的是一種無縫的連接。
    面向過程方法強調分析、設計及編碼之間按規則進行轉換,貫穿于軟件生命周期的分析、設計及編碼中,實現的是一種有縫的連接。

舉一個對象和過程的例子。
人:人的身高體重性別年齡,會直立行走會讀書吃飯。
電腦開機的過程。

面向對象的特征

抽象、繼承、封裝、多態。

組合和繼承的區別

組合和繼承都是面向對象中代碼復用的方式。
組合是指在新類里面創建原有類的對象,重復利用已有類的功能。
繼承是面向對象的主要特性之一,可以根據類的實現來定義一個類的實現。
組合和繼承都允許在新的類中設置子對象,只是組合是顯式的,繼承則是飲食的。
組合和繼承存在著對應關系:組合中的整體類和繼承中的子類嘴硬,組合中的局部類和繼承中的父類對應。
二者的區別通過分析一個實例來說明:Car表示汽車對象,Vehicle表示交通工具對象,Tire表示輪胎對象。Car是Vehicle的一種,是繼承(is-a關系);而Car包含了多個Tire,因此是一種組合關系(has-a關系)。
寫代碼的時候,選擇原則:
(1)除非是“is-a”的關系,否則不要輕易選擇繼承,因為過多地使用繼承會破壞代碼的可維護性,當父類被修改時,會影響所有繼承它的子類,從而增加程序的維護難度與成本。
(2)如果類沒有“is-a”的關系,可以通過實現接口與組合的方式來達到相同的目的,采用接口與組合的方式具有更好的可擴展性。
由于Java語言只支持單繼承,如果想同時繼承兩個類或多個類,在Java 中是無法直接實現的。同時,如果繼承太多,在一個class里會顯得臃腫不堪。所以,能用組合就盡量不要用繼承。

多態

同一個操作,在不同的對象時,會有不同的意義,產生不同的效果。
例如,同樣是“+”的操作,“3+4”用來實現整數相加,“3”+“4”用來實現字符串連接。
多態有兩種表現形式:

  • 方法的重載,是一種編譯時多態。重載是同一個類中可能有多種同名的方法,在編譯時可能會選擇不同的方法。重載可看成一個類中方法的多態性。
  • 方法的覆蓋,是一種運行時多態。子類可以覆蓋父類的方法,同樣的方法在子類和父類中有不同的表現形式

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/386009.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/386009.shtml
英文地址,請注明出處:http://en.pswp.cn/news/386009.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ad09只在一定范圍內查找相似對象_23、面向對象編程

目錄:對象的概念類與對象面向對象編程類的定義與實例化屬性訪問類屬性與對象屬性屬性查找順序與綁定方法小結視頻鏈接一 對象的概念”面向對象“的核心是“對象”二字,而對象的精髓在于“整合“,什么意思?所有的程序都是由”數據”…

java開發工程師轉行可以做什么

前言 分布式事務主要解決分布式一致性的問題。說到底就是數據的分布式操作導致僅依靠本地事務無法保證原子性。與單機版的事務不同的是,單機是把多個命令打包成一個統一處理,分布式事務是將多個機器上執行的命令打包成一個命令統一處理。 MySQL 提供了…

atlas怎么看日志_億級的日志治理!微服務最佳方案,ELK stack從零搭建

ELK Stack 誕生背景一般我們需要進行日志分析場景:直接在日志文件中 grep、awk 就可以獲得自己想要的信息。但在規模較大的場景中,此方法效率低下,面臨問題包括日志量太大如何歸檔、文本搜索太慢怎么辦、如何多維度查詢。需要集中化的日志管理…

Java變量類型

所有的變量在使用前必須聲明。 type identifier [ value][, identifier [ value] ...] ; 格式說明:type是數據類型,identifier是變量名,可以使用逗號隔開來聲明多個同類型變量。 一下列出一些變量的聲明實例,有些包含了初始化過…

java開發工程師面試問題大全及答案大全

前言 Alibaba作為國內互聯網行業的“老大”,一直以來也是很多“數碼寶貝”夢寐以求的公司,我個人是做Java開發的,阿里這些年也開發了很多屌炸天的開源項目,像什么Spring Cloud Alibaba,開源Java診斷工具Arthas&#x…

me shy是什么歌 抖音make_內含活動福利 | 小紅書、抖音爆贊的高顏值的北歐家居神店開到卜蜂中心啦!...

幾個月前,一家北歐范顏值爆表的瑞典獨立設計師品牌家居店憑借其充滿設計感的產品刷爆社交媒體微博、小紅書、抖音經常出現它的身影隨便一篇閱讀量、收藏量都好幾萬數不清的爆like讓人按耐不住了!這個品牌叫NǒME家居(認住這個正版的ǒ),開到哪…

java開發工程師面試題及答案

前言 作為一名編程人員,對MySQL一定不會陌生,尤其是互聯網行業,對MySQL的使用是比較多的。對于求職者來說,MySQL又是面試中一定會問到的重點,很多人擁有大廠夢,卻因為MySQL敗下陣來。實際上,My…

呂玉琴考研指導電子版_【干貨大放送】中國歷代文學作品選閱讀指導PDF

跟緊我,來年輕松收獲錄取通知書~長按一戰成碩hello,我是小致帶你考研上路今天給大家分享的干貨內容是《歷代文學作品選》閱讀指導之前1000題濃縮資料,后臺回復【濃縮】獲取不要再留郵箱了,直接后臺獲取本次資料由致遠文學考研原創…

java開發工程師面試題總結

一、背景 我們日常在電商網站購物時經常會遇到一些高并發的場景,例如電商 App 上經常出現的秒殺活動、限量優惠券搶購,還有我們去哪兒網的火車票搶票系統等,這些場景有一個共同特點就是訪問量激增,雖然在系統設計時會通過限流、異…

Java重寫和重載

重寫(Override) 重寫是子類重寫父類的方法,如果重寫了父類的方法,訪問時父類的方法就會被覆蓋,如果想要再訪問父類的同名方法,要用super關鍵字。重寫的好處在于子類可以根據自己的需要,定義特定…

7天拿到阿里Android崗位offer,都是精髓!

食用指南 和大部分人一樣,我在復習完第一遍Android知識的情況下,看到相關的知識回答的仍然不能夠令自己滿意。 在第二遍系統復習的時候,我著重記住每個知識點的關鍵字,根據這些關鍵字拼湊出大概的知識點,最后看到每個…

kafka 重新分配節點_Kafka控制器-分區重分配

分區重分配指的是將分區的副本重新分配到不同的代理節點上。如果ZK節點中分區的副本的新副本集合和當前分區副本集合相同,這個分區就不需要重新分配了。分區重分配是通過監聽ZK的 /admin/reassign_partitions 節點觸發的,Kafka也提供了相應的腳本工具進行…

7天拿到阿里安卓崗位offer,統統給你解決!

開頭 技術的發展產生了程序員這個職位,從這些年各大互聯網公司曝光的一些員工收入水平來看,程序員的工資還是相對比較高的,可是我們在互聯網上還聽到了另外一種聲音,很多程序員想轉行,特別是大齡程序員,這…

python mysqldb 查詢不到最新記錄_python – MySQLdb是否緩存SELECT結果?

我正在循環中運行SELECT查詢.偶爾,數據庫表會更新(由另一個程序).第一個SELECT檢索正確的數據,但循環中的其他調用返回第一個值.如何檢索最新數據?到目前為止我找到的唯一解決方法是在每次迭代時重新連接到數據庫!在我的例子中,取消注釋#1#和#2#的注釋.僅…

7天拿到阿里安卓崗位offer,附高頻面試題合集

前言 眾所周知,Android是一個基于Linux實現的操作系統。但對于Linux內核來說,Android也僅僅只是一個運行在內核之上的應用程序,與其他運行在內核之上的應用程序沒有任何區別。 所以Android也需要運行環境,需要Linux內核在啟動完…

找零錢問題

最近在做華為機試體驗題,遇到一個“找零錢”的題目,如下 想起之前在牛客網上看到左程云老師講過的動態規劃問題,很像,題目如下: 有數組penny,penny中所有的值都為正數且不重復。每個值代表一種面值的貨幣&…

vga焊接線順序_焊接工藝問答,不做焊接也要收藏起來

點 機械前沿”關注置頂引領機械前沿、機械視頻,汽車、加工技術、3D打印、自動化、機器人、生產工藝、軸承、模具、機床、鈑金等行業前沿在這里等你 焊接工藝問答1.什么叫焊接條件?它有哪些內容??答:焊…

7年老Android一次操蛋的面試經歷,揮淚整理面經

看到還有很多程序員連面試流程都沒有徹底弄清楚,今天,我們以阿里為例,來聊聊互聯網大廠的面試流程和過程! 本篇主要還是聊聊社招的面試過程!阿里以及其他的互聯網大廠的技術類社招面試,通常情況是 4 個輪次…

gin context和官方context_Go Web 小技巧(一)簡化Gin接口代碼

不知道大家在使用 Gin 構建 API 服務時有沒有這樣的問題:參數綁定的環節可不可以自動處理?錯誤可不可以直接返回,不想寫空 return, 漏寫就是 bug本文通過簡單地封裝,利用 go 的接口特性,提供一個解決上述兩個問題的思路一、解決過…

7年老Android一次操蛋的面試經歷,深度好文

Java基礎 Java Object類方法HashMap原理,Hash沖突,并發集合,線程安全集合及實現原理HashMap 和 HashTable 區別HashCode 作用,如何重載hashCode方法ArrayList與LinkList區別與聯系GC機制Java反射機制,Java代理模式Jav…