版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第2章章 面向?qū)ο蠹夹g(shù)面向?qū)ο蠹夹g(shù)面向?qū)ο?Object Oriented,OO)2.1 面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言C+JavaC#Delphi(Pascal)VB.NET(VB)Delphi 和和C#之父:之父:Anders Hejlsberg語(yǔ)言大師語(yǔ)言大師:安德爾斯安德爾斯Anders Hejlsberg與與Delphi畢業(yè)于丹麥科技大學(xué),曾是畢業(yè)于丹麥科技大學(xué),曾是Borland公司的創(chuàng)始人之一。公司的創(chuàng)始人之一。在在Borland期間,期間,Anders Hejlsberg開發(fā)了著名的開發(fā)了著名的Turbo Pascal語(yǔ)言,并在其基礎(chǔ)上將語(yǔ)言,并在其基礎(chǔ)上將Turb
2、o Pascal變成一種面變成一種面向?qū)ο?、真正擁有可視化編程環(huán)境和卓越的數(shù)據(jù)庫(kù)庫(kù)訪向?qū)ο蟆⒄嬲龘碛锌梢暬幊汰h(huán)境和卓越的數(shù)據(jù)庫(kù)庫(kù)訪問特性的應(yīng)用程序開發(fā)語(yǔ)言問特性的應(yīng)用程序開發(fā)語(yǔ)言Delphi?,F(xiàn)在。現(xiàn)在Delphi依然是依然是Borland公司的拳頭和旗幟性產(chǎn)品,并成為了廣大開發(fā)人公司的拳頭和旗幟性產(chǎn)品,并成為了廣大開發(fā)人員最喜歡的員最喜歡的RAD(快速編程語(yǔ)言)應(yīng)用開發(fā)工具之一。(快速編程語(yǔ)言)應(yīng)用開發(fā)工具之一。 真正的程序員用真正的程序員用C,聰明的程序員用,聰明的程序員用Delphi。Anders Hejlsberg與與Visual Basic20世紀(jì)世紀(jì)90年代年代Anders領(lǐng)導(dǎo)開
3、發(fā)的領(lǐng)導(dǎo)開發(fā)的Delphi取得巨大成功,取得巨大成功,這也這也對(duì)微軟的對(duì)微軟的Visual Basic構(gòu)成了極大的威脅構(gòu)成了極大的威脅,因此比,因此比爾蓋茨再次啟用微軟發(fā)家法寶之一的爾蓋茨再次啟用微軟發(fā)家法寶之一的“挖人挖人”招術(shù):用招術(shù):用豐厚的薪水、股票認(rèn)購(gòu)權(quán)和巨額的加盟獎(jiǎng)金將豐厚的薪水、股票認(rèn)購(gòu)權(quán)和巨額的加盟獎(jiǎng)金將Anders挖挖到了微軟。到了微軟。1996年年Anders來到微軟。來到微軟。Delphi號(hào)稱號(hào)稱Visual Basic 殺手殺手Anders Hejlsberg與與Visual J+(Java)1996年年Anders來到微軟后,直接主抓來到微軟后,直接主抓Visual
4、J+的研發(fā)的研發(fā)工作。后來由于在工作。后來由于在Java開發(fā)工具授權(quán)問題上和開發(fā)工具授權(quán)問題上和Sun公司公司的糾紛,微軟停止了的糾紛,微軟停止了Visual J+的后續(xù)開發(fā)。的后續(xù)開發(fā)。 Java語(yǔ)言的優(yōu)勢(shì)是跨平臺(tái)性。語(yǔ)言的優(yōu)勢(shì)是跨平臺(tái)性。Anders Hejlsberg與與C#微軟在微軟在Visual J+項(xiàng)目中處于極為被動(dòng)的局面,就在人項(xiàng)目中處于極為被動(dòng)的局面,就在人們認(rèn)為微軟不可能再有改觀的時(shí)候,微軟另辟蹊徑,們認(rèn)為微軟不可能再有改觀的時(shí)候,微軟另辟蹊徑,在在anders的主持下,推出了的主持下,推出了.NET計(jì)劃和計(jì)劃和C#語(yǔ)言語(yǔ)言。 code once ,run anywhere。
5、2010年3月編程語(yǔ)言排行榜http:/2009年4月20日視頻:甲骨文74億美元收購(gòu)Sun歐盟無條件批準(zhǔn)歐盟無條件批準(zhǔn)Oracle公司對(duì)公司對(duì)Sun收購(gòu)案的消息,實(shí)際上宣告了收購(gòu)案的消息,實(shí)際上宣告了一個(gè)偉大公司的離去。一個(gè)偉大公司的離去。Java之父James Gosling在自己的博客貼出了一幅畫,應(yīng)該代表了許多技術(shù)人的心情。悼念一個(gè)偉大的公司 Java的輝煌還能延續(xù)多久鏈接:Java之父離開OracleGosling博客全文如下:是的,那些傳言都是真的:我已經(jīng)在一周前(4月2日)從Oracle辭職。我要對(duì)周三參加圣彼得堡TechDays希望聽我演講的所有人道歉。沒能出席,我感到非常難受
6、。至于離開的原因,我很難回答:能說的任何準(zhǔn)確而且真實(shí)的話都弊大于利。最困難的地方,是無法再與這些年來我有幸一起工作的所有人共事了。除了在找工作之前休息一段時(shí)間之外,我不知道下一步會(huì)做些什么。小結(jié):小結(jié):C+是目前功能最為強(qiáng)大的語(yǔ)言。是目前功能最為強(qiáng)大的語(yǔ)言。Visual Basic是最容易使用的語(yǔ)言。是最容易使用的語(yǔ)言。Delphi兼具兼具C+功能強(qiáng)大和功能強(qiáng)大和VB易于使用的特點(diǎn),最跨平易于使用的特點(diǎn),最跨平臺(tái)性不于臺(tái)性不于java,java和和.NET打亂了打亂了Delphi的發(fā)展計(jì)劃。的發(fā)展計(jì)劃。Java的突出特點(diǎn)是跨平臺(tái)性,但功能不如的突出特點(diǎn)是跨平臺(tái)性,但功能不如C+。C#是是最年青
7、、面向?qū)ο笞顝氐鬃钅昵?、面向?qū)ο笞顝氐椎恼Z(yǔ)言,結(jié)合了的語(yǔ)言,結(jié)合了C+、java、Delphi等各種語(yǔ)言的優(yōu)點(diǎn)。等各種語(yǔ)言的優(yōu)點(diǎn)。點(diǎn)擊打開全文2.2 面向?qū)ο缶幊堂嫦驅(qū)ο缶幊桃砸訡# 語(yǔ)言為例語(yǔ)言為例注意:注意:UML是獨(dú)立于程序語(yǔ)言的。是獨(dú)立于程序語(yǔ)言的?!叭绻阌幸恢回?,你想把它賣給一個(gè)編程者,那么,與其強(qiáng)調(diào)其可愛與溫順,或如何能捉老鼠,不如直接告訴買家,這只貓是面向?qū)ο蟮?。?關(guān)于貓與面向?qū)ο蟮慕?jīng)典名言非常形象的揭示了面向?qū)ο笤贗T界乃至整個(gè)學(xué)術(shù)界的地位。一、一、C#概述概述1、C#的產(chǎn)生的產(chǎn)生2000年年6月,月,Microsoft .NET開發(fā)平臺(tái)的發(fā)布,標(biāo)志著近開發(fā)平臺(tái)的發(fā)布,標(biāo)志
8、著近10年來年來Microsoft公司開發(fā)平臺(tái)一個(gè)重大的轉(zhuǎn)變。公司開發(fā)平臺(tái)一個(gè)重大的轉(zhuǎn)變。C#是一種安全的、穩(wěn)定的、簡(jiǎn)單的,由C和C+衍生出來的面向?qū)ο蟮木幊陶Z(yǔ)言。它在繼承C和C+強(qiáng)大功能的同時(shí)去掉了一些它們的復(fù)雜特性(例如沒有宏和模版,不允許多重繼承)。C#綜合了VB簡(jiǎn)單的可視化操作和C+的高運(yùn)行效率,以其強(qiáng)大的操作能力、優(yōu)雅的語(yǔ)法風(fēng)格、創(chuàng)新的語(yǔ)言特性和便捷的面向組件編程的支持成為.NET開發(fā)的首選語(yǔ)言。比爾.蓋茨者,美華盛頓州人也,初,就讀于哈佛大學(xué),茨平素嬉游無度,不務(wù)于正業(yè),每逢試,動(dòng)輒為C,雖偶有B,未曾見有A者,故老師同學(xué)皆譏之。茨乃心中不憤,遂決心使C乃為名動(dòng)天下之字母,乃輟學(xué)。
9、后結(jié)識(shí)一人,共創(chuàng)今日之C語(yǔ)言,并立公司曰微軟。且出Visual Studio系列,中有VB,VC,然未有VA者,蓋避其學(xué)業(yè)之諱也。世人皆用之,然其內(nèi)幕稀知矣。時(shí)易事移,C已顯老邁不可之態(tài),乃創(chuàng)其更新版本,欲名C+。然同創(chuàng)業(yè)者,皆曰C+何若C+也,似應(yīng)名之為此。茨迫于眾意,勉強(qiáng)可之。故今日之C+,本應(yīng)名C+者也,此亦緣何由C徑至C+而逾過C+之因也。C#的故事時(shí)至新世紀(jì),茨欲將時(shí)至新世紀(jì),茨欲將C+再升一級(jí),將名之曰再升一級(jí),將名之曰C+。時(shí)。時(shí)有漢人李開復(fù)者,乃獻(xiàn)言。復(fù),漢之臺(tái)灣人也,就業(yè)于有漢人李開復(fù)者,乃獻(xiàn)言。復(fù),漢之臺(tái)灣人也,就業(yè)于美之名校卡梅大學(xué),時(shí)任微軟中國(guó)研究院之主任。復(fù)曰:美之名
10、校卡梅大學(xué),時(shí)任微軟中國(guó)研究院之主任。復(fù)曰:“竊為明公不可也。竊為明公不可也?!贝脑唬捍脑唬骸昂卧??何哉?”復(fù)乃答曰:復(fù)乃答曰:“C+太顯累贅,吾有一字,明公鑒之。太顯累贅,吾有一字,明公鑒之?!贝脑唬捍脑唬骸昂魏巫??字?”復(fù)曰:復(fù)曰:“莫若莫若C卅,或卅,或C豐最妙。豐最妙。”茨頗不解:茨頗不解:“卿何意哉?卿何意哉?”復(fù)乃詳言曰:復(fù)乃詳言曰:“夫卅者夫卅者,三三+橫排也;夫橫排也;夫豐者,三豐者,三+豎排也。言簡(jiǎn)而意賅,豈不妙哉?豎排也。言簡(jiǎn)而意賅,豈不妙哉?”茨大悅,茨大悅,乃于董事會(huì)上宣布之。然一派言乃于董事會(huì)上宣布之。然一派言C卅優(yōu),蓋卅橫排三卅優(yōu),蓋卅橫排三+,恰恰C+之意也。另一
11、派言之意也。另一派言C豐乃妙,蓋豎排三豐乃妙,蓋豎排三+,乃喻微,乃喻微軟之蒸蒸日上也。軟之蒸蒸日上也。二派糾辨甚兇。茨無奈,復(fù)就詢于開復(fù),乃許之曰:二派糾辨甚兇。茨無奈,復(fù)就詢于開復(fù),乃許之曰:“卿若解此難,吾可以副總裁之位許卿。卿若解此難,吾可以副總裁之位許卿?!睆?fù)心狂喜,復(fù)心狂喜,乃表曰:乃表曰:“明公勿急。前有從明公勿急。前有從C徑升徑升C+,今何不從,今何不從C+徑升徑升C+,而逾,而逾C+乎?吾中華上國(guó),有一井字,乃乎?吾中華上國(guó),有一井字,乃四四+所并而成,何不名下一版本為所并而成,何不名下一版本為c#乎?乎?”茨然其言,乃茨然其言,乃如約升之為微軟之副總裁。如約升之為微軟之副總
12、裁。Visual Studio .NET 2002 (7.0)Visual Studio .NET 2003 (7.1)Visual Studio 2005(VS2005) (8.0)Visual Studio 2008(VS2008) (9.0)2、C#編程和編譯環(huán)境編程和編譯環(huán)境windows 應(yīng)用程序應(yīng)用程序網(wǎng)站網(wǎng)站控制臺(tái)應(yīng)用程序控制臺(tái)應(yīng)用程序VS2005二、二、C#簡(jiǎn)明語(yǔ)法簡(jiǎn)明語(yǔ)法1、數(shù)據(jù)類型、數(shù)據(jù)類型整型:整型: int浮點(diǎn)型:浮點(diǎn)型:float、double字符型:字符型:char字符串:字符串:string 布爾型:布爾型:boolclass Uninitial public s
13、tatic void Main() int num; num=10; Console.WriteLine(num); 2 2、運(yùn)算符、運(yùn)算符算術(shù)算術(shù)+ - * / 邏輯邏輯& | ! 關(guān)系關(guān)系= != =字符串連接字符串連接+3、控制臺(tái)程序的輸入與輸出、控制臺(tái)程序的輸入與輸出 (1)輸出:)輸出:Console.WriteLine()用于向控制臺(tái)輸出一行信息用于向控制臺(tái)輸出一行信息(2)輸入:)輸入: Console.ReadLine()用于從控制臺(tái)中一次讀取一行字符串,直到遇到用于從控制臺(tái)中一次讀取一行字符串,直到遇到Enter鍵鍵才返回讀取的字符串。才返回讀取的字符串。class
14、Programstatic void Main(string args) string x; string y; int z; Console.Write(請(qǐng)輸入第一個(gè)數(shù):請(qǐng)輸入第一個(gè)數(shù):); x = Console.ReadLine(); Console.Write(請(qǐng)輸入第二個(gè)數(shù):請(qǐng)輸入第二個(gè)數(shù):); y = Console.ReadLine(); z = int.Parse(x) + int.Parse(y); Console.WriteLine(兩個(gè)數(shù)的和為:兩個(gè)數(shù)的和為:0, z); 4、程序控制語(yǔ)句、程序控制語(yǔ)句 (1)if語(yǔ)句語(yǔ)句形式形式2:if (表達(dá)式表達(dá)式) 語(yǔ)句語(yǔ)句1el
15、se 語(yǔ)句語(yǔ)句2形式形式1:If (表達(dá)式表達(dá)式) 語(yǔ)句語(yǔ)句;class Add public static void Main() int a,b; string c; Console.Write(請(qǐng)輸入一個(gè)數(shù)值:請(qǐng)輸入一個(gè)數(shù)值:); c= Console.ReadLine(); a=int.Parse(c); b=20; if(a10) Console.WriteLine(“大于大于”); class Compare public static void Main() int a, b, x; Console.Write(請(qǐng)輸入一個(gè)數(shù)值:請(qǐng)輸入一個(gè)數(shù)值: ); a=int.Parse(Co
16、nsole.ReadLine(); Console.Write(請(qǐng)?jiān)佥斎胍粋€(gè)數(shù)值:請(qǐng)?jiān)佥斎胍粋€(gè)數(shù)值: ); b=int.Parse(Console.ReadLine(); if (ab) x=a; else x=b; Console.WriteLine(the max is: 0 , x); (2)while語(yǔ)句語(yǔ)句 while (條件表達(dá)式條件表達(dá)式) 語(yǔ)句語(yǔ)句【例例】使用使用while語(yǔ)句,計(jì)算語(yǔ)句,計(jì)算1+2+3+.+100。class Sum1 public static void Main() int sum=0, i=1; while (i=100) sum=sum+i; i=i+
17、1; Console.WriteLine(sum=0, sum); 三、三、C#面向?qū)ο蟪绦蜓菔久嫦驅(qū)ο蟪绦蜓菔灸繕?biāo):面向?qū)ο蟪绦虻奶攸c(diǎn),引出相關(guān)的概念目標(biāo):面向?qū)ο蟪绦虻奶攸c(diǎn),引出相關(guān)的概念面向過程就是分析出解決問題所需要的步驟,然后用函數(shù)把這些步驟一步一步實(shí)現(xiàn),使用的時(shí)候一個(gè)一個(gè)依次調(diào)用就可以了。 面向?qū)ο笫前褬?gòu)成問題事務(wù)分解成各個(gè)對(duì)象,建立對(duì)象的目的不是為了完成一個(gè)步驟,而是為了描敘某個(gè)事物在整個(gè)解決問題的步驟中的行為。來源:互聯(lián)網(wǎng)面向?qū)ο笈c面向過程的區(qū)別面向過程的程序員認(rèn)為計(jì)算機(jī)世界是由一系列功能構(gòu)成,功能的核心是算法,圍繞算法有許多數(shù)據(jù),數(shù)據(jù)從簡(jiǎn)單到復(fù)雜,統(tǒng)稱為數(shù)據(jù)結(jié)構(gòu),程序就是功能
18、之間通過數(shù)據(jù)銜接。面向?qū)ο蟮某绦騿T認(rèn)為計(jì)算機(jī)世界是由許許多多的對(duì)象組成,每個(gè)對(duì)象都有屬于自己的各種動(dòng)作,程序就是對(duì)象之間通過動(dòng)作進(jìn)行交互。 簡(jiǎn)單地面向?qū)ο蟪绦蜓菔荆╟ode/exame)情景假設(shè):1名學(xué)生的補(bǔ)考:1、老師出卷2、老師安排考試(1)向教務(wù)處向教室和時(shí)間(2)要求學(xué)生開始答題3、老師改卷 class teacher public string name; public teacher(string x) name = x; public void ChuJuan() /出卷 Console.WriteLine(name + 老師出卷); public void AnPaiKaoSh
19、i(JiaoWuChu j,student s) j.AnPaiShiJianDiDian(UML); s.DaTi(); public void GaiJuan() /改卷 Console.WriteLine(name + 老師改卷); class student public string name; public student(string x) name = x; public void DaTi() /答題 Console.WriteLine(學(xué)生 + name + 答題); class JiaoWuChu /教務(wù)處s public void AnPaiShiJianDiDian(
20、string s) /安排時(shí)間地點(diǎn) Console.WriteLine(s + “的考試地點(diǎn):西苑10-806;考試時(shí)間: 第10周周五上午10:00-12:00); class Program static void Main(string args) teacher t = new teacher(李維); JiaoWuChu j = new JiaoWuChu(); student s = new student(張三); t.ChuJuan(); /老師出卷 t.AnPaiKaoShi(j,s); /老師安排考試 t.GaiJuan(); /老師改卷 小結(jié):面向?qū)ο缶幊痰年P(guān)鍵步驟小結(jié):
21、面向?qū)ο缶幊痰年P(guān)鍵步驟u定義類定義類u通過類創(chuàng)建對(duì)象通過類創(chuàng)建對(duì)象u調(diào)用對(duì)象的操作,訪問對(duì)象的屬性調(diào)用對(duì)象的操作,訪問對(duì)象的屬性比較:面向過程編程與面向?qū)ο缶幊瘫容^:面向過程編程與面向?qū)ο缶幊淘诿嫦蜻^程編程模式中,在面向過程編程模式中,圍繞功能圍繞功能(步驟步驟)來構(gòu)造系統(tǒng)來構(gòu)造系統(tǒng)。在面向?qū)ο缶幊棠J街?,在面向?qū)ο缶幊棠J街?,圍繞對(duì)象來構(gòu)造系統(tǒng)圍繞對(duì)象來構(gòu)造系統(tǒng)。2.3 面向?qū)ο蟮幕驹砻嫦驅(qū)ο蟮幕驹砻嫦驅(qū)ο蟮乃枷脒@樣認(rèn)識(shí)世界:面向?qū)ο蟮乃枷脒@樣認(rèn)識(shí)世界:u客觀世界由各種各樣的實(shí)體組成,這些實(shí)體稱為客觀世界由各種各樣的實(shí)體組成,這些實(shí)體稱為對(duì)象對(duì)象。u每個(gè)對(duì)象都有各自的每個(gè)對(duì)象都有各自
22、的內(nèi)部狀態(tài)和運(yùn)動(dòng)規(guī)律內(nèi)部狀態(tài)和運(yùn)動(dòng)規(guī)律,在外界其他,在外界其他對(duì)象或環(huán)境的影響下,對(duì)象會(huì)根據(jù)發(fā)生的具體事件作出不對(duì)象或環(huán)境的影響下,對(duì)象會(huì)根據(jù)發(fā)生的具體事件作出不同的反應(yīng),進(jìn)行對(duì)象間的同的反應(yīng),進(jìn)行對(duì)象間的交互交互。u按照對(duì)象的屬性和運(yùn)動(dòng)規(guī)律的相似性,可以將相近的對(duì)按照對(duì)象的屬性和運(yùn)動(dòng)規(guī)律的相似性,可以將相近的對(duì)象劃分為一象劃分為一類類。u復(fù)雜的對(duì)象由相對(duì)簡(jiǎn)單的對(duì)象通過一定的方式復(fù)雜的對(duì)象由相對(duì)簡(jiǎn)單的對(duì)象通過一定的方式組成組成。u不同對(duì)象的組合及對(duì)象間的相互作用和聯(lián)系構(gòu)成了各種不同對(duì)象的組合及對(duì)象間的相互作用和聯(lián)系構(gòu)成了各種不同的系統(tǒng),構(gòu)成了人們所面對(duì)的客觀世界。不同的系統(tǒng),構(gòu)成了人們所面對(duì)的
23、客觀世界。一、客觀世界由各種各樣的實(shí)體組成,這些實(shí)體稱為對(duì)象一、客觀世界由各種各樣的實(shí)體組成,這些實(shí)體稱為對(duì)象OOP:從問題域中客觀存在的事物出發(fā)來構(gòu)造軟件系統(tǒng),:從問題域中客觀存在的事物出發(fā)來構(gòu)造軟件系統(tǒng),用用對(duì)象對(duì)象用為對(duì)這些事物的抽象表示,并以此作為用為對(duì)這些事物的抽象表示,并以此作為系統(tǒng)的基系統(tǒng)的基本構(gòu)成單位本構(gòu)成單位。面向?qū)ο蟮男蜗蠼忉專?)所謂對(duì)象,在 Developer 眼里萬(wàn)物皆為對(duì)象。比如,我們從早上起床開始:睜開眼(Object)看見天(Object)亮了,那是因?yàn)橛泄猓∣bject),抬頭(Object)望望窗(Object)外,太陽(yáng)(Object)出來了.面向?qū)ο蟮男蜗?/p>
24、解釋(2)那么我們是怎么區(qū)分這些對(duì)象呢?天上有一個(gè)太陽(yáng)一個(gè)月亮,我們從小就知道它們是不同的,甚至不需要理由。為什么?因?yàn)樗鼈兊耐庥^形態(tài)、活動(dòng)規(guī)律都有極大的區(qū)別。比如你看見一個(gè)對(duì)象,它有5噸重,3米高,四條粗腿,一條長(zhǎng)鼻子,兩只大白牙,即使你從沒見過你也應(yīng)該知道它是什么。再比如我現(xiàn)在敲這段文字的時(shí)候,腿上一陣奇癢,不用看我就知道屋子里至少有一只蚊子而且還是位蚊子小姐,因?yàn)槲乙呀?jīng)知道在這種情況下只有母蚊子才具有“?!边@種行為。二、每個(gè)對(duì)象都有各自的內(nèi)部狀態(tài)和運(yùn)動(dòng)規(guī)律二、每個(gè)對(duì)象都有各自的內(nèi)部狀態(tài)和運(yùn)動(dòng)規(guī)律在外界其他對(duì)象或環(huán)境的影響下,對(duì)象會(huì)根據(jù)發(fā)生的具在外界其他對(duì)象或環(huán)境的影響下,對(duì)象會(huì)根據(jù)發(fā)生的
25、具體事件體事件作出不同的反應(yīng),進(jìn)行對(duì)象間的交互作出不同的反應(yīng),進(jìn)行對(duì)象間的交互。面向?qū)ο蟮男蜗蠼忉專?)新的問題又來了。比如我們這個(gè)小區(qū)有不少養(yǎng)寵物的,每天傍晚狗跳貓躥的煞是熱鬧。雖然每只狗都有不同,每只貓也都相異,但看上去狗都是,狗貓都是貓。原因是它們主要的狀態(tài)和行為雖然都完全相同,這就有了類(Class)。類的狀態(tài)稱為屬性(Property),而行為就是方法(Method)了。三、按照對(duì)象的屬性和運(yùn)動(dòng)規(guī)律的相似性,可以將相近三、按照對(duì)象的屬性和運(yùn)動(dòng)規(guī)律的相似性,可以將相近的對(duì)象劃分為一類的對(duì)象劃分為一類MP3計(jì)算機(jī)計(jì)算機(jī)類是這些對(duì)象的抽象描述,類是這些對(duì)象的抽象描述,每個(gè)對(duì)象是類的一個(gè)實(shí)例
26、每個(gè)對(duì)象是類的一個(gè)實(shí)例。四、復(fù)雜的對(duì)象由相對(duì)簡(jiǎn)單的對(duì)象通過一定的方式組成四、復(fù)雜的對(duì)象由相對(duì)簡(jiǎn)單的對(duì)象通過一定的方式組成對(duì)象具有可分解性和組合性。對(duì)象具有可分解性和組合性。面向?qū)ο蠓椒ǖ膭倮?、不同?duì)象的五、不同對(duì)象的組合組合及對(duì)象間的及對(duì)象間的相互作用和聯(lián)系相互作用和聯(lián)系構(gòu)成了構(gòu)成了各種不同的系統(tǒng),構(gòu)成了人們所面對(duì)的客觀世界。各種不同的系統(tǒng),構(gòu)成了人們所面對(duì)的客觀世界。2.4 面向?qū)ο蟮幕靖拍蠲嫦驅(qū)ο蟮幕靖拍蠲嫦驅(qū)ο笫且环N運(yùn)用對(duì)象、類、繼承、封裝、多態(tài)、面向?qū)ο笫且环N運(yùn)用對(duì)象、類、繼承、封裝、多態(tài)、消息等概念來構(gòu)造系統(tǒng)的軟件開發(fā)方法。消息等概念來構(gòu)造系統(tǒng)的軟件開發(fā)方法。面向?qū)ο竺嫦驅(qū)ο?
27、對(duì)象對(duì)象+類類+封裝封裝+繼承繼承+多態(tài)多態(tài)一、對(duì)象與類一、對(duì)象與類對(duì)象:客觀世界中的實(shí)體,對(duì)象由一組對(duì)象:客觀世界中的實(shí)體,對(duì)象由一組屬性和操作組成。屬性和操作組成。類類:具有相同具有相同屬性和行為的對(duì)象集合。屬性和行為的對(duì)象集合。抽象為抽象為MP3對(duì)象:對(duì)象: class student public string name; public student(string x) name = x; public void DaTi() /答題答題 Console.WriteLine(學(xué)生學(xué)生 + name + 答題答題); 創(chuàng)建學(xué)生對(duì)象創(chuàng)建學(xué)生對(duì)象 student s1 = new stud
28、ent(張三張三); student s2 = new student(李四李四);類:類:student對(duì)象:對(duì)象:s1、s2思考題:思考題:一個(gè)類可以創(chuàng)建多個(gè)對(duì)象,這些對(duì)象之間的區(qū)間體現(xiàn)在一個(gè)類可以創(chuàng)建多個(gè)對(duì)象,這些對(duì)象之間的區(qū)間體現(xiàn)在(A)屬性的類型不同)屬性的類型不同(B)屬性的個(gè)數(shù)不同)屬性的個(gè)數(shù)不同(C)操作的個(gè)數(shù)不同)操作的個(gè)數(shù)不同(D)屬性值不同)屬性值不同二、對(duì)象的特性:封裝二、對(duì)象的特性:封裝封裝是把對(duì)象的屬性和操作結(jié)合成一個(gè)獨(dú)立的系統(tǒng)單位,封裝是把對(duì)象的屬性和操作結(jié)合成一個(gè)獨(dú)立的系統(tǒng)單位,并盡可能地隱藏對(duì)象的內(nèi)部細(xì)節(jié)。并盡可能地隱藏對(duì)象的內(nèi)部細(xì)節(jié)。封裝有兩重含義:封裝有兩
29、重含義:1 1、把相關(guān)的數(shù)據(jù)(屬性)和操作結(jié)合在一起,組成一個(gè)、把相關(guān)的數(shù)據(jù)(屬性)和操作結(jié)合在一起,組成一個(gè)一個(gè)不可再分的獨(dú)立單元,即對(duì)象。一個(gè)不可再分的獨(dú)立單元,即對(duì)象。2、封裝允許有選擇地隱藏對(duì)象中的屬性和操作(通過、封裝允許有選擇地隱藏對(duì)象中的屬性和操作(通過可可見性來實(shí)現(xiàn)見性來實(shí)現(xiàn))。)。 class student public string name; public student(string x) name = x; public void DaTi() /答題答題 Console.WriteLine(學(xué)生學(xué)生 + name + 答題答題); 三、類的特性:繼承(派生、泛化)
30、三、類的特性:繼承(派生、泛化) 子類擁有父類的全部屬性和操作。子類擁有父類的全部屬性和操作。定義子類時(shí)不必定義子類時(shí)不必重復(fù)定義那些已經(jīng)在父類中定義過的屬性和操作,重復(fù)定義那些已經(jīng)在父類中定義過的屬性和操作,在此基礎(chǔ)上還可以添加自己的屬性和操作。在此基礎(chǔ)上還可以添加自己的屬性和操作。Class1ABCK()W()Class2ABDK()F()Class1CW()Class2DF()class0ABK()Class1ABCK()W()Class2ABDK()F()Class1CW()Class2DF()class0ABK()A B K() C W()ABA父類父類基類基類一般類一般類B子類子類
31、派生類派生類特殊類特殊類如果如果A繼承于繼承于B,則:,則:ABABC單重繼承單重繼承多重繼承多重繼承只有只有C+還支持多重繼承,其他語(yǔ)言(還支持多重繼承,其他語(yǔ)言(C#、java)等都)等都已經(jīng)取消了多重繼承。已經(jīng)取消了多重繼承。程序演示:code/graduate class student public int number; public string name; public string myclass; class graduate:student public string research; public string teacher; class Program stati
32、c void Main(string args) graduate g1 = new graduate(); g1.number = 1000; = 張三; g1.myclass = 管理科學(xué)與工程062; g1.research = 管理系統(tǒng)工程; g1.teacher = 汪應(yīng)洛; Console.WriteLine(姓名:+); Console.WriteLine(導(dǎo)師:+g1.teacher); 程序演示:code/graduate四、對(duì)象之間的聯(lián)系紐帶四、對(duì)象之間的聯(lián)系紐帶消息消息對(duì)象之間通過傳遞消息來相互作用,對(duì)象之間通過傳遞消息來相互作用,消息在代碼中體現(xiàn)為消息在代碼中體現(xiàn)為函數(shù)(操作)的調(diào)用。函數(shù)(操作)的調(diào)用。消息包含三個(gè)方面的內(nèi)容消息包含三個(gè)方面的內(nèi)容: :消息的接收者消息的接收者接收對(duì)象應(yīng)采用的方法接收對(duì)象應(yīng)采用的方法方法所需要的參數(shù)(可以為空)方法所需要的參數(shù)(可以為空)消息:消息: class teacher public void AnPaiKaoShi() /安排考試安排考試 j.AnPaiShiJianDiDian(UML); s.DaTi(); 五、類的特性:多態(tài)五、類的特性:多態(tài)多態(tài)性:同名的操作被不同的對(duì)象接收時(shí),可產(chǎn)生不同的動(dòng)多態(tài)性:同名的操作被不同的對(duì)象接收時(shí),可產(chǎn)生不同的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 旅游業(yè)務(wù)賦能增長(zhǎng)
- 旅游業(yè)績(jī)超越預(yù)期
- 2025年智能制造園區(qū)廠房拆遷補(bǔ)償及產(chǎn)業(yè)布局協(xié)議4篇
- 個(gè)人投資企業(yè)資產(chǎn)轉(zhuǎn)讓協(xié)議版A版
- 2025柴油終端零售居間合作協(xié)議書4篇
- 2025年度茶葉產(chǎn)品研發(fā)與技術(shù)轉(zhuǎn)移合同4篇
- 2025年度海上風(fēng)電場(chǎng)建設(shè)分包工程合同4篇
- 2025年度教育培訓(xùn)課程定制合同書4篇
- 專業(yè)服裝面料供應(yīng)協(xié)議范本版B版
- 二零二四二手設(shè)備購(gòu)買與維修合同2篇
- 2024-2025學(xué)年成都高新區(qū)七上數(shù)學(xué)期末考試試卷【含答案】
- 定額〔2025〕1號(hào)文-關(guān)于發(fā)布2018版電力建設(shè)工程概預(yù)算定額2024年度價(jià)格水平調(diào)整的通知
- 2025年浙江杭州市西湖區(qū)專職社區(qū)招聘85人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 《數(shù)學(xué)廣角-優(yōu)化》說課稿-2024-2025學(xué)年四年級(jí)上冊(cè)數(shù)學(xué)人教版
- “懂你”(原題+解題+范文+話題+技巧+閱讀類素材)-2025年中考語(yǔ)文一輪復(fù)習(xí)之寫作
- 2025年景觀照明項(xiàng)目可行性分析報(bào)告
- 2025年江蘇南京地鐵集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 2025年度愛讀書學(xué)長(zhǎng)參與的讀書項(xiàng)目投資合同
- 電力系統(tǒng)分析答案(吳俊勇)(已修訂)
- 化學(xué)-河北省金太陽(yáng)質(zhì)檢聯(lián)盟2024-2025學(xué)年高三上學(xué)期12月第三次聯(lián)考試題和答案
- 期末復(fù)習(xí)試題(試題)-2024-2025學(xué)年四年級(jí)上冊(cè)數(shù)學(xué) 北師大版
評(píng)論
0/150
提交評(píng)論