《極客學院C#影片教學》是C#語言的入門課程,在課程中,將從.NET平台和C#的基本概念開始,深入的介紹C#開發的基礎語法、簡單程式邏輯、Visual Studio工具的使用技巧以及常用的演算法的實作。同時,也希望透過與課程相關的練習題和程式設計練習,幫助小夥伴們快速步入C#語言的大門。
課程播放網址:http://www.php.cn/course/243.html
該老師講課風格:
教師講課深入淺出,條理清楚,層層剖析,環環相扣,論證嚴密,結構嚴謹,用思維的邏輯力量吸引學生的注意力,用理智控制課堂教學進程。學生透過聽教師的講授,不僅學到知識,也受到思維的訓練,還受到教師嚴謹的治學態度的熏陶和感染
本視頻中較為難點是C# 面向對象特徵了:
一、封裝: 我們可以把世界上任何一個東西都看作為一個對象,那麼我們這裡以人為例,一個人就肯定是一個對象了。 那麼封裝是什麼呢? 封裝就是這個人要完成一件事情,他所需要的任何工具都帶在了自己的身上,所需要的技術也都裝在了自己的腦子裡。不需要藉助別人的力量就能完成這一件事情。這個有什麼好處呢?好處就是如果我要吩咐這個人去完成一件事情,我不需要知道他是怎麼完成的,也不需要協助他去完成,只要知道結果,他完成了就OK了。至於他是先幹什麼後幹什麼我不干涉,這有助於他更快更好的干好這件事情,我自己也省事。
1、存取權限(可見性)
Public:(隨處可見)所有套件、類別導入後均可見 公共的
Protected:(合法繼承)本身、不同套件的子類別自身,
Private:(自私自利)只在本類別中可見
#2、
(1)、屬性-->private (私有屬性,公開方法,不使用預設)
(2)、方法--> public protected
書面的解釋如下: 每個物件都包含它能進行操作所需的所有訊息,因此物件不必依賴其它的物件來完成自己的操作。
二、繼承: 還以為人為例,我們每個人都會有一些共同的特徵,都要做一些相同的事情。例如:人都有一個腦袋,二隻胳膊,二條腳,這是共同的特徵。都要吃飯,喝水,這是都要做的相同的事情。那如果我們現在要聲明很多個人,每個人都會有這些特徵,那我不是要寫很多重複的程式碼?所以我們可以先建一個人的父類,這個父類不代表一個具體的人,只是一個擁有人所有共同特性的虛擬的人。下次我 們要實例化一個具體的人的時候,只需要將這個人繼承上面這個“虛擬的人”,那麼他就擁有了人的所有共同特性。這樣,這些重複的程式碼我們就可以不寫了。
當然,繼承的目標不只是為了節省程式碼,還有實現後面的多型的功能。初學者只要了解繼承可以少寫很多程式碼就好了,餘下的需要在專案中慢慢理解。
書面的解釋如下: 物件的繼承代表一種"is-a"的關係,假如兩個物件A和B,如果可以描述為"B就是A",那麼則表示B可以繼承自A。
注意: 如果A繼承了B,那麼A不只擁有了B除私有的特性外的所有特性,A還可以擁有自己獨特的特性。例如上面人的這個例子,一個繼承了 “虛擬的人”,那麼他除了有一個腦袋,二隻胳膊,二條腳,要吃飯喝水外,他可能還會編程。程式設計就是他獨特的特性了,因為不是每個人都會編程的。
1、
(1)、延續:父類別存在,子類別沒有重寫但可以使用;
(2)、新增:父類別沒有,子類別新增加的
(3)、重寫:父類別子類別都存在,但是弗雷德不滿足要,子類別對其進行從新定義;
2、實例化:
(1)、先父類別後子類,先靜態後成員;
實例化的時候先呼叫父類別的靜態建構快,並在呼叫父類別中的建構方法,然後子類別的建構塊,在呼叫子類別的建構方法;
(2)、預設呼叫父類別空構造;
3、重寫 override
(1)、重寫與重載:
重寫:在繼承的子類別中,方法簽名相同( 方法名稱+形參數量型別順序 )
重載:同一個類別方法名稱相同,形參個數量型別順序不同
(2)、重寫規則:在子類別中簽章與父類別相同,並在合理範圍內提升子類別可見性;
A、回傳型別:基本型別與void必須相同;引用型態要
B、例外:
# B、例外:
# B、異常:
# B、異常:
# B、異常:
# B、例外:例外:
# C、可見性:要大於或等於父類中被重寫的方法
三、多態: 有多態之前必須要有繼承,只有多個類同時繼承了同一個類,才有多態這樣的說法。
還是以人為例子,前面我們有說過人都要做「吃飯」這樣一個相同的事情。 「吃飯」這個事情,體現到類別中就是方法了。因為是人都是要做的,所以我們在「虛擬的人」中寫好了這個方法,但每個人都有不同的吃飯方法,有用筷的也有用叉的,有要吃米飯的也有要吃麵食的。所以如果我們要描述不同人的吃飯的過程,就要把這個過程放到具體的子類別中去了,因為每個人都不一樣嘛。同樣一個方法,子類別都有不同的實作方式,這就是多態了,多態有助於程式的彈性。
注意:子類別中如果重寫了父類別的方法(多型),那麼父類別中的這個方法將不會再呼叫。
1.好處:
簡化了程式介面。它容許在類別和類別之間重用一些習慣性的命名,而不用 為每一個新加的函數命名一個新名字。
簡化程式碼
如果函數/方法參數中使用的是父類別的類型,可以傳入父類別、子類別的物件
限制:父類別類型的變量,不能直接呼叫子類別特有的方法。必須強轉為子類別類型的變量,才能直接呼叫子類別特有的方法
###2、編譯時多態:其實就是重載,是對非虛成員來說的,系統在編譯時,根據不同簽章來決定實現何種操作。 ######3、運行時多態:也就是重寫,是透過虛擬成員實現的,指直到系統運作時,才根據實際情況決定實現何種操作。 ######對與第一種情況很容易就能理解,不同簽章就有不同的實作######而第二種情況是在繼承的基礎上實現的,子類繼承基類時,透過對虛成員的重寫,然後利用基類引用子類對象,那麼不同的子類對象實現相應的不同操作。 ######這樣的好處是顯而易見的,利用基類類型定義一次,然後給它傳入不同的子類對象,然後實現不同的操作,提高了效率。 ###以上是極客學院C#影片教學的資料推薦的詳細內容。更多資訊請關注PHP中文網其他相關文章!