資源描述:
《Python面向對象基本概念.ppt》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、面向對象基本概念6.1面向對象基本概念面向對象的方法,使我們分析、設計和實現(xiàn)一個系統(tǒng)的方法盡可能自然地使用我們在生活中用到的以對象為中心的思想,分析、認識、設計一個系統(tǒng)的方法。面向對象和面向過程都是一種思想。面向過程強調的是功能行為面向對象將功能封裝進對象,強調具備了功能的對象。面向對象是基于面向過程的。從執(zhí)行者變成指揮者。6.1面向對象基本概念對象:現(xiàn)實世界中某個具體的物理實體的邏輯表示(抽象)或者包含有內部狀態(tài)的概念。如:冰箱是擁有外形、尺寸、顏色等外部特性和開、關、存儲等功能的實體;而這樣一個實體,在面向對象的程序中,就可
2、以表達成一個計算機可理解、可操縱、具有一定屬性和行為的對象。抽象數(shù)據(jù)類人腦實體現(xiàn)實世界計算機邏輯的實現(xiàn)映射對象類計算機6.1面向對象基本概念6.1面向對象基本概念掌握面向對象的困難之處在于思路的轉換,以對象世界的思維方式來思考問題。定義類和建立對象是面向對象編程的主要任務。6.1面向對象基本概念類和對象的關系把相似的對象抽象成一個類。在軟件中,類,就是一個模板,它定義了通用于一個特定種類的所有對象的狀態(tài)(變量)和行為(方法)。類是創(chuàng)建對象的模板,對象是類的實例。汽車設計圖第1輛第2輛第3輛圖汽車類與汽車的實例6.1面向對象基本概
3、念6.1面向對象基本概念面向對象編程的主要特點封裝性(Encapsulation):實現(xiàn)模塊化(modularity)和信息隱藏(informationhiding),有利于程序的可移植性。繼承性(Inheritance):可以定義一套對象之間的層次關系,下層的對象繼承了上層對象的特性,籍此可以實現(xiàn)程序代碼重用,并且有效地組織整個程序。多態(tài)性(Polymorphism):根據(jù)程序運行時對象的實例類型來選擇不同的信息處理。籍此可以提高程序的靈活性。信息隱藏——電視內有很多復雜零件,通過各種按鈕將內部的復雜結構給隱藏了。簡化操作——
4、只需通過調頻和音量等少量按鈕,就可以操縱電視。程序的基本封裝單元是類,通過類的封裝,既可以將代碼單元化,又達到了信息隱藏的目的。封裝:數(shù)據(jù)的內部表示通過定義在數(shù)據(jù)上的操作對外隱藏起來。6.1面向對象基本概念——封裝封裝把對象的所有組成部分組合在一起,封裝定義程序如何引用對象的數(shù)據(jù),封裝實際上使用方法將類的數(shù)據(jù)隱藏起來,控制用戶對類的修改和訪問數(shù)據(jù)的程度。私有數(shù)據(jù)方法方法數(shù)據(jù)對象A對象B公有數(shù)據(jù)6.1面向對象基本概念——封裝自然界通過繼承而繁衍發(fā)展程序中的繼承是從抽象到具體的過程6.1面向對象基本概念——繼承什么是子類?子類是作為
5、另一個類的擴充或修正所定義的一個類。bicycle(superclass)MountainbikesRacingbikesTandembikessubclass6.1面向對象基本概念——繼承繼承是子類利用父類中定義的方法和變量就像它們屬于子類本身一樣。繼承關系是傳遞的。若類C繼承類B,類B繼承類A時,則類C既有從類B繼承下來的屬性和方法,也有從類A繼承下來的屬性和方法,還可以有自己新定義的屬性和方法。6.1面向對象基本概念——繼承繼承簡化了人們對事物的認識和描述,能清晰體現(xiàn)相關類間的層次結構關系。提供軟件復用功能。若類B繼承類A
6、,建立類B時只需要再描述與基類(類A)不同的少量特征(數(shù)據(jù)成員和方法)。可減少代碼和數(shù)據(jù)的冗余度,大大增加程序的重用性。6.1面向對象基本概念——繼承多態(tài)即“有多種形式”。意味著根據(jù)對象(類)類型的不同而表現(xiàn)出不同的行為。多態(tài)即多種形態(tài),在運行時確定其狀態(tài),在編譯階段無法確定其類型,這就是多態(tài)。Python中的變量是弱類型的,在定義時不用指明其類型,它會根據(jù)需要在運行時確定變量的類型。6.1面向對象基本概念——多態(tài)在Python中很多地方體現(xiàn)多態(tài)的特性,比如內置函數(shù)len(object),len函數(shù)不僅可以計算字符串的長度,還可
7、以計算列表、元組等對象中的數(shù)據(jù)個數(shù)。在運行時通過參數(shù)類型確定其具體的計算過程,正是多態(tài)的一種體現(xiàn)。6.1面向對象基本概念——多態(tài)6.1面向對象的基本特征封裝與多態(tài)區(qū)別封裝可以讓用戶不關心對象如何構建而直接進行使用。多態(tài)可以讓用戶對于不知道什么類(對象類型)的對象進行方法調用。