九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

《面向?qū)ο蟪绦蛟O(shè)計(jì)》PPT課件.ppt

上傳人:za****8 文檔編號(hào):14637792 上傳時(shí)間:2020-07-26 格式:PPT 頁數(shù):50 大?。?85KB
收藏 版權(quán)申訴 舉報(bào) 下載
《面向?qū)ο蟪绦蛟O(shè)計(jì)》PPT課件.ppt_第1頁
第1頁 / 共50頁
《面向?qū)ο蟪绦蛟O(shè)計(jì)》PPT課件.ppt_第2頁
第2頁 / 共50頁
《面向?qū)ο蟪绦蛟O(shè)計(jì)》PPT課件.ppt_第3頁
第3頁 / 共50頁

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《面向?qū)ο蟪绦蛟O(shè)計(jì)》PPT課件.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《《面向?qū)ο蟪绦蛟O(shè)計(jì)》PPT課件.ppt(50頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、C#程序設(shè)計(jì)與開發(fā),第4章 面向?qū)ο蟪绦蛟O(shè)計(jì),類和對(duì)象,類(Class)實(shí)際上是對(duì)某種類型的對(duì)象定義變量和方法的原型。它表示對(duì)現(xiàn)實(shí)生活中一類具有共同特征的事物的抽象,是面向?qū)ο缶幊痰幕A(chǔ)。 類定義的一般形式如下: 類修飾符class Name public: 類的公有接口 private: 私有的方法成員 私有的數(shù)據(jù)成員定義 ;,案例,【例4-1】person類的示例代碼。 public class person private string name;/姓名 private string sex; /性別 private int age; /年齡 public void eat(string

2、 food) /我會(huì)吃food public void talk() /我會(huì)說話 public void sleep() /我會(huì)睡覺 ,對(duì)象,對(duì)象(object)是一件事、一個(gè)實(shí)體、一個(gè)名詞,可以獲得的東西,可以想象有自己的標(biāo)識(shí)的任何東西。對(duì)象是類的實(shí)例化。一些對(duì)象是活的,一些對(duì)象不是。比如這輛汽車、這個(gè)人、這間房子、這張桌子、這株植物、這張支票、這件雨衣。 概括來說就是:萬物皆對(duì)象。,案例,【例4-2】person類的實(shí)例化,使用對(duì)象。 using System; namespace x4.2 class Program static void Main(string args) perso

3、n person1 = new person(); person1.set(張小云, 男, 20); person1.show(); person1.eat(蘋果); person1.talk(); person1.sleep(); Console.ReadLine(); ,案例,public class person private string name; private string sex; private int age; public void set(string namein, string sexin, int agein) /設(shè)置某個(gè)人的姓名,性別,年齡 name = na

4、mein; sex = sexin; age = agein; ,案例,public void show() Console.WriteLine(我的姓名:0,我的性別:1,我的年齡:2, name, sex, age); public void eat(string food) /我會(huì)吃food Console.WriteLine(我會(huì)吃0,food); public void talk() /我會(huì)說話 Console.WriteLine(我會(huì)說話); public void sleep() /我會(huì)睡覺 Console.WriteLine(我會(huì)睡覺); ,構(gòu)造函數(shù)與析構(gòu)函數(shù),對(duì)象的初始化工作

5、通常由類的構(gòu)造函數(shù)來完成??梢园褬?gòu)造函數(shù)理解為一種特殊的方法成員,它在每次創(chuàng)建對(duì)象時(shí)被自動(dòng)調(diào)用。 構(gòu)造函數(shù)有如下幾個(gè)特性: 構(gòu)造函數(shù)的名稱與類名相同; 構(gòu)造函數(shù)不聲明返回類型; 構(gòu)造函數(shù)通常是公有的(使用public訪問限制修飾符聲明),如果聲明為保護(hù)的(protected)或私有的(private),則該構(gòu)造函數(shù)不能用于類的實(shí)例化; 構(gòu)造函數(shù)的代碼中通常只進(jìn)行對(duì)象初始化工作,而不應(yīng)執(zhí)行其他操作; 構(gòu)造函數(shù)在創(chuàng)建對(duì)象時(shí)被自動(dòng)調(diào)用,不能像其他方法那樣顯式地調(diào)用構(gòu)造函數(shù)。,案例,【例4-3】下面的程序使用構(gòu)造函數(shù)對(duì)類student的3個(gè)字段進(jìn)行了初始化: using System; namespa

6、ce pan class Program static void Main(string args) student st = new student(); Console.WriteLine(st.name); public class student public string name; public int age; public bool gender; public student () name=pan; age=0; gender=false; ,案例,【例4-4】多個(gè)構(gòu)造函數(shù)實(shí)例 public class student public string name; public

