1. 程式人生 > >面向物件【OOP】的四大特徵

面向物件【OOP】的四大特徵

抽象

  • 忽略一個主題中與當前目標無關的東西,專注的注意與當前目標有關的方面.(就是把現實世界中的某一類東西,提取出來,用程式程式碼表示,抽象出來的一般叫做類或者介面).抽象並不打算了解全部問題,而是選擇其中的一部分,暫時不用部分細節.抽象包括兩個方面,一個數據抽象,而是過程抽象.

  • 資料抽象 –>表示世界中一類事物的特徵,就是物件的屬性.比如鳥有翅膀,羽毛等(類的屬性)

  • 過程抽象 –>表示世界中一類事物的行為,就是物件的行為.比如鳥會飛,會叫(類的方法)

繼承

  • 一種聯結類的層次模型,並且允許和鼓勵類的重用,提供一種明確表達共性的方法.物件的一個新類可以從現有的類中派生,這個過程稱為類繼承.新類繼承了原始類的特性,新類稱為原始類的派生類(子類),原始類稱為新類的基類(父類).派生類可以從它的父類哪裡繼承方法和例項變數,並且類可以修改或增加新的方法使之更適合特殊的需要.因此可以說,繼承為了重用父類程式碼,同時為實現多型性作準備.

封裝

  • 所謂封裝,就是將客觀事物封裝成抽象的類,並且類可以把資料和方法讓可信的類或者物件進行操作,對不可信的類或者物件進行隱藏。類就是封裝資料和操作這些資料程式碼的邏輯實體。在一個類的內部,某些屬性和方法是私有的,不能被外界所訪問。通過這種方式,物件對內部資料進行了不同級別的訪問控制,就避免了程式中的無關部分的意外改變或錯誤改變了物件的私有部分。簡而言之,封裝就是把過程和資料包圍起來,對資料的訪問只能通過特定的介面.如私有變數,用set,get方法獲取

多型

  • 多型是指允許不同類的物件對同一訊息做出響應.多型性包括引數化多型性和包含多型性.多型性語言具有靈活/抽象/行為共享/程式碼共享的優勢,很好的解決了應用程式函式同名問題.總的來說,方法的重寫,過載與動態連結構成多型性.java引入多型的概念原因之一就是彌補類的單繼承帶來的功能不足.

  • 動態連結 –>對於父類中定義的方法,如果子類中重寫了該方法,那麼父類型別的引用將呼叫子類中的這個方法,這就是動態連結.

相關推薦

面向物件OOP四大特徵

抽象 忽略一個主題中與當前目標無關的東西,專注的注意與當前目標有關的方面.(就是把現實世界中的某一類東西,提取出來,用程式程式碼表示,抽象出來的一般叫做類或者介面).抽象並不打算了解全部問題

面向物件day07:類的例項化過程剖析(三)

本節內容 1、概述 2、類的語法 3、總結 一、概述    之前我們說關於python中的類,都一臉懵逼,都想說,類這麼牛逼到底是什麼,什麼才是類?下面我們就來講講,什麼是類?它具有哪些特性。 二、類的語法 2.1 語法

面向物件day07:新式類和經典類(八)

本節內容 1、概述 2、類的多繼承 3、經典類VS新式類 4、總結 一、概述   在python還支援多繼承,但是一般我們很少用,有些語言乾脆就不支援多繼承,有多繼承,就會帶來兩個概念,經典類和新式類,下面我就來學學什麼是多繼承,什麼是經典類和新式類? 二、類的多繼承 2.1 多繼承

面向物件day07:解構函式(六)

二、解構函式 一、概述   解構函式,第一次聽說這個函式的名稱,那這個函式到底是幹嘛的呢?什麼才是解構函式吶?   定義:在例項銷燬的時候呼叫的函式 二、解構函式定義 2.1 定義 1

面向物件day07:知識點回顧(十二)

本節內容 1、self關鍵字 2、封裝 3、繼承 4、靜態方法 一、self關鍵字 作用:呼叫當前方法的物件 1 2 3

面向物件day07面向物件使用場景(十一)

本節內容 1、概述 2、知識回顧 3、使用場景 一、概述   之前我們學了面向物件知識,那我們在什麼時候用呢?不可能什麼時候都需要用面向物件吧,除非你是純的面嚮物件語言,好的,我們下面就來談談 二、知識回顧 2.1 什麼是面向物件?   在學面向物件之前我們都是用:函式   面向物件程式設計

面向物件day08:類的起源與metaclass(二)

