C面向?qū)ο蟪绦蛟O(shè)計-正式版課件_第1頁
C面向?qū)ο蟪绦蛟O(shè)計-正式版課件_第2頁
C面向?qū)ο蟪绦蛟O(shè)計-正式版課件_第3頁
C面向?qū)ο蟪绦蛟O(shè)計-正式版課件_第4頁
C面向?qū)ο蟪绦蛟O(shè)計-正式版課件_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

C#面向?qū)ο蟪绦蛟O(shè)計概念主講人:C#面向?qū)ο蟪绦蛟O(shè)計概念主講人:1個人簡介個人簡介2面向?qū)ο蟮能浖_發(fā)技術(shù)是當今計算機技術(shù)發(fā)展的重要成果和趨勢之一。C#是完全面向?qū)ο蟮某绦蛟O(shè)計語言。類和對象是面向?qū)ο蟪绦蛟O(shè)計中的重要概念。封裝性、繼承性和多態(tài)性是面向?qū)ο蟮奶攸c。本章主要介紹面向?qū)ο蟪绦蛟O(shè)計中的基本概念——類和對象面向?qū)ο蟮能浖_發(fā)技術(shù)是當今計算機技術(shù)發(fā)展的重要成果和趨勢之3一面向?qū)ο蟮母攀?.1面向?qū)ο蟮母拍蠲嫦驅(qū)ο蟪绦蛟O(shè)計(Object-OrientedProgramming)簡稱OOP技術(shù)。OOP是一種系統(tǒng)化的程序設(shè)計方法,強調(diào)直接以問題域(即現(xiàn)實世界)中的事物為中心來考慮問題,并按照這些事物的本質(zhì)特征把它們抽象為對象。OOP的主要思想是將數(shù)據(jù)及處理這些數(shù)據(jù)的操作都封裝(Encapsulation)到一個稱為類(Class)的數(shù)據(jù)結(jié)構(gòu)中。在這種方法下,編程人員不需要過分關(guān)注“如何做”,而是重點關(guān)注“做什么”。OOP編程思想較好地適應(yīng)了現(xiàn)實世界中的問題,因而得以廣泛應(yīng)用。一面向?qū)ο蟮母攀?.1面向?qū)ο蟮母拍?1.2面向?qū)ο笳Z言的特點面向?qū)ο蟮木幊谭绞骄哂欣^承、封裝和多態(tài)性特點。(1)繼承繼承(inheritance)是面向?qū)ο缶幊碳夹g(shù)的一塊基石,通過它可以創(chuàng)建分等級層次關(guān)系的類。繼承是父類和子類之間共享數(shù)據(jù)和方法的機制,通常把父類稱為基類,子類稱為派生類。子類可以從其父類中繼承屬性和方法,通過這種關(guān)系模型可以簡化類的設(shè)計。假如已經(jīng)定義了A類,接下來準備定義B類,而B類中有很多屬性和方法與A類相同,那么就可以實現(xiàn)B類繼承于A類,這樣就無須再在B類中定義A類中已具有的屬性和方法,從而可以在很大程度上提高程序的開發(fā)效率,提高代碼利用率。1.2面向?qū)ο笳Z言的特點面向?qū)ο蟮木幊谭绞骄哂欣^承、封裝5例如,可以將水果看作一個父類,那么水果類具有顏色屬性。然后再定義一個香蕉類,在定義香蕉類時就不需要定義香蕉類的顏色屬性,通過如下繼承關(guān)系可以使香蕉類具有顏色屬性。class水果類{ Public顏色;//在水果類中定義顏色屬性}class香蕉類:水果類{ //香蕉類中其他的屬性和方法}1.2面向?qū)ο笳Z言的特點例如,可以將水果看作一個父類,那么水果類具有顏色屬性。然后再61.2面向?qū)ο笳Z言的特點(2)封裝類是屬性和方法的集合,為了實現(xiàn)某項功能而定義類后,開發(fā)人員并不需要了解類體內(nèi)每行代碼的具體涵義,只需通過對象來調(diào)用類內(nèi)某個屬性或方法即可實現(xiàn)某項功能,這就是類的封裝。封裝提供了外界與對象進行交互的控制機制,設(shè)計和實施者可以公開外界需要直接操作的屬性和方法,而把其他的屬性和方法隱藏在對象內(nèi)部。這樣可以讓軟件程序封裝化,而且可以避免外界錯誤地使用屬性和方法。1.2面向?qū)ο笳Z言的特點(2)封裝71.2面向?qū)ο笳Z言的特點以汽車為例,廠商把汽車的顏色公開給外界,外界想怎么改顏色都可以的,但是防盜系統(tǒng)的內(nèi)部構(gòu)造是隱藏起來的;更換汽缸可以是公開的行為,但是汽缸和發(fā)動機的協(xié)調(diào)方法就沒有必要讓用戶知道了。1.2面向?qū)ο笳Z言的特點以汽車為例,廠商把汽車的顏色公開給81.2面向?qū)ο笳Z言的特點(3)多態(tài)性類的多態(tài)性(polymorph)指對于屬于同一個類的對象,在不同的場合能夠表現(xiàn)出不同的特征。多態(tài)性主要指在一般類中定義的屬性或行為,被特殊類繼承之后,可以具有不同數(shù)據(jù)類型或表現(xiàn)出不同的行為。這使得同一個屬性或行為在一般類及其各個特殊類具有不同的意義。例如:某個對象,其基類為“筆”,在調(diào)用它的“寫”方法時,程序會自動判斷出它的具體類型,如果是毛筆,則調(diào)用毛筆類對應(yīng)的“寫”方法,如果是鉛筆,則調(diào)用鉛筆類對應(yīng)的“寫”方法。1.2面向?qū)ο笳Z言的特點(3)多態(tài)性92定義類在C#中,“類”是一種數(shù)據(jù)結(jié)構(gòu),它可以包含數(shù)據(jù)成員(常量和字段)、函數(shù)成員(方法、屬性、事件、索引器、運算符、構(gòu)造函數(shù)、析構(gòu)函數(shù))。類是個靜態(tài)的概念,如果要使用某個類,就應(yīng)該定義該類的一個或多個實例,每一個實例就是一個對象。如果要使用某個類,只要向該類發(fā)送消息即可,而對象會利用自身存在的函數(shù)來響應(yīng)接收的消息。類支持繼承,繼承是一種使派生類可以對基類進行擴展和專用化的機制。2定義類在C#中,“類”是一種數(shù)據(jù)結(jié)構(gòu),它可以包含數(shù)據(jù)成102.1類的概念類是對象概念在面向?qū)ο缶幊陶Z言中的反映,是相同對象的集合。類描述了一系列在概念上有相同含義的對象,并為這些對象統(tǒng)一定義了屬性和方法。類是對象的抽象描述和概括。例如:車是一個類,自行車、汽車、火車也是類。但是自行車、汽車、火車都是車這個類的子類。因為他們有共同的特點都是交通工具,都有輪子,都可以運輸。而汽車有顏色,車輪、車門、發(fā)動機,這是和自行車、火車的不同之處,是汽車類自己的屬性。2.1類的概念類是對象概念在面向?qū)ο缶幊陶Z言中的反映,是相112.1類的概念而具體到某輛汽車就是一個對象了,例如:車牌照為蘇A2345**的黑色奧迪轎車。用具體的屬性可以在汽車類中唯一確定自己,并且對象具有類的操作。簡而言之,類是C#中最為強大的數(shù)據(jù)類型,它定義了數(shù)據(jù)類型的數(shù)據(jù)和行為。在C#中,所有的內(nèi)容都被封裝在類中,類是C#的基礎(chǔ),每個類通過屬性和方法及其他一些成員來表達事物的狀態(tài)和行為。事實上,編寫C#程序的主要任務(wù)就是定義各種類及類的各種成員。2.1類的概念而具體到某輛汽車就是一個對象了,例如:車牌照122.2類的聲明簡單地講,類是一種數(shù)據(jù)結(jié)構(gòu),用于模擬現(xiàn)實中存在的對象和關(guān)系,包含靜態(tài)的屬性和動態(tài)的方法。C#中類的聲明需要使用class關(guān)鍵字,并把類的主體放在花括號中,格式如下:[類修飾符]class類名[:基類類名]{ //屬性 //方法}其中,除了class關(guān)鍵字和類名外,剩余的都是可選項;類名必須是合法的C#標識符,它將作為新定義的類的類型標識符。2.2類的聲明簡單地講,類是一種數(shù)據(jù)結(jié)構(gòu),用于模擬現(xiàn)實中存132.2類的聲明class關(guān)鍵字前面是訪問級別。在C#中,類的訪問級別由類的修飾符進行限定,類的修飾符如表5-1所示。在上例中,如果類的修飾符為public,這表示該類可以被任何其他類訪問。類的名稱位于class關(guān)鍵字的后面。2.2類的聲明class關(guān)鍵字前面是訪問級別。在C#中,類142.2類的聲明以上的類修飾符可以兩個或多個組合起來使用,但需要注意下面幾點:(1)在一個類聲明中,同一類修飾符不能多次出現(xiàn),否則會出錯。(2)new類修飾符僅允許在嵌套類中表示類聲明時使用,表明類中隱藏了由基類中繼承而來的、與基類中同名的成員。(3)在使用public、protected、internal和private這些類修飾符時,要注意這些類修飾符不僅表示所定義類的訪問特性,而且還表明類中成員聲明中的訪問特性,并且它們的可用性也會對派生類造成影響。(4)抽象類修飾符abstract和密封類修飾符sealed都是受限類修飾符。(5)如果省略類修飾符,則默認為私有修飾符private。(6)對于具有繼承關(guān)系的類才有基類。如果一個類沒有從任何類繼承,就不需要基類類名選項。在C#中,一個類只能從另一個類中繼承,而不能從多個類中繼承;而在C++及其他面向?qū)ο蟮某绦蛟O(shè)計語言中,一個類可以從多個其他類中繼承。如果一個類想繼承多個類的特點,可以采用接口的方法實現(xiàn)。2.2類的聲明以上的類修飾符可以兩個或多個組合起來使用,但152.2類的聲明-實例下面以一個學生類的實例,說明該類在C#中的實現(xiàn)。該類的類圖如圖5-3所示?!纠?-1】定義一個學生類。publicclassStudent{//屬性//學號、姓名、年齡等