7、int age; public bool gender; public student () name=pan; age=0; gender=false; public student(string namein) name = namein; age = 0; gender = false; ,析構(gòu)函數(shù),對(duì)象使用完畢之后,在釋放對(duì)象時(shí)就會(huì)自動(dòng)調(diào)用類的析構(gòu)函數(shù)。 析構(gòu)函數(shù)有如下幾個(gè)特性: 析構(gòu)函數(shù)的名稱與類名相同,但在名稱前面加了一個(gè)符號(hào)“”; 析構(gòu)函數(shù)不接受任何參數(shù),也不返回任何值; 析構(gòu)函數(shù)不能使用任何訪問限制修飾符; 析構(gòu)函數(shù)的代碼中通常只進(jìn)行銷毀對(duì)象的工作,而不應(yīng)執(zhí)行其他的操作; 析構(gòu)

8、函數(shù)不能被繼承,也不能被顯式地調(diào)用。,案例,【例4-5】下面的代碼中定義了一個(gè)沒有任何執(zhí)行代碼的析構(gòu)函數(shù): public class student public string name; public int age; public bool gender; public student() name = pan; age = 0; gender = false; public student() ,public、private、protected修飾符,案例,【例4-6】訪問控制符例子 using System; namespace x4_4 class Program static vo

9、id Main(string args) person person1 = new person(); /person1.name = 張小云;出現(xiàn)錯(cuò)誤,private成員在類外不能訪問 /person1.sex = 男;錯(cuò)誤,protected成員在類外不能訪問,在繼承類中可以訪問 person1.age = 20;/public成員,在類外可以訪問 person1.set(張小云, 男); person1.show(); /person1.eat(蘋果);出現(xiàn)錯(cuò)誤,private成員在類外不能訪問 /person1.talk();錯(cuò)誤,protected成員在類外不能訪問,在繼承類中可以訪

10、問 person1.sleep(); Console.ReadLine(); ,案例,public class person string name;/默認(rèn)為private成員 protected string sex; public int age; public void set(string namein, string sexin) name = namein; sex = sexin; public void show() Console.WriteLine(我的姓名:0,我的性別:1,我的年齡:2, name, sex, age); void eat(string food)/默認(rèn)

11、為private成員 /我會(huì)吃food Console.WriteLine(我會(huì)吃0, food); ,案例,protected void talk() /我會(huì)說話 Console.WriteLine(我會(huì)說話); public void sleep() /我會(huì)睡覺 Console.WriteLine(我會(huì)睡覺); ,學(xué)習(xí)任務(wù),學(xué)習(xí)任務(wù)4.1學(xué)生類設(shè)計(jì),方法,方法是類成員,為類或類的對(duì)象提供某個(gè)方面的行為,用來描述能夠“做什么”。定義方法的一般格式為: 修飾符 返回類型 方法名(形式參數(shù)表)。 /方法體 ,方法的調(diào)用,1.靜態(tài)方法的調(diào)用 若要調(diào)用的方法是靜態(tài)方法,則用類名“點(diǎn)”出方法,格式為

