日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

什么是面向对象编程?终于懂了

發布時間:2023/12/20 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 什么是面向对象编程?终于懂了 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

面向對象的編程(Object-Oriented Programming ,OOP),每當看到這個術語,我們就會把它與Java聯系起來。

事實上,Java普及了面向對象的編程風格,除了Java之外,還有很多OOP語言,例如,C++、C#、Swift、JavaScript、php等,當然,也包括Python。

Python提供了一種面向對象的編程風格,今天,我就來循序漸進的講解一下Python面向對象,保證哪怕是零基礎小白在看完這篇文章后也能夠徹底搞明白Python面向對象。

在本文中,我將從如下幾個主題給大家介紹Python面向對象編程的基礎知識:

  • 對象
  • 繼承
  • 屬性
  • 方法
  • 1 基本概念

    1.1 類

    什么是OOP中的類?

    首先,借助一張圖片來理解這個概念。

    從上面圖片,我們可以看到如下信息:類、對象、屬性、方法和一只皮卡丘。

    這與OOP有什么關系?

    好吧,上面的圖片正是幫助我們理解OOP概念的東西。

    所以,現在進入第一個話題。

    OOP中的類是什么意思?類的定義是 “類是同一類型的對象的集合”。

    把這個定義與上面的例子聯系起來。

    在這幅圖中,我們可以看到有一個名為 小精靈(Pokemon)的矩形框,這就是類的名稱。

    因此,簡而言之,類只不過是一個對象的集合。因此,在pokemon宇宙中的所有pokemon都在 "pokemon"類下。

    為了確保理解,再講一個示例。

    以我們經常會見到的汽車為例,日產、特斯拉、福特、豐田,這些可以理解為一個個的對象,而“汽車”則是這一系列對象的合成、集合。

    1.2 對象

    前面已經反復的提到對象這個概念,接下來再具體的解釋一下。

    在OOP中,對象是一個類的組成部分或成員。考慮到我們的小精靈例子,每個小精靈都是小精靈類的一個對象。比如說。皮卡丘是口袋妖怪類的一個對象。比如說,豐田就是汽車的一個對象。

    1.3 屬性

    回到我們的Pokemon例子,讓我們專注于圖像中的皮卡丘。觀察它一會兒。你看到了什么?

    通過觀察皮卡丘的圖像,我們可以看到它有兩只耳朵,兩只手,兩條腿,臉頰上有兩個紅色的小圓點,還有一個顯著的黃色。

    在圖片中的鄰接表格中,我們還看到了一些東西,例如,名稱=“皮卡丘”,類型="電動"和健康狀況=70。

    因此,所有這些都被稱為屬性,屬性是提供關于類或對象的額外信息的元素。

    在這種情況下,所有這些屬性都提供了關于皮卡丘對象的額外信息,如顏色、健康狀況等。

    1.4 方法

    在Pokemon示例中,在圖表中可以看到諸如attack(), dodge(), evolve()這些東西,這就是所謂的方法。

    更簡單地解釋,方法基是與某個特定對象相關的動作。

    在這種情況下,這些動作與我們的皮卡丘對象有關。

    到此為止,想必很多同學對面向對象中的一些概念有了基本的了解。

    下面,就實踐起來,看一下Python面向對象到底該怎么用。

    2 實踐

    2.1 創建類

    class Pokemon():

    正如你從上面的代碼中所看到的,在Python中創建一個類時,需要遵循一定的結構。

    以關鍵字class開頭,通過這種方式,Python可以識別出我們要創建的東西將被視為一個類。

    關鍵字class之后是類的名稱,在本例中是 Pokemon。

    最后,它的后面是(),然后是:字符。

    當然,到這里類還沒有創建好,還需要一些其他的內容。

    創建__init__方法

    繼續我們的類的創建任務,下一步涉及到創建一個非常特殊的方法,名為__init__。

    你可能會問:這個__init__方法是什么?

    為了簡單理解這個概念,可以認為init方法類似于Java中的構造方法。

    我之前專門寫過一篇文章進行介紹,想深入了解的可以看一下:

    先給出具體代碼:

    class Pokemon():def __init__():

    從上面代碼可以看到,已經在Python中創建了__init__方法。

    在這里,我們注意到一件事,那就是名為def的關鍵字,在Python中主要用于創建函數或者方法使用。

    添加屬性

    目前已經定義了__init__( )方法,但是,它仍然沒有被完全定義。仍然需要在__init__( )方法中傳遞某些參數來完成它的定義。

    接下來,讓給__init__( )方法中添加這些參數。

    class Pokemon():def __init__(self,name,Type,health):self.name = nameself.Type = Typeself.health = health

    從上面代碼可以看到,我在__init__( )方法中傳遞了很多參數。現在讓我們回過頭來了解一下這里傳遞的是什么參數。

    還記得前面介紹的概念吧?我們討論過皮卡丘是黃色的,臉頰上有兩個紅點,等等。這些是與一個對象相關的屬性,在這個__init__ ( )方法中,我們定義這些屬性。

    除此之外,再解釋一下另外一個問題:self的用途是什么?

    簡單地解釋一下,self是一個關鍵字,負責將這些屬性連接到我們的類,也就是本例中的Pokemon。

    2.2 創建方法

    到此為止,我們已經聲明了我們的類,名為__init__()的特殊方法和類的屬性。

    接下來,繼續進行最后的部分,即方法的創建。

    class Pokemon():def __init__(self,name,Type,health):self.name = nameself.Type = Type self.health = health ?def attack(self):print("Electric attack!") ?def dodge(self):print("Pikachu Dodge!") ?def evolve(self):print("Evolving to Raichu!")

    正如你可以從上面的代碼中看到的,我創建3個名為attack()、dodge()、evolve()的方法。

    觀察這段代碼,你可以看到我們為每個方法都傳遞了一個名為self的參數。在這里,正在使用self關鍵字將這個方法與我們的類連接起來。

    到此為止,就創建了一個完整的類。

    2.3 創建對象

    首先,給出創建對象的代碼,在這里我創建了一個名為pk1的對象:

    pk1 = Pokemon("Pikachu","Electric",120)

    創建完對象之后,我們就可以做很多操作。

    訪問屬性

    我們可以通過<對象名>.<屬性>的方法來訪問對象的屬性,來看一下具體的代碼:

    pk1.name # 輸出:Pikachu pk1.Type # 輸出:Electric pk1.health # 輸出:120

    訪問方法

    訪問方法和訪問屬性類型<對象名>.<方法>,同樣,用具體代碼來更加清晰的解釋一下:

    pk1.attack() # 輸出:Electric attack! pk1.dodge() # 輸出:Pikachu Dodge! pk1.evolve() # 輸出:Evolving to Raichu!

    到這里,就講解完了Python面向對象編程的基本內容。

    下面,就再進階一下,介紹一下面向對象編程中的繼承。

    2.4 繼承

    繼承是OOP中的關鍵概念之一,同樣,借助一個簡單的例子來更加輕松理解這個概念。

    考慮一個超級跑車的例子,邁凱輪 720S spyder,這是一輛超級跑車。

    正如你所看到的,像大多數其他汽車一樣,它有一些共同的特征,如門,擋風玻璃,4個輪子,頭燈,尾燈,等等。

    然而,由于它是一輛超級跑車,它有自己的定制特征,如720馬力的V8渦輪增壓發動機,由邁凱輪開發的定制變速箱,以及定制的AWD(全輪驅動)系統。

    現在將其與面向對象的術語聯系起來,我們可以說這輛車是從它的父類中繼承了某種特征,在這種情況下,它首先是一個汽車類。

    這就是 "繼承"背后的概念。

    繼承是一種現象,一個元素從它的父類中獲得特征。在這種情況下,邁凱輪720S spyder繼承了汽車類的所有共同特征,但與此同時,它本身也有某些特殊的特征。

    超類和子類

    我們的元素所繼承的類(本例中的汽車類)被稱為超類(Superclass),它具有通用性。

    而繼承這些特征的類被稱為子類(Subclass),它在本質上是特殊的。

    接下來,在 Python 中實現這些概念。

    在這個例子中,我將創建兩個類–一個是名為Car的類,它就是超類。另一個是名為McLaren的類,它是子類。這個McLaren類將繼承Car類的所有屬性。

    class Car():def __init__(self,ndoors,nwheels,tailLight,headLight):self.ndoors = ndoorsself.nwheels = nwheelsself.tailLight = tailLightself.headLight = headLight

    在這里,已經創建了第一個名為Car的類。

    現在,我們將創建一個名為McLaren的新類,它將繼承這個類的所有屬性。

    class McLaren(Car):def __init__(self,ndoors,nWheels,tailLight,headLight,Engine,Wheel_Drive):Car.__init__(self,ndoors,nWheels,tailLight,headLight)self.Engine = Engineself.Wheel_Drive = Wheel_Drive ?def Drive(self):print("I am driving McLaren 720S Spyder")

    正如你在上面的代碼中看到的,由于McLaren類繼承了Car類,我們在創建McLaren類時把Car作為參數之一,這是Python類繼承一種機制。

    下面,我們創建一個McLaren的對象,驗證一下它是否繼承了Car特征。

    mk1 = McLaren("4","4","Yes","Yes","V8","AWD")

    然后,再訪問一下對象的屬性:

    mk1.Engine # 輸出:V8 mk1.Wheel_Drive # 輸出:AWD

    在這里我們可以看到,我們能夠訪問McLaren對象中專門定義的特殊屬性,這些屬性在基類Car中是沒有的。

    在這里我們繼承了我們的基類,讓我們看看基類中的那些屬性是否在我們的McLaren類中被繼承了。

    mk1.headLight # 輸出:YES mk1.ndoors # 輸出:4 mk1.nWheels # 輸出:4

    可以看到,新創建的McLaren類的對象繼承了Car基類的所有特征,表明在這個上下文中,繼承被正確地實現了。

    到此為止,從基本概念到實踐,涵蓋 Python中類、對象、特殊方法、屬性、方法等概念和具體實現,已經全面的介紹了Python面相對象中的相關知識和內容,是不是已經徹底了解Python面相對象了?


    hello,大家好,我是 Jackpop,碩士畢業于哈爾濱工業大學,曾在華為、阿里等大廠工作,如果你對升學、就業、技術提升等有疑惑,不妨交個朋友:

    我是Jackpop,我們交個朋友吧!

    總結

    以上是生活随笔為你收集整理的什么是面向对象编程?终于懂了的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 狠狠狠狠狠狠狠 | ww成人 | 精品久久成人 | 亚洲精品国产精品乱码不卡√香蕉 | 婷婷综合一区 | 成人在线观看黄色 | 中文成人无字幕乱码精品区 | 国产99在线视频 | 国产人成视频在线观看 | 伊人国产在线 | 毛片黄色一级 | 1000部啪啪 | 成人影院免费 | 少妇特黄a一区二区三区 | 超碰在线网站 | 精品一区二区不卡 | 河北彩花69xx精品一区 | 久久密桃 | 熟女人妻在线视频 | 免费观看日本 | 久久av免费看 | 在线永久看片免费的视频 | 久久四虎 | 91在线高清视频 | 九九综合| 欧美人妻一区二区 | 高h视频在线观看 | 国产最新毛片 | 久久久久人妻精品色欧美 | 一区二区三区在线观 | 国产精品无码电影在线观看 | 亚洲丁香网| 蜜桃视频成人在线观看 | 拔插拔插华人 | 国产精品视频入口 | 欧美一级高潮片 | 精品国产污污免费网站入口 | 99视频久| 人妻少妇偷人精品久久久任期 | a一级视频 | 张柏芝亚洲一区二区三区 | 亚洲日本一区二区 | 精品久久久视频 | 欧美一级日韩一级 | 九一亚色 | 污视频网站在线 | 51妺嘿嘿午夜福利 | 国产大片一区二区三区 | 男女互操在线观看 | 神马老子午夜 | 日本一区成人 | 69xxx少妇按摩视频 | 成熟女人毛片www免费版在线 | 少妇与公做了夜伦理69 | 午夜污 | 日韩精品久久久久久 | 卡通动漫av | 国产精品视频一区二区三区, | 黄色网址你懂的 | 午夜18视频在线观看 | 人与禽性7777777| 人人草人人澡 | 综合一区在线 | 哺乳期av | 国产一区二区三区91 | 少妇视频一区 | 中文字幕第35页 | 污视频软件在线观看 | 大香蕉毛片 | 久久天堂av综合合色蜜桃网 | 成人动漫av在线 | 成人软件在线观看 | 国产91精品久久久久久久网曝门 | 国产一级淫片免费 | 成人小视频免费看 | 成人av一区二区在线观看 | 日本亲与子乱ay中文 | 99成人在线观看 | 午夜在线成人 | 天干夜夜爽爽日日日日 | 亚洲AV成人无码一二三区在线 | 99久久久国产精品无码网爆 | 日本在线播放视频 | 久久成人午夜 | 欧美人和黑人牲交网站上线 | 丰满少妇一区二区三区专区 | 日产精品久久久久久久 | 精品久久二区 | 国产一区日韩一区 | 我的丝袜美腿尤物麻麻 | 国产高清在线免费 | 国产夫妇交换聚会群4p | 国产一级特黄a高潮片 | 99热这里只有精品4 精品国产黄色 | 日韩成人av网址 | 日韩手机在线视频 | 顶级黑人搡bbw搡bbbb搡 | 日韩av一区二区在线播放 | 午夜影院毛片 |