//方法//長大、入學、畢業(yè)等}

2.2類的聲明-實例下面以一個學生類的實例,說明該類在C#16類是現(xiàn)實世界中對象或者關(guān)系的模擬,是一個抽象的概念。例如,像“學生”這個概念,世界上并沒有一個叫做“學生”的活生生的東西,而只有“張三”或者“李四”這些具體的學生實例,這反應(yīng)了類和對象的關(guān)系。(1)類是具有相同或相似結(jié)構(gòu)、操作和約束規(guī)則的對象組成的集合。(2)對象是某一類的具體化實例,每一個類都具有某些共同特征對象的抽象。C#使用new關(guān)鍵字來實現(xiàn)實例化類得到一個具體的對象,其格式如下:class-nameobject-name=newClass-name([paramenter-list]);在前面的示例中已經(jīng)用到創(chuàng)建類實例,都是使用new關(guān)鍵字得到一個具體的學生對象。如下列代碼所示:Students=newStudent();類是現(xiàn)實世界中對象或者關(guān)系的模擬,是一個抽象的概念。例如,像173結(jié)論本章主要介紹了面向?qū)ο蟮囊恍┗局R,包括對象和類。面向?qū)ο笳Z言的特點:繼承、封裝和多態(tài)性。類的定義以及類的聲明。3結(jié)論本章主要介紹了面向?qū)ο蟮囊恍┗局R,包括對象和類。18感謝各位領(lǐng)導、老師的指導!感謝各位領(lǐng)導、老師的指導!19C#面向?qū)ο蟪绦蛟O(shè)計概念主講人:C#面向?qū)ο蟪绦蛟O(shè)計概念主講人:20個人簡介個人簡介21面向?qū)ο蟮能浖_發(fā)技術(shù)是當今計算機技術(shù)發(fā)展的重要成果和趨勢之一。C#是完全面向?qū)ο蟮某绦蛟O(shè)計語言。類和對象是面向?qū)ο蟪绦蛟O(shè)計中的重要概念。封裝性、繼承性和多態(tài)性是面向?qū)ο蟮奶攸c。本章主要介紹面向?qū)ο蟪绦蛟O(shè)計中的基本概念——類和對象面向?qū)ο蟮能浖_發(fā)技術(shù)是當今計算機技術(shù)發(fā)展的重要成果和趨勢之22一面向?qū)ο蟮母攀?.1面向?qū)ο蟮母拍蠲嫦驅(qū)ο蟪绦蛟O(shè)計(Object-OrientedProgramming)簡稱OOP技術(shù)。OOP是一種系統(tǒng)化的程序設(shè)計方法,強調(diào)直接以問題域(即現(xiàn)實世界)中的事物為中心來考慮問題,并按照這些事物的本質(zhì)特征把它們抽象為對象。OOP的主要思想是將數(shù)據(jù)及處理這些數(shù)據(jù)的操作都封裝(Encapsulation)到一個稱為類(Class)的數(shù)據(jù)結(jié)構(gòu)中。在這種方法下,編程人員不需要過分關(guān)注“如何做”,而是重點關(guān)注“做什么”。OOP編程思想較好地適應(yīng)了現(xiàn)實世界中的問題,因而得以廣泛應(yīng)用。一面向?qū)ο蟮母攀?.1面向?qū)ο蟮母拍?31.2面向?qū)ο笳Z言的特點面向?qū)ο蟮木幊谭绞骄哂欣^承、封裝和多態(tài)性特點。(1)繼承繼承(inheritance)是面向?qū)ο缶幊碳夹g(shù)的一塊基石,通過它可以創(chuàng)建分等級層次關(guān)系的類。繼承是父類和子類之間共享數(shù)據(jù)和方法的機制,通常把父類稱為基類,子類稱為派生類。子類可以從其父類中繼承屬性和方法,通過這種關(guān)系模型可以簡化類的設(shè)計。假如已經(jīng)定義了A類,接下來準備定義B類,而B類中有很多屬性和方法與A類相同,那么就可以實現(xiàn)B類繼承于A類,這樣就無須再在B類中定義A類中已具有的屬性和方法,從而可以在很大程度上提高程序的開發(fā)效率,提高代碼利用率。1.2面向?qū)ο笳Z言的特點面向?qū)ο蟮木幊谭绞骄哂欣^承、封裝24例如,可以將水果看作一個父類,那么水果類具有顏色屬性。然后再定義一個香蕉類,在定義香蕉類時就不需要定義香蕉類的顏色屬性,通過如下繼承關(guān)系可以使香蕉類具有顏色屬性。class水果類{ Public顏色;//在水果類中定義顏色屬性}class香蕉類:水果類{ //香蕉類中其他的屬性和方法}1.2面向?qū)ο笳Z言的特點例如,可以將水果看作一個父類,那么水果類具有顏色屬性。然后再251.2面向?qū)ο笳Z言的特點(2)封裝類是屬性和方法的集合,為了實現(xiàn)某項功能而定義類后,開發(fā)人員并不需要了解類體內(nèi)每行代碼的具體涵義,只需通過對象來調(diào)用類內(nèi)某個屬性或方法即可實現(xiàn)某項功能,這就是類的封裝。封裝提供了外界與對象進行交互的控制機制,設(shè)計和實施者可以公開外界需要直接操作的屬性和方法,而把其他的屬性和方法隱藏在對象內(nèi)部。這樣可以讓軟件程序封裝化,而且可以避免外界錯誤地使用屬性和方法。1.2面向?qū)ο笳Z言的特點(2)封裝261.2面向?qū)ο笳Z言的特點以汽車為例,廠商把汽車的顏色公開給外界,外界想怎么改顏色都可以的,但是防盜系統(tǒng)的內(nèi)部構(gòu)造是隱藏起來的;更換汽缸可以是公開的行為,但是汽缸和發(fā)動機的協(xié)調(diào)方法就沒有必要讓用戶知道了。1.2面向?qū)ο笳Z言的特點以汽車為例,廠商把汽車的顏色公開給271.2面向?qū)ο笳Z言的特點(3)多態(tài)性類的多態(tài)性(polymorph)指對于屬于同一個類的對象,在不同的場合能夠表現(xiàn)出不同的特征。多態(tài)性主要指在一般類中定義的屬性或行為,被特殊類繼承之后,可以具有不同數(shù)據(jù)類型或表現(xiàn)出不同的行為。這使得同一個屬性或行為在一般類及其各個特殊類具有不同的意義。例如:某個對象,其基類為“筆”,在調(diào)用它的“寫”方法時,程序會自動判斷出它的具體類型,如果是毛筆,則調(diào)用毛筆類對應(yīng)的“寫”方法,如果是鉛筆,則調(diào)用鉛筆類對應(yīng)的“寫”方法。1.2面向?qū)ο笳Z言的特點(3)多態(tài)性282定義類在C#中,“類”是一種數(shù)據(jù)結(jié)構(gòu),它可以包含數(shù)據(jù)成員(常量和字段)、函數(shù)成員(方法、屬性、事件、索引器、運算符、構(gòu)造函數(shù)、析構(gòu)函數(shù))。類是個靜態(tài)的概念,如果要使用某個類,就應(yīng)該定義該類的一個或多個實例,每一個實例就是一個對象。如果要使用某個類,只要向該類發(fā)送消息即可,而對象會利用自身存在的函數(shù)來響應(yīng)接收的消息。類支持繼承,繼承是一種使派生類可以對基類進行擴展和專用化的機制。2定義類在C#中,“類”是一種數(shù)據(jù)結(jié)構(gòu),它可以包含數(shù)據(jù)成292.1類的概念類是對象概念在面向?qū)ο缶幊陶Z言中的反映,是相同對象的集合。類描述了一系列在概念上有相同含義的對象,并為這些對象統(tǒng)一定義了屬性和方法。類是對象的抽象描述和概括。例如:車是一個類,自行車、汽車、火車也是類。但是自行車、汽車、火車都是車這個類的子類。因為他們有共同的特點都是交通工具,都有輪子,都可以運輸。而汽車有顏色,車輪、車門、發(fā)動機,這是和自行車、火車的不同之處,是汽車類自己的屬性。2.1類的概念類是對象概念在面向?qū)ο缶幊陶Z言中的反映,是相302.1類的概念而具體到某輛汽車就是一個對象了,例如:車牌照為蘇A2345**的黑色奧迪轎車。用具體的屬性可以在汽車類中唯一確定自己,并且對象具有類的操作。簡而言之,類是C#中最為強大的數(shù)據(jù)類型,它定義了數(shù)據(jù)類型的數(shù)據(jù)和行為。在C#中,所有的內(nèi)容都被封裝在類中,類是C#的基礎(chǔ),每個類通過屬性和方法及其他一些成員來表達事物的狀態(tài)和行為。事實上,編寫C#程序的主要任務(wù)就是定義各種類及類的各種成員。2.1類的概念而具體到某輛汽車就是一個對象了,例如:車牌照312.2類的聲明簡單地講,類是一種數(shù)據(jù)結(jié)構(gòu),用于模擬現(xiàn)實中存在的對象和關(guān)系,包含靜態(tài)的屬性和動態(tài)的方法。C#中類的聲明需要使用class關(guān)鍵字,并把類的主體放在花括號中,格式如下:[類修飾符]class類名[:基類類名]{ //屬性 //方法}其中,除了class關(guān)鍵字和類名外,剩余的都是可選項;類名必須是合法的C#標識符,它將作為新定義的類的類型標識符。2.2類的聲明簡單地講,類是一種數(shù)據(jù)結(jié)構(gòu),用于模擬現(xiàn)實中存322.2類的聲明class關(guān)鍵字前面是訪問級別。在C#中,類的訪問級別由類的修飾符進行限定,類的修飾符如表5-1所示。在上例中,如果類的修飾符為public,這表示該類可以被任何其他類訪問。類的名稱位于class關(guān)鍵字的后面。2.2類的聲明class關(guān)鍵字前面是訪問級別。在C#中,類332.2類的聲明以上的類修飾符可以兩個或多個組合起來使用,但需要注意下面幾點:(1)在一個類聲明中,同一類修飾符不能多次出現(xiàn),否則會出錯。(2)new類修飾符僅允許在嵌套類中表示類聲明時使用,表明類中隱藏了由基類中繼承而來的、與基類中同名的成員。(3)在使用public、protected、internal和private這些類修飾符時,要注意這些類修飾符不僅表示所定義類的訪問特性,而且還表明類中成員聲明中的訪問特性,并且它們的可用性也會對派生類造成影響。(4)抽象類修飾符abstract和密封類修飾符sealed都是受限類修飾符。(5)如果省略類修飾符,則默認為私有修飾符private。(6)對于具有繼承關(guān)系的類才有基類。如果一個類沒有從任何類繼承,就不需要基類類名選項。在C#中,一個類只能從另一個類中繼承,而不能從多個類中繼承;而在C++

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論