12、類名.方法名(實(shí)際參數(shù)表),案例,【例4-7】例如,求兩個(gè)整數(shù)之和。 using System; namespace a class Program static void Main(string args) int x; int y; int sum; Console.WriteLine(請(qǐng)輸入兩個(gè)整數(shù),按回車確定); x =Convert.ToInt32 ( Console.ReadLine (); y = Convert.ToInt32(Console.ReadLine(); sum = Sum.add(x, y); Console.WriteLine(0+1=2,x,y,sum); C

13、onsole.ReadLine(); public class Sum public static int add(int a, int b) return a + b; ,案例,【例4-8】例如 求兩個(gè)整數(shù)之和。 using System; namespace b class Program static void Main(string args) int x; int y; int sum; Console.WriteLine(請(qǐng)輸入兩個(gè)整數(shù),按回車確定); x = Convert.ToInt32(Console.ReadLine(); y = Convert.ToInt32(Conso

14、le.ReadLine(); sum = add(x, y); Console.WriteLine(0+1=2, x, y, sum); Console.ReadLine(); public static int add(int a, int b) return a + b; ,實(shí)例方法的調(diào)用,2.實(shí)例方法的調(diào)用 實(shí)例方法也稱為一般方法或非靜態(tài)方法。靜態(tài)方法調(diào)用實(shí)例方法先要定義一個(gè)方法所在類的對(duì)象,并實(shí)例化;再通過對(duì)象點(diǎn)(引)出方法,格式為 對(duì)象名.方法名(實(shí)際參數(shù)表),案例,【例4-9】例如,通過實(shí)例對(duì)象調(diào)用方法。 using System; namespace c class Progra

15、m static void Main(string args) int x; int y; int sum; Console.WriteLine(請(qǐng)輸入兩個(gè)整數(shù),按回車確定); x = Convert.ToInt32(Console.ReadLine(); y = Convert.ToInt32(Console.ReadLine(); Sum mysum = new Sum(); sum = mysum.add(x, y); Console.WriteLine(0+1=2, x, y, sum); Console.ReadLine(); public class Sum public int

16、add(int a, int b) return a + b; ,方法的重載,方法重載是面向?qū)ο蟪绦蛟O(shè)計(jì)的特征,是編譯多態(tài)性的表現(xiàn)形式,是一種簡(jiǎn)單的多態(tài)性 方法重載能使程序的設(shè)計(jì)更簡(jiǎn)捷,程序的可讀性更強(qiáng)。具體表現(xiàn)在方法重載可以使多個(gè)具有相同功能但參數(shù)不同的方法共享一個(gè)方法名。重載后的方法被調(diào)用時(shí),可根據(jù)方法的參數(shù)的個(gè)數(shù)或參數(shù)的類型的不同來區(qū)分應(yīng)該調(diào)用哪一個(gè)方法。,案例,【例4-10】相減運(yùn)算方法重載。 using System; namespace x4._._ class Program static void Main(string args) int x1, y1; int sub1;

17、double x2, y2; double sub2; double x3; int y3; double sub3; student st = new student(); st.Name = 張三; Console.WriteLine(我叫0,我是個(gè)學(xué)生,我會(huì)減法運(yùn)算,請(qǐng)給我兩個(gè)整數(shù):,st.Name);,案例,x1 = Convert.ToInt32(Console.ReadLine(); y1 = Convert.ToInt32(Console.ReadLine(); sub1 = st.sub(x1, y1);/調(diào)用第一個(gè)sub方法 Console.WriteLine(0-1=2,x

18、1,y1,sub1); Console.WriteLine(請(qǐng)給我兩個(gè)實(shí)數(shù)); x2 = Convert.ToDouble(Console.ReadLine(); y2 = Convert.ToDouble(Console.ReadLine(); sub2 = st.sub(x2, y2);/調(diào)用第二個(gè)sub方法 Console.WriteLine(0-1=2, x2, y2, sub2); Console.WriteLine(請(qǐng)給我一個(gè)實(shí)數(shù)和一個(gè)整數(shù)); x3 = Convert.ToDouble(Console.ReadLine(); y3 = Convert.ToInt32(Consol

19、e.ReadLine(); sub3 = st.sub(x3, y3);/調(diào)用第三個(gè)sub方法 Console.WriteLine(0-1=2, x3, y3, sub3); Console.ReadLine(); ,案例,public class student private string name; public string Name get return name; set name = value; public int sub(int x, int y) return x - y; public double sub(double x, double y) return x -

20、y; public double sub(double x, int y) return x - y; ,屬性,屬性是對(duì)字段的擴(kuò)展,它通過屬性訪問函數(shù)來控制對(duì)字段的訪問。屬性訪問函數(shù)包括get訪問函數(shù)和set訪問函數(shù),分別用于對(duì)字段的讀取和修改。,【例4-11】例如在student類中可以使用Name屬性來封裝對(duì)私有字段name的訪問: using System; namespace lou class Program static void Main(string args) student st=new student (); st.Name=lou; Console.WriteLine

21、(st.Name ); public class student private string name; public string Name get return name; set name=value; ,【例4-12】看下面的程序: namespace lou class Program static void Main(string args) Console.WriteLine(請(qǐng)輸入姓名:); student st = new student(Console.ReadLine(); Console.WriteLine(請(qǐng)輸入出生日期(yyyy-mm-dd):); st.Birt

22、hday = DateTime.Parse(Console.ReadLine(); Console.WriteLine(您的年齡為:0, st.Age); ,public class student private string name; private DateTime birthday; public student() public student(string namein) name = namein; ,public string Name get return name; set name=value; public string Birthday get return bir

23、thday; set birthday=value; public string Age get return DateTime.Now.Year - birthday.Year; ,學(xué)習(xí)任務(wù),學(xué)習(xí)任務(wù)4.2教師類設(shè)計(jì),繼承,繼承指一個(gè)新定義的類通過另一個(gè)類得到,在擁有了另一個(gè)類的所有特征的基礎(chǔ)上,加入新類特有的特征的一種定義類的方式。,【例4-13】繼承反例 /程序清單person.cs using System; using System.Collections.Generic; using System.Text; namespace _4._7._1 public class pers

24、on private string name; private string sex; private string province; private string city; public person(string namein,string sexin,string provincein,string cityin) name = namein; sex = sexin; province = provincein; city = cityin; public void show() Console.WriteLine(來自01的某23,province,city,sex,name);

25、 ,/程序清單teacher.cs using System; using System.Collections.Generic; using System.Text; namespace _4._7._1 public class teacher private string name; private string sex; private string province; private string city; private string teach; public teacher(string namein, string sexin, string provincein, str

26、ing cityin,string teachin) name = namein; sex = sexin; province = provincein; city = cityin; teach = teachin; public void show() Console.WriteLine(來自01的某23,教4, province, city, sex, name,teach); ,/程序清單Program.cs using System; using System.Collections.Generic; using System.Text; namespace _4._7._1 cla

27、ss Program static void Main(string args) person p1 = new person(張三, 男, 浙江, 寧波); p1.show(); teacher t1 = new teacher(張帥, 男, 浙江, 寧波,計(jì)算機(jī)); t1.show(); Console.ReadLine(); ,類繼承的實(shí)現(xiàn),類的繼承定義格式: class:, C#用“:”引導(dǎo)繼承列表; C#只支持類的單繼承; C#對(duì)接口允許多繼承; 如果有繼承的類,基類須寫在最前面。,【例4-14】person.cs和teacher.cs文件中的person類和teacher類可以作如

28、下修改。 /程序清單person.cs using System; using System.Collections.Generic; using System.Text; namespace _4._7._1 public class person protected string name; protected string sex; protected string province; protected string city; public person() public person(string namein, string sexin, string provincein, s

29、tring cityin) name = namein; sex = sexin; province = provincein; city = cityin; public void show() Console.WriteLine(來自01的某23, province, city, sex, name); ,/程序清單teacher.cs using System; using System.Collections.Generic; using System.Text; namespace _4._7._1 public class teacher:person private string

30、 teach; public teacher(string namein, string sexin, string provincein, string cityin, string teachin) name = namein; sex = sexin; province = provincein; city = cityin; teach = teachin; public void show() Console.WriteLine(來自01的某23,教4, province, city, sex, name, teach); ,/程序清單Program.cs using System;

31、 using System.Collections.Generic; using System.Text; namespace _4._7._1 class Program static void Main(string args) person p1 = new person(張三, 男, 浙江, 寧波); p1.show(); teacher t1 = new teacher(張帥, 男, 浙江, 寧波,計(jì)算機(jī)); t1.show(); Console.ReadLine(); ,學(xué)習(xí)任務(wù),學(xué)習(xí)任務(wù)4.3學(xué)校人員類設(shè)計(jì),多態(tài)性,面向?qū)ο蟮亩鄳B(tài)性是指同一操作收到不同的消息(信息)或作用于不同的

32、對(duì)象,可以有不同的解釋,產(chǎn)生不同的執(zhí)行結(jié)果,這就是多態(tài)性。 多態(tài)性分為兩種,一種是編譯時(shí)多態(tài)性,一種是運(yùn)行時(shí)多態(tài)性。,虛方法,派生類很少一成不變地去繼承基類中的所有成員。一種情況是:派生類中的方法成員可以隱藏基類中同名的方法成員,這時(shí)通過關(guān)鍵字new對(duì)成員加以修飾;另一種更為普遍和靈活的情況是:將基類的方法成員定義為虛擬方法,而在派生類中對(duì)虛擬方法進(jìn)行重載。后者的優(yōu)勢(shì)在于它可以實(shí)現(xiàn)運(yùn)行時(shí)的多態(tài)性,即程序可以在運(yùn)行過程中確定應(yīng)該調(diào)用哪一個(gè)方法成員。 基類的虛擬方法通過關(guān)鍵字virtual進(jìn)行定義。,抽象類和抽象方法,/抽象方法 public abstract void show(); 包含抽象方法的類必須是抽象類,它也需要使用關(guān)鍵字abstract加以定義,如: public abstract class person /類的成員定義. ,學(xué)習(xí)任務(wù),學(xué)習(xí)任務(wù)4.4教師職稱類設(shè)計(jì),小結(jié),類與對(duì)象,作業(yè),1、完成學(xué)習(xí)任務(wù)一和學(xué)習(xí)任務(wù)二 2、完成第4章后面的實(shí)訓(xùn),Thank You !,

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!