8 物件導向

2021-09-29 12:34:15 字數 3427 閱讀 3907

物件導向是一種程式設計思想,是對現實世界中的事物進行抽象的方式。應用到**程式設計設計中,是一種建立現實世界事物模型的方式。

面向過程關注的是完成工作的步驟,物件導向關注的是誰能完成工作。物件導向是在完成工作的時候關注哪些個體能夠完成對應的工作,找到對應的個體即可完成對應任務。

類是一系列事物的統稱,同類事物必定具有相同的特徵。日常事物的特徵根據特性分為狀態和行為,對應到類中是變數和方法。
特徵分類:

狀態
à 變數(成員變數)

行為
à 方法(成員方法)

統稱:類的成員
class 類名:          

說明:pass是空語句,不具有任何意義,僅為了保持程式結構完整性

類名命名規範:滿足大駝峰命名規則
物件是類的具體表現形式,是實際存在的個體。(類是一系列事物的統稱)

物件名 = 類名()
物件的建立不限制數量,乙個類可以建立任意個數的物件

成員變數用於描述物件的固有狀態或屬性。
class 類名:

definit(self):

self.變數名1 = 值1

self.變數名2 = none

取值:物件名.變數名

賦值:物件名.變數名 = 值

成員方法用於描述物件的固有行為
格式一(無參方法):

class 類名:

def 方法名(self):

方法體

格式二(有參方法)

class 類名:       

def 方法名(self,形參1,形參2,…):

方法體

格式一(呼叫無參方法):

物件名.方法名()

格式二(呼叫有參方法):

物件名.方法名(實參1,實參2,…)

__init__方法,也稱為構造方法,建立物件時為物件初始化成員變數
格式一:

def __init__(self):

self.變數名1 = 值1

格式二:

definit(self,形參1,形參2,…):

self.__屬性名1 = 形參1

self.__屬性名2 = 形參2

魔術方法是在類中宣告、定義的方法,執行時無需手工呼叫,自動執行。

__str__方法是在使用print函式列印輸出物件到螢幕時被呼叫的方法,用於返回物件的規範化字串表現形式

defstr(self):

return 列印物件是顯示的資訊
self.變數名

self.方法名(實參1,實參2,…)

self僅出現在成員方法中,指代執行該方法的物件。

封裝操作可以對受訪問保護的成員進行功能開放的控制,達到保護資料不被非法訪問的目的

self.__屬性名 = 值

def __方法名(self,形參1,形參2,…):

方法體

變數私有化格式:

self.__屬性名 = 值

提供公共的訪問器格式:

def get_屬性名(self):

return self.__屬性名

提供公共的修改器格式:

def set_屬性名(self,屬性名):

self.__屬性名 = 屬性名

類變數是定義在類中,不屬於某個具體物件的特徵,被所有物件共同使用的特徵

class 類名:

變數名 = 值
賦值格式:

類名.類變數名 = 值

取值格式:

類名.類變數名(推薦)

物件名.類變數名(不推薦)

類方法是定義在類中,不屬於某個具體物件的行為,被所有物件共同使用的行為

class 類名:

@classmethod

def 方法名(cls,

形參1,形參2,…):

方法體

類名.類方法名(實參1,實參2,…)    (推薦)

物件名.類方法名(實參1,實參2,…) (不推薦)

-例項方法中允許使用類變數和類方法

class 類名:

@staticmethod

def 方法名(形參1,形參2,…):

方法體

類名.靜態方法名(實參1,實參2,…)  (推薦)

物件名.靜態方法名(實參1,實參2,…) (不推薦)

物件導向8

除了繼承和實現外,依賴,關聯,聚合,組成也是類之間的重要關係型別 依賴 如果在乙個類的方法中操作另外乙個類的物件,就稱其依賴於第二個類 關聯 關聯 比依賴更緊密,通常體現為乙個類中使用另乙個類的物件做為該類的成員變數 聚合 聚合關係體現的是整體與部分的關係,通常表現為乙個類 整體 由多個其他類的物件...

java物件導向8

object是所有物件的父類,可以接受任何的物件。還有包裝類 基本資料型別int,包裝類integer。主要應用將字串轉換為數字。異常 throwable error 通常出現重大問題如 執行的類不存在或者記憶體溢位等。不編寫針對 對其處理。exception 在執行時執行出現的一起情況,可以通過t...

8 物件導向 多型

1.定義 某一事物具有多種存在形態 2.體現 父類或者介面的引用指向其子類的物件 3.好處及弊端 提高 的擴充套件性,前期定義的 可以使用後期的內容 前期定義的內容不能呼叫後期子類的特有內容 4.轉型 對於轉型,始終都是子類物件在做著型別的變化 示例 abstract class animal cl...