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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

面向对象的编程学习笔记

發(fā)布時(shí)間:2025/7/14 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面向对象的编程学习笔记 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

  面向?qū)ο蟮木幊虆^(qū)別于面向過程的編程,其操作的單元是類,而面向過程操作的單元是方法。即面向過程的編程是由一個(gè)又一個(gè)的方法組成的。而面向?qū)ο蟮木幊淌怯梢粋€(gè)又一個(gè)類組成的。相對于面向過程,面向?qū)ο蟮拇a復(fù)用性更好,代碼的隱蔽性更高,并且更加符合人類思維的方式。

  面向?qū)ο蟮淖罨A(chǔ)的單元就是類。類(Class)是一個(gè)抽象的概念,是對某一類事物的描述。例如:貓,狗,人。而對象(object)就是類的實(shí)例化。即符合類描述的具體的單個(gè)成員。例如我就是Person類實(shí)例化的對象。我是符合人描述的具體的單個(gè)成員。在創(chuàng)造對象的過程就叫做類的實(shí)例化。

  類包含描述某種事物的狀態(tài)(例如姓名,性別)和行為(唱歌,跳舞,寫代碼)。

  在.net平臺(tái)而言,最基本的編程結(jié)構(gòu)就是類類型。正式的說,類是由字段數(shù)據(jù)(通常叫做成員變量)以及操作這個(gè)數(shù)據(jù)的成員(如構(gòu)造函數(shù),屬性,方法,事件等)所構(gòu)成的自定義類型。其中字段數(shù)據(jù)表示狀態(tài)。

Class Person {//表示自身狀態(tài)的字段String Name;String Sex;//表示行為的方法Public void Sing();Public void Dance();Public void Coding(); }

面向?qū)ο缶幊?#xff08;OOP)的三個(gè)特性:

1.封裝性

   封裝是將對象用戶(用你編寫的類進(jìn)行編程的人)不必了解的實(shí)現(xiàn)細(xì)節(jié)隱藏起來的一種語言能力。

1 //DatabaseReader封裝了數(shù)據(jù)庫操作的細(xì)節(jié) 2 DatabaseReader dbReader = new DatabaseReader(); 3 dbReader.Open(@"C:\AutoLot.mdb");

  和封裝編程邏輯緊密相關(guān)的概念就是數(shù)據(jù)的保護(hù)概念。理想情況下對象的狀態(tài)數(shù)據(jù)都應(yīng)該是隱蔽的,外部不能直接的訪問,只能通過訪問函數(shù)來進(jìn)行“有禮貌的訪問”。

2.繼承性

  繼承指的是基于已有的類型來創(chuàng)建心類的語言能力。通過繼承,子類可以繼承基類(或稱父類)的核心功能,并且擴(kuò)展了基類的行為。

  

  從圖中我們可以看出“矩形是圖形,圖形是對象”這就構(gòu)建成了一種“is - a”的關(guān)系,Is- a關(guān)系又稱為繼承關(guān)系。

我們會(huì)認(rèn)為Shape定義了許多派生類都公有的成員(顏色,高度)。由于Rectangle擴(kuò)展了Shape,它也就繼承了由ShapeObject定義的核心功能。同時(shí)它還有屬于自己獨(dú)特的功能。

  區(qū)別于C++C#不支持多重繼承的概念(所以引入了接口的概念)繼承的一個(gè)很大的優(yōu)點(diǎn)就是提高了代碼的復(fù)用性,OOP中還有另外的一種形式的代碼重用:包含/委托模型(has-a關(guān)系,也成聚合)這種重用的形式不是用來建立父類和子類關(guān)系的。它意味著,一個(gè)類可以定義另一個(gè)類的成員變量,并向?qū)ο笥脩糸g接的公開它的功能。

例如構(gòu)建一個(gè)汽車(Car)的類,想表達(dá)一輛車中有一個(gè)(has-a)收音機(jī)的概念。Car繼承Radio類顯然是不符合邏輯的。需要的是兩個(gè)類一起合作,其中Car類創(chuàng)建并公開了Radio的功能。

?

1 Class Car 2 { 3 Radio _Radio; 4 } 5 Class Radic 6 { 7 8 }

?

3.多態(tài)性

  同一操作作用于不同的對象,可以有不同的解釋,產(chǎn)生不同的執(zhí)行結(jié)果,這就是多態(tài)性。

  實(shí)際上就是同一個(gè)類型的實(shí)例調(diào)用“相同”的方法,產(chǎn)生的結(jié)果是不同的。這里的“相同”打上雙引號是因?yàn)檫@里的相同的方法僅僅是看上去相同的方法,實(shí)際上它們調(diào)用的方法是不同的。

  當(dāng)CirCleRectangle都調(diào)用Draw()的時(shí)候,看似這兩個(gè)實(shí)例調(diào)用了“相同”的方法,但是實(shí)際上,它們是調(diào)用各自的Draw()方法。所以只是看似相同,實(shí)際上是不同的方法。并且產(chǎn)生了不同的執(zhí)行結(jié)果,這就是多態(tài)性。

  同時(shí),這里講的多態(tài)性也只是簡單的多態(tài)性。多態(tài)性用來當(dāng)基類規(guī)定好一些實(shí)現(xiàn)的方法時(shí),子類只需要重寫這些方法就好。這樣增強(qiáng)了代碼的復(fù)用性。

?

轉(zhuǎn)載于:https://www.cnblogs.com/MaFeng0213/p/5756408.html

總結(jié)

以上是生活随笔為你收集整理的面向对象的编程学习笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。