本節內容 1、概述 2、類的起源 3、__new__方法 4、__metaclass__方法 一、概述    前面我們學習了大篇幅的關於類,通過類建立物件,那我們想知道這個類到底是怎麼產生的呢?它的一切來源是什麼?還有物件,物件是通過什麼方法建立的,現在我們一頭霧水,行

面向物件day08:異常處理(六)

本節內容 1、概述 2、異常梳理 3、異常梳理流程圖 4、異常大全 5、自定義異常 一、概述   異常處理是當程式出錯了,但是我們又不想讓使用者看到這個錯誤,而且我在寫程式的時候已經預料到了它可以出現這樣的錯誤,出現這樣的錯誤代表著什麼,我們可以提前處理這些個錯誤 二、異常處理 2.1 處理

面向物件林老師版:__init__定製自己獨有的特徵(三)

本節內容 1、是如何產生物件 2、例項化的步驟 一、是如何產生物件? __init__方法用來為物件定製物件自己獨有的特徵 1、stu1=LuffyStudent()呼叫報錯 1、程式碼 class LuffyStudent: school='luffycity' #

面向物件林老師版:繼承的原理(五)

一、經典類 經典類:沒有繼承object的類,以及它的子類都稱之為經典類 1、python2.x 在python2中-》經典類:沒有繼承object的類,以及它的子類都稱之為經典類 class Foo: pass class Bar(Foo): pass 二、新式類 1

面向物件林老師版面向物件練習(六)

一、編寫一個學生類,產生一堆學生物件 1、程式碼 class Student: school='luffycity' def __init__(self,name,age,sex): self.name=name self.age=age

面向物件林老師版:繼承與派生(六)

一、初識繼承 1、什麼是繼承 繼承指的是類與類之間的關係,是一種什麼“是”什麼的關係,繼承的功能之一就是用來解決程式碼重用問題 繼承是一種建立新類的方式,在python中,新建的類可以繼承一個或多個父類,父類又可以成為基類或超類,新建的類稱為派生類或子類 2、python中類的繼承分為:單繼承和多繼承

面向物件林老師版:抽象類(十二)

一、為什麼要有抽象類 1 、什麼是抽象類 與java一樣,python也有抽象類的概念但是同樣需要藉助模組實現,抽象類是一個特殊的類,它的特殊之處在於只能被繼承,不能被例項化 2 、為什麼要有抽象類 如果說類是從一堆物件中抽取相同的內容而來的,那麼抽象類就是從一堆類中抽取相同的內容而來的,內容包括資料

面向物件林老師版:多型與多型性(十三)

一、多型 多型指的是一類事物有多種形態,比如 1、動物有多種形態:人,狗,豬 import abc class Animal(metaclass=abc.ABCMeta): #同一類事物:動物 @abc.abstractmethod def talk(self):

java基礎-初級(二)面向物件與類

目錄   2、面向物件與類 2.1  面向物件思想 2.2  類與物件 2.3  成員和區域性變數 2.4  匿名物件 2.5  類的訪問許可權修飾符 2.6  static關鍵字-靜態域、靜態

Java面向物件經典案例強制/自動型別轉換與型別安全的轉換

package day03; /** * 造型: 父型別變數引用子型別例項 * Number: 數 * |-- Integer 整數 * |-- Double 浮點數 *

javascript面向物件之路讓我們一起來坦克大戰吧01

提問 不知道大家發現沒有,執行時候瀏覽器或者電腦會變得很卡哦。根據我們之前的學習,你知道是什麼原因導致的嗎? 若是各位有興趣,請你回答卡的原因,並提出優化方案。  前言 PS 各位要看效果還是使用ff或者google吧,ie7以下好像有問題。 最近大家都在坦克大戰,

Python 面向物件初級篇

Python 是一門面向物件的語言。本文是面向物件程式設計的初級篇,僅介紹封裝,不涉及繼承和多型。鑑於C++也是一門面向物件的語言,裡面有很多相通之處。 類的成員 類的成員可以分為三大

java面向物件重寫、this、super,抽象類

第1章    繼承 1.1    繼承中方法重寫&應用 l  子父類成員方法特殊情況——覆蓋 子類中出現與父類一模一樣的方法時,會出現覆蓋操作,也稱為override重寫、複寫或者覆蓋。 c

Javascript object.constructor屬性與面向物件程式設計(oop)

定義和用法 在 JavaScript 中, constructor 屬性返回物件的建構函式。 返回值是函式的引用,不是函式名: JavaScript 陣列 constructor 屬性返回 function Array() { [native code] } JavaScript 數字 co