版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
C#編程基礎(chǔ)講師:蘇坤QQ:35651998/anders_sukunC#編程基礎(chǔ)講師:蘇坤1概念:.net與c#(多語言).net/dotnet:一般指.NetFramework框架.一種平臺,一種技術(shù).C#(sharp):一種編程語言,可以開發(fā)基于.net平臺的應(yīng)用.(*)Java即是一種技術(shù)又是一種編程語言概念:.net與c#(多語言).net/dotnet:.net都能干什么桌面應(yīng)用程序 WinformInternet應(yīng)用程序ASP.NET手機開發(fā)wp7C/S:客戶機(Client)/服務(wù)器模式(Server)qqB/S:瀏覽器(Browser)/服務(wù)器模式(Server).net都能干什么桌面應(yīng)用程序 Winform.Net開發(fā)學(xué)習(xí)路線(*).Net開發(fā)學(xué)習(xí)路線(*)IDE介紹IDE(IntegratedDevelopment,集成開發(fā)環(huán)境)VisualStudio2010簡介:一套完整的開發(fā)工具集用于開發(fā)桌面應(yīng)用程序、ASP.NETWeb應(yīng)用程序、XML、WebService、移動應(yīng)用程序為快速開發(fā)提供強大支持IDE介紹IDE(IntegratedDevelopmenIDE及.Net的版本(*了解).Net1.1.Net2.0.Net3.x.Net4.xVisualStudio2003VisualStudio2005VisualStudio2008VisualStudio2010向下兼容.Net1.0VisualStudio2002IDE及.Net的版本(*了解).Net1.1.NetMSDN介紹MSDN的全稱是MicrosoftDeveloperNetwork。這是微軟公司面向軟件開發(fā)者的一種信息服務(wù)。MSDN實際上是一個以VisualStudio和Windows平臺為核心整合的開發(fā)虛擬社區(qū),包括技術(shù)文檔、在線電子教程、網(wǎng)絡(luò)虛擬實驗室、微軟產(chǎn)品下載(幾乎全部的操作系統(tǒng)、服務(wù)器程序、應(yīng)用程序和開發(fā)程序的正式版和測試版,還包括各種驅(qū)動程序開發(fā)包和軟件開發(fā)包)、Blog、BBS、MSDNWebCast、與CMP合作的MSDN雜志等等一系列服務(wù)。點擊查看msdn百科MSDN介紹MSDN的全稱是MicrosoftDeveVisualStudio介紹1安裝setup.exeinstall.exeautorun啟動創(chuàng)建解決方案/項目認識vs的各部分(菜單/快捷鍵/工具欄/窗口)VisualStudio各個視圖的打開、開發(fā)環(huán)境的重置C#源文件(類)一般以cs結(jié)尾C#程序的入口是Main函數(shù),在Main中寫代碼就行,暫時不用關(guān)心其他部分是什么意思VisualStudio介紹1安裝setup.exeVisualStudio介紹2保存項目,打開項目.交作業(yè)交哪些文件.作業(yè)的命名格式:蘇坤512.rar先學(xué)習(xí)兩句話:Console.WriteLine("Hello,World!");Console.ReadKey();每一句話以;號結(jié)束生成程序運行一下生成的.exe程序設(shè)置字體及行號顯示創(chuàng)建多個項目啟動項目設(shè)置項目的加載與卸載VisualStudio介紹2保存項目,打開項目.交作c#中的注釋符注釋方式://單行注釋/**/多行注釋//////文檔注釋///c#中的注釋符注釋方式:小練習(xí)練習(xí):編程輸出以下內(nèi)容
自己練習(xí)一下三種注釋符:第一種:單行注釋以//開頭,后面的就是注釋內(nèi)容第二種:多行注釋以/*開頭*/結(jié)束之間的是注釋內(nèi)容第三種:文檔注釋在方法或類的上一行輸入///就會產(chǎn)生小練習(xí)練習(xí):編程輸出以下內(nèi)容計算機使用基本技巧常用鍵介紹:Home/End/PageUp/PageDown/Shift/c+h/c+end一段文字的刪除.(del/backspace)ctrl+actrl+kf學(xué)會使用復(fù)制粘貼。Ctrl+c/v/x對話框中的使用插入、覆蓋模式的困惑。學(xué)會使用Ctrl+Z撤銷上一次操作;,()""等的的全角半角問題。出錯:意外的字符""VS窗口的拖拽遇到異常、報錯不要慌。目前經(jīng)常用到的快捷鍵:F5F6#region和#endregion計算機使用基本技巧常用鍵介紹:Home/End/PageU操作系統(tǒng)一般Windows公共語言運行庫(CLR)VC++.NETC#VB.NETVJ#….NETFramework
類庫(FCL)軟件系統(tǒng)依賴關(guān)系(*)操作系統(tǒng)一般Windows公共語言運行庫(CLR)VC北京傳智播客教育
.Net簡介(*了解).NetFramework類庫CLR公共語言運行時操作系統(tǒng)應(yīng)用程序應(yīng)用程序操作系統(tǒng)平臺無關(guān):CLR、.NetFramework進行了隔離。Windows、Linux(Mono)、智能手機、Web。學(xué)會.Net什么都能開發(fā),知識移植。更安全、更省心:代碼托管、罕用指針、垃圾回收。語言無關(guān):VB.Net、C#都調(diào)用同樣的類、同樣的方法,VB.Net寫的類C#也可以調(diào)用。模糊了語言的差別北京傳智播客教育
.Net簡介.net是如何實現(xiàn)語言無關(guān)性的(*)C#VB.NET代碼被執(zhí)行MSILCLR通用語法,計算機不用了解CLR執(zhí)行ILC#編譯器VB.NET編譯器.net是如何實現(xiàn)語言無關(guān)性的(*)C#VB.NET代碼基本框架類Web窗體WebServiceWinFormsADO.NET和
XML類.NETFramework.NETFramework類庫ASP.NETCLSCLRCTS基本框架類Web窗體WebServiceWinForm變量1計算機使用內(nèi)存來存儲數(shù)據(jù).我們在計算機中存儲數(shù)據(jù)和客人住旅館很類似.我們住旅館一般要做以下事情:1、開房間(單人間、雙人間、總統(tǒng)套間)2、入住變量1計算機使用內(nèi)存來存儲數(shù)據(jù).我們住旅館一般要做以下事情:變量2要在計算機中存一個數(shù)字1000,需要兩句話.inta;//開一個能放數(shù)字的空間a=1000;//把1000放進去.聲明變量的語法格式:數(shù)據(jù)類型變量名;賦值:變量名=值;可以a=3.14;嗎????變量2要在計算機中存一個數(shù)字1000,需要兩句話.變量3計算機中各式各樣的數(shù)據(jù)33.14100thequickbrownfoxjumpsoverthelazydog張三李四True2011-3-6char非數(shù)值數(shù)值整型……decimaldouble非整型String數(shù)據(jù)類型int*更多的數(shù)據(jù)類型變量3計算機中各式各樣的數(shù)據(jù)char非數(shù)值數(shù)值整型……decC#中的數(shù)據(jù)int:35100-10double:3.1410.5-3.14-5.0char:‘A’‘b’‘a(chǎn)’''string:“Zhangsan”“李四”“計算機”“HelloWorld”"a"decimal:存儲金錢5.62decimald=5.55m;decimald1=5;
C#中的數(shù)據(jù)int:35變量的聲明方法A)數(shù)據(jù)類型變量名稱;intage;變量的賦值age=18;B)定義時賦值,數(shù)據(jù)類型變量名稱=值;intage=18;C)如果一次要聲明多個相同類型的變量可用逗號分隔.stringzsName,lsName;變量一定要先聲明,再賦值,才能使用.練習(xí):定義一個變量pi,并把3.14存進去,然后顯示在屏幕上?想一想下面代碼的輸出結(jié)果是?inti=10;Console.WriteLine("i");變量的聲明方法A)數(shù)據(jù)類型變量名稱;變量的命名命名規(guī)則:1必須以“字母”_或@符號開頭.--不要以數(shù)字開頭2后面可以跟任意“字母”、數(shù)字、下劃線.注意:1)你起的變量名不要與c#系統(tǒng)中的關(guān)鍵字重復(fù).2)在c#中,大小寫是敏感的.3)同一個變量名不允許重復(fù)定義(先這么認為,不嚴謹)定義變量時,變量名要有意義
C#變量命名編碼規(guī)范——Camel命名法:首個單詞的首字母小寫,其余單詞的首字母大寫。Pascal命名規(guī)范:每一個單詞第一字母都大寫如果使用到英文單詞的縮寫,全部用大寫!變量的命名命名規(guī)則:下面的變量名稱哪些正確?principalcost_pricemarks_3$lastnamecity123ratediscount%zipcodeCityint下面的變量名稱哪些正確?principalcost_pric賦值運算符和賦值表達式賦值運算符:=a=a+1;這里的=號是賦值運算符,不是數(shù)學(xué)義意上的相等.變量可以重復(fù)賦值,一旦給一個變量賦了新值,那么變量中的老值就不復(fù)存在了.右邊代碼的輸出結(jié)果:賦值運算符和賦值表達式賦值運算符:=演示:定義一個變量存儲客戶的姓名,然后在屏幕上顯示:”你好,某某”.某某代表客戶的姓名+號可以連接兩個字符串,這里的“+”號表示連接的意思演示:定義一個變量存儲客戶的姓名,然后在屏幕上顯示:”你好,練習(xí):1.定義3個變量,分別存儲一個人的姓名(張三),年齡(28),和工資(7600.33).然后在屏幕上顯示,我叫XX,今天X歲了,我的工資是XX元.2.定義一個變量存儲一個人的年齡(18),然后發(fā)現(xiàn)這個人的年齡不是18歲,要把這個人的年齡修改成20歲(本題體會變量可以被重復(fù)多次賦值),最后把這個人的年齡輸出到屏幕上?練習(xí):1.定義3個變量,分別存儲一個人的姓名(張三),年齡變量練習(xí)3.定義四個變量,分別存儲一個人的姓名、性別、年齡、電話。然后打印在屏幕上(我叫X,我今年X歲了,我是X生,我的電話是XX)4.在屏幕上輸出:我的手機是philips型號:998價格:1500元重量:0.3kg請定義變量存存儲上面的值,并顯示在屏幕上.5.定義兩個變量如:ab分別賦值為10和5,寫程序交換兩個變量的值變量練習(xí)3.定義四個變量,分別存儲一個人的姓名、性別、年齡、字符串類型再學(xué)習(xí)一句話:Console.ReadLine();用于接收用戶的輸入.要定義一個字符串變量來接收變存儲用戶輸入的值.1.練習(xí):問用戶喜歡吃什么水果,假如用戶輸入”蘋果”,則顯示”哈哈,這么巧呀,我也喜歡吃蘋果”2.練習(xí):請用戶輸入姓名,然后在屏幕上顯示“你好,XXX".XXX為用戶剛剛輸入的姓名.字符串類型再學(xué)習(xí)一句話:Console.ReadLine()字符串中的轉(zhuǎn)義能在字符串中輸出雙引號嗎?在屏幕上顯示:c#中的字符串用””號包含起來\+一個字符,組成轉(zhuǎn)譯字符.一般用于表示特殊符號@字在字符串前面表示不轉(zhuǎn)譯常用的轉(zhuǎn)譯符:\n\b\t\\\”字符串中的轉(zhuǎn)義能在字符串中輸出雙引號嗎?算術(shù)運算符及算術(shù)表達式算術(shù)運算符:+-*/%(取余數(shù)取模)算術(shù)表達式:由算術(shù)運算符連接起來的式子.如:1+1a-b(變量ab前面已聲明并賦初值)演示:某學(xué)生三門課成績?yōu)?語文:90數(shù)學(xué):80英語:91,編程求總分和平均分.優(yōu)先級:先乘除,后加減,有括號先算括號里的,相同級別的從左至右運算5+3*2小括號可以無限制的套用,但一定要成對出現(xiàn).算術(shù)運算符及算術(shù)表達式算術(shù)運算符:+-*/%(取練習(xí)練習(xí)1:定義兩個數(shù)分別為10和20,打印出兩個數(shù)的和。練習(xí)2:計算半徑為5的圓的面積并打印出來.練習(xí)3:某商店T恤的價格為35元/件,褲子的價格為120元/條.小明在該店買了3件T恤和2條褲子,請計算并顯示小明應(yīng)該付多少錢?練習(xí)練習(xí)1:定義兩個數(shù)分別為10和20,打印出兩個數(shù)的和。算術(shù)運算符-自動類型轉(zhuǎn)換下面代碼的輸出結(jié)果是什么?inta=10,b=3;intmod=a%b;doublequo=a/b;Console.WriteLine(mod);Console.WriteLine(quo);算術(shù)運算符-自動類型轉(zhuǎn)換下面代碼的輸出結(jié)果是什么?類型自動轉(zhuǎn)換規(guī)則參與運算(算術(shù)運算和賦值運算)的操作數(shù)和結(jié)果類型必須一致.當不一致時,滿足下面條件時,系統(tǒng)自動完成類型轉(zhuǎn)換兩種類型兼容例如:int和double兼容目標類型大于源類型例如:double>int對于表達式如果一個操作數(shù)為double型,則整個表達式可提升為double型比如前面打8.8折的練習(xí)題.求10/3求余數(shù)要想得到3.333的處理.類型自動轉(zhuǎn)換規(guī)則參與運算(算術(shù)運算和賦值運算)的操作數(shù)和結(jié)果強制類型轉(zhuǎn)換如上題中打完8.8折后出現(xiàn)小數(shù),商店為了結(jié)算方便,只收用戶整數(shù)部分的錢,如本應(yīng)收用戶303.6,現(xiàn)在只收用戶303元,應(yīng)該如何做?語法:(數(shù)據(jù)類型名)待轉(zhuǎn)換的值;如:
intb=(int)3.14;強制類型轉(zhuǎn)換,數(shù)據(jù)類型一定要相兼容下面的寫法對嗎?intnumber=(int)”3.14”;強制類型轉(zhuǎn)換如上題中打完8.8折后出現(xiàn)小數(shù),商店為了結(jié)算方便類型轉(zhuǎn)型問題:讓用戶輸入他的語文和數(shù)學(xué)成績,計算他的總成績并顯示出來?Convert不再僅是內(nèi)存級別的轉(zhuǎn)換,而是考慮數(shù)據(jù)意義的轉(zhuǎn)換。Convert是一個加工、改造的過程通過Convert.ToInt32(能轉(zhuǎn)換成int類型的數(shù)據(jù))來把其他類型數(shù)據(jù)轉(zhuǎn)換成int類型練習(xí):讓用戶輸入姓名語文數(shù)學(xué)英語三門課的成績,然后給用戶顯示:XX,你的總成績?yōu)閄X分,平均成績?yōu)閄X分。類型轉(zhuǎn)型問題:讓用戶輸入他的語文和數(shù)學(xué)成績,計算他的總成績并練習(xí)練習(xí),編程實現(xiàn)計算幾天(如46天)是幾周零幾天.練習(xí):編程實現(xiàn)107653秒是幾天幾小時幾分鐘幾秒?修改上面的題目,讓用戶輸入.練習(xí)練習(xí),編程實現(xiàn)計算幾天(如46天)是幾周零幾天.算術(shù)運算符和復(fù)合賦值運算符++自加一有前加和后加--自減一有前減和后減一元運算符++/--比二元的+-優(yōu)先級高+=-=*=/=%=算術(shù)運算符和復(fù)合賦值運算符++自加一有前加和后練習(xí):1請說出上面程序執(zhí)行完成后,var1中的值?上題中如果改成:Var1=++var2*var3--;Var1=?練習(xí):1請說出上面程序執(zhí)行完成后,var1中的值?關(guān)系運算符(比較運算)>,<==,!=>=,<=大象的重量(1500)>老鼠的重量(1)兔子的壽命(3)>烏龜?shù)膲勖?1000)39<18我的年齡(20)==你的年齡(20)比大比小的結(jié)果是什么?關(guān)系運算符(比較運算)>,<什么是bool類型(布爾)在計算機中,我們用什么數(shù)據(jù)類型來表示一句話的對錯?一個條件的成立與不成立?布爾(bool)類型:bool值只有兩個真:ture假:false關(guān)系運算的結(jié)果是布爾類型的如在計算機中描述張三(20歲)比李四(18)小,這句話的結(jié)果.練習(xí)看看上一頁ppt中四句話的結(jié)果什么是bool類型(布爾)在計算機中,我們用什么數(shù)據(jù)類型來表邏輯運算符&&||!表達式1&&表達式2:當表達式1、2全為ture時,其表達式的結(jié)果為true表達式1||表達式2:當表達式1、2有一個為ture時,其結(jié)果為ture!表達式:如果表達式的結(jié)果為true,則取反后為false,反之為true優(yōu)先級邏輯運算符&&||!練習(xí):讓用戶輸入張三的語文和數(shù)學(xué)成績,輸出以下判斷是否正確,正確輸出True,錯誤輸出False1)張三的語文和數(shù)學(xué)成績都大于90分2)語文和數(shù)學(xué)有一門是大于90分的練習(xí):讓用戶輸入張三的語文和數(shù)學(xué)成績,輸出以下判斷是否正確,練習(xí):寫下判斷閏年的表達式,設(shè)待判斷的年份變量為year.潤年的判定(符合下面兩個條件之一):年份能夠被400整除.(2000)年份能夠被4整除但不能被100整除.(2008)讓用戶輸入一個年份,如果是潤年,則輸出true,如果不是,則輸出false.2100/1600/1800/2009年是閏年嗎?練習(xí):寫下判斷閏年的表達式,設(shè)待判斷的年份變量為year.if結(jié)構(gòu)編程實現(xiàn):如果張三的考試成績大于90分,那么爸爸獎勵他100元錢.使用if結(jié)構(gòu)可以實現(xiàn)上面的問題if結(jié)構(gòu)的基本語法:if(條件) if(條件)語句; {語句1;語句2;} 用一對大括號來組成語句塊if結(jié)構(gòu)編程實現(xiàn):如果張三的考試成績大于90分,那么爸爸獎勵練習(xí):讓用戶輸入年齡,如果輸入的年齡大于18(含)歲,則給用戶顯示你已成年.如果張三的語文成績大于90并且音樂成績大于80語文成績等于100并且音樂成績大于70,則獎勵100元.讓用戶輸入用戶名和密碼,如果用戶名為admin,密碼為mypass,則提示登錄成功.練習(xí):讓用戶輸入年齡,如果輸入的年齡大于18(含)歲,則給用if-else如果張三的考試成績大于90(含)分,那么爸爸獎勵他100元錢,否則的話,爸爸就讓張三寫學(xué)習(xí)總結(jié).使用if能否實現(xiàn).更好的實現(xiàn),if-else語法:if(條件){語句1;}else{語句2;}if-else如果張三的考試成績大于90(含)分,那么爸爸獎練習(xí):1、蓋茨買了一筐雞蛋,如果壞蛋少于5個,他就吃掉,否則他就去退貨2、要求用戶輸入兩個數(shù)a、b,如果a能被b整除或者a加b大于100,則輸出a的值,否則輸出b的值3、對學(xué)員的結(jié)業(yè)考試成績評測(考慮用if好還是用if-else好) 成績>=90:A90>成績>=80:B 80>成績>=70:C70>成績>=60:D 成績<60:E練習(xí):1、蓋茨買了一筐雞蛋,如果壞蛋少于5個,他就吃掉,否則if-elseif對學(xué)員的結(jié)業(yè)考試成績評測 成績>=90:A90>成績>=80:B 80>成績>=70:C70>成績>=60:D 成績<60:E用if-else實現(xiàn)?更好的方法:if-elseifif-elseif對學(xué)員的結(jié)業(yè)考試成績評測if-elseif流程圖if-elseif流程圖課上練習(xí)學(xué)編程不是看書,不是聽老師講,而是自己動手寫。練習(xí)1:提示用戶輸入密碼,如果密碼是“888888”則提示正確,否則要求再輸入一次,如果密碼是“888888”則提示正確,否則提示錯誤,程序結(jié)束。練習(xí)2:提示用戶輸入用戶名,然后再提示輸入密碼,如果用戶名是“admin”并且密碼是“888888”,則提示正確,否則,如果用戶名不是admin還提示用戶用戶名不存在,如果用戶名是admin則提示密碼錯誤.練習(xí)3:提示用戶輸入年齡,如果大于等于18,則告知用戶可以查看,如果小于10歲,則告知不允許查看,如果大于等于10歲并且小于18,則提示用戶是否繼續(xù)查看(yes、no),如果輸入的是yes則提示用戶請查看,否則提示"退出,你放棄查看"。課上練習(xí)學(xué)編程不是看書,不是聽老師講,而是自己動手寫。為什么使用switch李四的年終工作評定,如果定為A級,則工資漲500元,如果定為B級,則工資漲200元,如果定為C級,工資不變,如果定為D級工資降200元,如果定為E級工資降500元.設(shè)李四的原工資為5000,請用戶輸入李四的評級,然后顯示李四來年的工資.為什么使用switch李四的年終工作評定,如果定為A級,則工switch-caseswitch-case語法:switch(表達式/變量){case值1:語句塊1;break;case值2:語句塊2;break;default:語句塊3;break;}switch-caseswitch-case語法:if-elseif與switch的比較相同點:都可以實現(xiàn)多分支結(jié)構(gòu)不同點:switch:一般只能用于等值比較if-elseif:可以處理范圍if-elseif與switch的比較相同點:都可以實現(xiàn)多練習(xí):說出已學(xué)過的數(shù)據(jù)類型有哪些?舉例說明已學(xué)過的運算符有哪些?請用戶輸年份,輸入月份,輸出該月的天數(shù).對學(xué)員的結(jié)業(yè)考試成績評測(改成用Switch來做) 成績>=90:A90>成績>=80:B 80>成績>=70:C70>成績>=60:D 成績<60:E練習(xí):說出已學(xué)過的數(shù)據(jù)類型有哪些?循環(huán)結(jié)構(gòu)實際生活中的循環(huán):打印100份試卷10000米長跑車輪李四這次考試又粗心了,爸爸讓他寫1000遍"下次考試一定要細心".如何編程實現(xiàn)上面的問題?Console.WriteLine("下次考試一定要細心");Console.WriteLine("下次考試一定要細心");Console.WriteLine("下次考試一定要細心");循環(huán)結(jié)構(gòu)實際生活中的循環(huán):打印100份試卷10000米長使用循環(huán)解決聰明的解決方法:inti=0;while(i<1000){Console.WriteLine("下次考試一定要細心");i++;}使用循環(huán)解決聰明的解決方法:while語法:while(循環(huán)條件){循環(huán)體;}循環(huán)操作循環(huán)條件真假特點:先判斷,再執(zhí)行while語法:循環(huán)操作循環(huán)條件真假特點:先判斷,再執(zhí)行練習(xí):打印100次"歡迎您來傳智播客學(xué)習(xí)"輸入班級人數(shù),然后依次輸入學(xué)員成績,計算班級學(xué)員的平均成績和總成績老師問學(xué)生,這道題你會做了嗎?如果學(xué)生答"會了(y)",則可以放學(xué).如果學(xué)生不會做(n),則老師再講一遍,再問學(xué)生是否會做了直到學(xué)生會為止,才可以放學(xué).直到學(xué)生會或老師給他講了10遍還不會,都要放學(xué)2006年培養(yǎng)學(xué)員80000人,每年增長25%,請問按此增長速度,到哪一年培訓(xùn)學(xué)員人數(shù)將達到20萬人?練習(xí):打印100次"歡迎您來傳智播客學(xué)習(xí)"do-while明天小蘭就要登臺演出了,老師說再把明天的舞蹈表演一遍,如果滿意,小蘭就可以回家了.否則就需要再練習(xí)一遍,直到老師滿意為止.whileordo-while?do-while為先執(zhí)行,再判斷do{循環(huán)體;}while(條件);do-while明天小蘭就要登臺演出了,老師說再把明天的舞蹈練習(xí):練習(xí)1:計算1到100之間整數(shù)的和;練習(xí)2:要求用戶輸入用戶名和密碼,只要不是admin、888888就一直提示用戶名或密碼錯誤,請重新輸入。練習(xí)3:不斷要求用戶輸入學(xué)生姓名,輸入q結(jié)束.練習(xí)4:不斷要求用戶輸入一個數(shù)字,然后打印這個數(shù)字的二倍,當用戶輸入q的時候程序退出。練習(xí)5:不斷要求用戶輸入一個數(shù)字(假定用戶輸入的都是正整數(shù)),當用戶輸入end的時候顯示剛才輸入的數(shù)字中的最大值練習(xí)6:張三先唱一遍要表演的歌曲,老師覺得張三唱歌不過關(guān),就讓張三再唱一遍,老師滿意則張三可以下課,不然則需要再唱一遍,再問老師是否滿意...練習(xí):練習(xí)1:計算1到100之間整數(shù)的和;while與do-while區(qū)別通過練習(xí),希望大家已經(jīng)掌握這兩種循環(huán).語法不同初始值不滿足循環(huán)條件時:while循環(huán)一次都不執(zhí)行do-while循環(huán)會執(zhí)行一次while與do-while區(qū)別通過練習(xí),希望大家已經(jīng)掌握這程序調(diào)試設(shè)置斷點單步運行觀察變量程序調(diào)試設(shè)置斷點for連續(xù)輸出100次"我下次一定細心".比較用for和while,哪種更好?問題1:求1-100間的所有偶數(shù)和?問題2:找出100-999間的水仙花數(shù)?問題3:輸出九九乘法表(循環(huán)的嵌套)語法:for(表達式1;表達式2;表達式3){循環(huán)體;
};for連續(xù)輸出100次"我下次一定細心".練習(xí):練習(xí):Breakbreak用于循環(huán)中,退出當前循環(huán).Breakbreak用于循環(huán)中,退出當前循環(huán).練習(xí):練習(xí)1:循環(huán)錄入5個人的年齡并計算平均年齡,如果錄入的數(shù)據(jù)出現(xiàn)負數(shù)或大于100的數(shù),立即停止輸入并報錯.練習(xí)2:在while中用break實現(xiàn)要求用戶一直輸入用戶名和密碼,只要不是admin、888888就一直提示要求重新輸入,如果正確則提登錄成功.1~100之間的整數(shù)相加,得到累加值大于20的當前數(shù)練習(xí):練習(xí)1:循環(huán)錄入5個人的年齡并計算平均年齡,如果錄入的continue立即結(jié)果本次循環(huán),判斷循環(huán)條件,如果成立,則進入下一次循環(huán),否則退出循環(huán).舉例:運動員跑步喝水的例子continue立即結(jié)果本次循環(huán),判斷循環(huán)條件,如果成立,則練習(xí)練習(xí)1:用whilecontinue實現(xiàn)計算1到100(含)之間的除了能被7整除之外所有整數(shù)的和。練習(xí)練習(xí)1:用whilecontinue實現(xiàn)計算1到10小節(jié)順序結(jié)構(gòu):語句順序執(zhí)行分支結(jié)構(gòu):語句在滿足條件下執(zhí)行if,if-else,if-elseif,switch-case表1?表2:表3(三元)
循環(huán)結(jié)構(gòu):語句在滿足條件下循環(huán)執(zhí)行多次while,do-while,for跳轉(zhuǎn)語句break,continue,goto小節(jié)順序結(jié)構(gòu):語句順序執(zhí)行枚舉\常量\結(jié)構(gòu)確定數(shù)量、確定值的幾個取值:東西南北、男女、上中下。enumGender{male,female}enumQQStatus{online,offline,hidden}枚舉的用法,QQStatusstatus=QQStatus.online;和用字符串比起來,用枚舉的好處就是限定了變量的取值范圍,程序處理起來更方便。const
類型常量名=常量值staticvoidMain(string[]args){
constintPI=3.14;
PI=3.20;}枚舉\常量\結(jié)構(gòu)確定數(shù)量、確定值的幾個取值:東西南北、男女、字符串與枚舉的轉(zhuǎn)換publicenumGender{
male, famale}//……Console.WriteLine("你的性別:{0}.",Gender.male.ToString());(Gender)(Enum.Parse(typeof(Gender),"male");每一個值都對應(yīng)一個數(shù)字典型的枚舉類型:MessageBox.Show的參數(shù)(后面會學(xué)到)字符串與枚舉的轉(zhuǎn)換publicenumGender(Ge結(jié)構(gòu)體為什么要使用結(jié)構(gòu),例如c#中ColorPoint都是結(jié)構(gòu)訪問修飾符struct
結(jié)構(gòu)名{
定義結(jié)構(gòu)成員}publicstructPerson{publicstringName;publicintAge;publicstringHobby;publicintPopularity;publicvoidSayHi(){//….}}結(jié)構(gòu)體為什么要使用結(jié)構(gòu),例如c#中ColorPoint都是練習(xí):1定義一個結(jié)構(gòu)叫MyColor,有三個成員,分別為red,green,blue聲明一個MyColor類型的變量,并對其成員賦值.使MyColor可以表示成一個紅色.2定義一個結(jié)構(gòu)類型Person,有三個成員,分別為姓名,性別,年齡聲明兩個Person類型的變量,分別表示張三男18歲/小蘭女16歲練習(xí):1定義一個結(jié)構(gòu)叫MyColor,有三個成員,分別為r數(shù)組一次語文測試后,老師讓班長統(tǒng)計每一個學(xué)生的成績并計算全班(全班共60人)的平均成績,然后把所有成績顯示出來.如何聲明變量?好的解決方法,使用數(shù)組.數(shù)組一次語文測試后,老師讓班長統(tǒng)計每一個學(xué)生的成績并計算全班數(shù)組保存多個值。幾乎任意類型都可以聲明數(shù)組。int[]nums={5,3,8}int[]nums=newint[3]int[]nums=newint[3]{5,3,8}//個數(shù)和聲明數(shù)必須一致int[]nums=newint[5]{5,3,8}//錯誤int[]nums=newint[]{5,3,8}//正確,可以省略數(shù)組個字使用索引器訪問指定編號位置的元素,訪問數(shù)組元素:nums[0]、nums[1]。索引從0開始。取到的元素的類型就是數(shù)組元素的類型。還可以對數(shù)組元素進行賦值數(shù)組的聲明數(shù)組的賦值與取值常見問題:求平均值,求最大值,求和,排序數(shù)組保存多個值。幾乎任意類型都可以聲明數(shù)組。int[]nu練習(xí):練習(xí)1:從一個整數(shù)數(shù)組中取出最大的整數(shù)練習(xí)2:計算一個整數(shù)數(shù)組的所有元素的和。練習(xí)3:將一個字符串數(shù)組輸出為|分割的形式,比如“梅西|卡卡|鄭大世”練習(xí)4:將一個整數(shù)數(shù)組的每一個元素進行如下的處理:如果元素是正數(shù)則將這個位置的元素的值加1,如果元素是負數(shù)則將這個位置的元素的值減1,如果元素是0,則不變。練習(xí)5:將一個字符串數(shù)組的元素的順序進行反轉(zhuǎn)。{“3”,“a”,“8”,“haha”}{“haha”,“8”,“a”,“3”}。第i個和第length-i-1個進行交換。 求平均值,求最大值,求和練習(xí):練習(xí)1:從一個整數(shù)數(shù)組中取出最大的整數(shù)try-catch的使用(簡單用法)try{有可能出現(xiàn)錯誤的代碼;}catch{如果try中的代碼出現(xiàn)異常,則進去catch中}try-catch的使用(簡單用法)try方法(函數(shù))介紹函數(shù)就是將一堆代碼進行重用的一種機制。函數(shù)就是一段代碼,這段代碼可能有輸入的值(參數(shù)),可能會返回值。一個函數(shù)就像一個專門做這件事的人,我們調(diào)用它來做一些事情,它可能需要我們提供一些數(shù)據(jù)給它,它執(zhí)行完成后可能會有一些執(zhí)行結(jié)果給我們。要求的數(shù)據(jù)就叫參數(shù),返回的執(zhí)行結(jié)果就是返回值。strings=Console.ReadLine()就是一個有返回結(jié)果的函數(shù);Console.WriteLine("hello")就是一個有執(zhí)行參數(shù)的函數(shù),只有告訴WriteLine被打印的數(shù)據(jù)它才知道如何打??;inti=Convert.ToInt32("22")則是一個既有參數(shù)又有返回值的函數(shù)。有了函數(shù)寫代碼就像拼積木,C#中的各種各樣的技術(shù)其實就是通過for、if等這些基礎(chǔ)的語法將不同的函數(shù)按照一定的邏輯組織起來。方法(函數(shù))介紹函數(shù)就是將一堆代碼進行重用的一種機制。函數(shù)就方法方法的定義:[訪問修飾符][static]返回值類型方法名(){方法體;}命名規(guī)則:方法名開頭大寫,參數(shù)名開頭小寫,參數(shù)名、變量名要有意義方法的調(diào)用,對于靜態(tài)方法,如果在同一個類中,直接寫名字調(diào)用就行了.return可以立即退出方法.方法方法的定義:常用的已經(jīng)學(xué)過的方法:Console.WriteLine();Console.Write();Console.ReadLine();Console.ReadKey();int.Parse(string);Convert.ToInt32(string);對于由static修飾的方法,使用:類名.方法名()調(diào)用.如果在類中調(diào)用自己的由static修飾的方法,可以省略類名.常用的已經(jīng)學(xué)過的方法:Console.WriteLine()變量的作用域(只講局部變量)閱讀下面的程序,說一下輸出結(jié)果是多少?變量的作用域(只講局部變量)閱讀下面的程序,說一下輸出結(jié)果是變量的作用域在方法中定義的變量稱為局部變量,其作用域從定義開始,到其所在的大括號結(jié)束為止.在一個方法中想要訪問另一個方法中的變量,怎么辦?兩種解決方法:參數(shù)和返回值舉例:寫一個方法,判斷一個年份是否是潤年.方法中的return語句導(dǎo)致函數(shù)立即返回。在返回值為void的函數(shù)中return,在返回值非void的函數(shù)中return值變量的作用域在方法中定義的變量稱為局部變量,其作用域從定義開練習(xí),自己寫一個方法1讀取輸入的整數(shù),定義成方法,多次調(diào)用(如果用戶輸入的是數(shù)字,則返回,否則提示用戶重新輸入)2還記得學(xué)循環(huán)時做的那道題嗎?只允許用戶輸入y或n,請改成方法3查找兩個整數(shù)中的最大值:intMax(inti1,inti2)4計算輸入數(shù)組的和:intSum(int[]values)練習(xí),自己寫一個方法1讀取輸入的整數(shù),定義成方法,多次調(diào)用思考:即然Console.WiteLine()是方法,那么為什么WiteLine的參數(shù)可以是字符串類型,也可以是數(shù)字類型,還可以是布爾類型char類型呢?為什么要有方法的重載?思考:即然Console.WiteLine()是方法,那么為函數(shù)重載(函數(shù)重名)函數(shù)的重名:staticvoidSayHello(stringname){Console.WriteLine("我是{0}",name);}staticvoidSayHello(stringname){Console.WriteLine("Iam{0}",name);}staticvoidSayHello(stringname){Console.WriteLine("我是{0}",name);}staticvoidSayHello(intage){Console.WriteLine("我的年齡{0}",age);}staticvoidSayHello(stringname){Console.WriteLine("我是{0}",name);}staticintSayHello(stringname){return10;}staticvoidSayHello(stringname){Console.WriteLine("我是{0}",name);}staticvoidSayHello(stringname,stringnickname){Console.WriteLine("我是{0},昵稱是{1}",name,nickname);}構(gòu)成重載的條件:參數(shù)類型不同或者參數(shù)個數(shù)不同(不嚴謹?shù)模c返回值無關(guān)。函數(shù)重載(函數(shù)重名)函數(shù)的重名:staticvoidSa思考:方法只能返回一個值,當需要返回多個值時怎么辦?例如:寫一個方法,計算一個int類型數(shù)組中每個元素的總和和最大值與最小值?思考:方法只能返回一個值,當需要返回多個值時怎么辦?方法的out參數(shù)和ref參數(shù)(*)函數(shù)參數(shù)默認是值傳遞的,也就是“復(fù)制一份”,例子:intage=20;IncAge(age);Console.WriteLine("age={0}",age);out則是內(nèi)部為外部變量賦值,out一般用在函數(shù)需要有多個返回值的場所。例:int.TryParse。方法的out參數(shù)和ref參數(shù)(*)函數(shù)參數(shù)默認是值傳遞的,也方法的練習(xí):重復(fù)讓用戶輸入一個數(shù),判斷該數(shù)是否是質(zhì)數(shù),輸入q結(jié)束?質(zhì)數(shù)的判斷用方法來實現(xiàn)將一個字符串數(shù)組輸出為|分割的形式,比如“梅西|卡卡|鄭大世”(用方法來實現(xiàn)此功能)用方法實現(xiàn)找出一個int類型數(shù)組中最大值和最小值寫一個方法,實現(xiàn)MyTryParse的功能方法的練習(xí):重復(fù)讓用戶輸入一個數(shù),判斷該數(shù)是否是質(zhì)數(shù),輸入q面向?qū)ο蟾拍钍澜缡怯墒裁唇M成的:化學(xué)家畫家程序員萬物皆對象試著描述楊老師和學(xué)生張三的特征和行為面向?qū)ο蟾拍钍澜缡怯墒裁唇M成的:屬性——對象具有的各種特征每個對象的每個屬性都擁有特定值例如:楊老師和張三的年齡不一樣.屬性:姓名,性別,年齡屬性的值:方法:行為,動作.執(zhí)行的操作.方法:楊老師的行為,上課.學(xué)生的行為,學(xué)習(xí)屬性——對象具有的各種特征練習(xí):說說教室里有哪些對象?這些對象有哪些屬性和方法?比如:電腦/燈/音箱等等一切皆對象練習(xí):說說教室里有哪些對象?這些對象有哪些屬性和方法?找出下列對象共性張三(一個學(xué)生)\楊老師\鄰居售貨員張阿姨\李四的爸爸\李四的媽媽門口停的奔馳S320汽車/老師開的QQ汽車/楊老師的解放牌大貨車類:類是模子,確定對象將會擁有的特征(屬性)和行為(方法)類是對象的類型人類解俊峰;inta;找出下列對象共性張三(一個學(xué)生)\楊老師\鄰居售貨員張阿姨類和對象的區(qū)別類是抽象的概念,僅僅是模板,比如說:“人”類對象是一個你能夠看得到、摸得著的具體實體"人"類都有:姓名\性別\年齡屬性,有說話的方法.張三是一個對象,他的姓名屬性的值:張三性別的屬性的值:男年齡屬性的值:20張三會說話對象可以叫做類的實例(Instance)類不占內(nèi)存,對象才占內(nèi)存.類和對象的區(qū)別類是抽象的概念,僅僅是模板,比如說:“人”類類的定義定的定義語法:[訪問修飾符]class類名{成員;}類中可以包含變量的定義、方法。請練習(xí)定義一個人類.人類分別用三個變量來表示姓名性別年齡,有一個打招呼的方法,有一個走路的方法.類的定義定的定義語法:類的實例化類的實例化,用關(guān)鍵字new語法:類實例名=new類();類的成員的訪問:實例名.屬性實例名.方法名();字段、方法、屬性(后面講)都可以叫做類的成員Member,它們都需要定義訪問級別。訪問級別的用處在于控制成員在哪些地方可以被訪問,這樣達到面向?qū)ο笾小胺庋b”的目的。訪問修飾符:publicprivate(internalprotected)類的實例化類的實例化,用關(guān)鍵字new屬性字段用public修飾的問題.屬性的定義.get;set;屬性是為了保護與之相對應(yīng)的字段的.保證對字段的讀取和賦值符合要求.屬性可分為:讀寫、只讀、只寫。允許外部訪問的變量一定要聲明為屬性。屬性字段用public修飾的問題.類的練習(xí):定義一個學(xué)生類,有六個屬性,分別為姓名、性別、年齡、語文、數(shù)學(xué)、英語成績。有2個方法:一個打招呼的方法:介紹自己叫XX,今年幾歲了。是男同學(xué)還是女同學(xué)。兩個計算自己總分數(shù)和平均分的方法。{顯示:我叫XX,這次考試總成績?yōu)閄分,平均成績?yōu)閄分}實化兩個對象并測試:張三男18三科成績?yōu)?909580小蘭女16三科成績?yōu)?9585100類的練習(xí):定義一個學(xué)生類,有六個屬性,分別為姓名、性別、年齡類的構(gòu)造方法構(gòu)造方法用來創(chuàng)建對象,并且可以在構(gòu)造函數(shù)中對對象進行初始化。構(gòu)造函數(shù)是用來創(chuàng)建對象的特殊方法,方法名和類名一樣,沒有返回值,連void都不用。構(gòu)造函數(shù)可以有參數(shù),new對象的時候傳遞函數(shù)參數(shù)即可如果不指定構(gòu)造函數(shù),則類有一個默認的無參構(gòu)造函數(shù)。如果指定了構(gòu)造函數(shù),則不再有默認的無參構(gòu)造函數(shù),如果需要無參構(gòu)造函數(shù),則需要自己來寫。構(gòu)造函數(shù)可以重載,也就是有多個參數(shù)不同的構(gòu)造函數(shù)。認識類圖類的構(gòu)造方法構(gòu)造方法用來創(chuàng)建對象,并且可以在構(gòu)造函數(shù)中對對象c#中的類圖和通用類圖-age:int-name:string+Name:string類名Student+SayHi():voidc#中的類圖和通用類圖-age:int類名Student+析夠函數(shù)(*)~不能在結(jié)構(gòu)中定義析構(gòu)函數(shù)。只能對類使用析構(gòu)函數(shù)。一個類只能有一個析構(gòu)函數(shù)。無法繼承或重載析構(gòu)函數(shù)。無法調(diào)用析構(gòu)函數(shù)。它們是被自動調(diào)用的。析構(gòu)函數(shù)既沒有修飾符,也沒有參數(shù)。析夠函數(shù)(*)~不能在結(jié)構(gòu)中定義析構(gòu)函數(shù)。只能對類使用練習(xí)1給前面寫的學(xué)生類添加構(gòu)造方法.使在實例化學(xué)生類的時候可以通過構(gòu)造方法對姓名性別年齡語數(shù)英等屬性賦值,也可以只對姓名和性別賦值.年齡默認為18歲,語數(shù)英成績默認為0分.練習(xí)1給前面寫的學(xué)生類添加構(gòu)造方法.使在實例化學(xué)生類的時候可練習(xí)2:寫一個Ticket類,有一個距離屬性(本屬性只讀,在構(gòu)造方法中賦值),不能為負數(shù),有一個價格屬性,價格屬性只讀,并且根據(jù)距離計算價格(1元/公里):0-100公里票價不打折101-200公里總額打9.5折201-300公里總額打9折300公里以上總額打8折有一個方法,可以顯示這張票的信息.測試上面的類.練習(xí)2:寫一個Ticket類,有一個距離屬性(本屬性只讀,在臨時加(根據(jù)學(xué)生問題添加)參數(shù)中使用out和ref的區(qū)別數(shù)組做為參數(shù)param臨時加(根據(jù)學(xué)生問題添加)參數(shù)中使用out和ref的命名空間namespace(命名空間),用于解決類重名問題,可以看做“類的文件夾”。如果代碼和被使用的類在一個namespace則不需要using。在不同命名空間下的類調(diào)用有兩種方法:寫全稱命名空間.類名先using引用命名空間,再調(diào)用命名空間namespace(命名空間),用于解決類重名問題,字符串的處理string可以看做是char的只讀數(shù)組。charc=s[1];。例子:遍歷輸出string中的每個元素。C#中字符串有一個重要的特性:不可變性,字符串一旦聲明就不再可以改變。所以只能通過索引來讀取指定位置的char,不能對指定位置的char進行修改。如果要對char進行修改,那么就必須創(chuàng)建一個新的字符串,用s.ToCharArray()方法得到字符串的char數(shù)組,對數(shù)組進行修改后,調(diào)用newstring(char[])這個構(gòu)造函數(shù)(暫時不用細研究)來創(chuàng)建char數(shù)組的字符串。一旦字符串被創(chuàng)建,那么char數(shù)組的修改也不會造成字符串的變化。例子:將字符串中的A替換為a。字符串的處理string可以看做是char的只讀數(shù)組。cha字符串練習(xí)一:隨機輸入你心中想到的一個名字,然后輸出它的字符串長度Length:可以得字符串的長度練習(xí)二:兩個學(xué)員輸入各自最喜歡的課程名稱,判斷是否一致,如果相等,則輸出你們倆喜歡相同的課程.如果不相同,則輸出你們倆喜歡不相同的課程.上題中兩位同學(xué)輸入c#和C#代表同一門課,怎么辦?字符串的連接+,兩邊只要有一個是字符串類型,另一個也會被自動轉(zhuǎn)換成字符串類型一切類型都可以調(diào)用.ToString()方法轉(zhuǎn)換成字符串類型.字符串練習(xí)一:隨機輸入你心中想到的一個名字,然后輸出它的字符常見疑問誰說字符串不可變?strings="abc";s="123",s這不是變了嗎要區(qū)分變量名和變量指向的值的區(qū)別。程序中可以有很多字符串,然后由字符串變量指向他們,變量可以指向其他的字符串,但是字符串本身沒有變化。字符串不可變性指的是內(nèi)存中的字符串不可變,而不是變量不變。strings10=s1;//s10指向s1指向的字符串,而不是s10指向s1,哪怕s1以后指向了其他內(nèi)存,那么s10還是指向"hello"abcadmin888888s1s1常見疑問誰說字符串不可變?strings="abc";String類常用方法ToLower():得到字符串的小寫形式。注意字符串是不可變的,所以這些函數(shù)都不會直接改變字符串的內(nèi)容,而是把修改后的字符串的值通過函數(shù)返回值的形式返回。s.ToLower()與s=s.ToLower()ToUpper():得到字符串的大寫形式;Trim()去掉字符串兩端的空白。s1.Equals(s2,StringComparison.OrdinalIgnoreCase),兩個字符串進行比較不區(qū)分大小寫的比較。s1==s2String類常用方法ToLower():得到字符串的小寫形字符串的分割string[]Split(paramschar[]separator):將字符串按照指定的分割符分割為字符串數(shù)組;string[]Split(char[]separator,StringSplitOptionsoptions)將字符串按照指定的char分割符分割為字符串數(shù)組(options取RemoveEmptyEntries的時候移除結(jié)果中的空白字符串);練習(xí):從日期字符串("2008-08-08")中分析出年、月、日;2008年08月08日。讓用戶輸入一個日期格式如:2008-01-02,你輸出你輸入的日期為2008年1月2日字符串的分割string[]Split(paramsch字符串函數(shù)詳解字符串替換:stringReplace(stringoldValue,stringnewValue)將字符串中的出現(xiàn)oldValue的地方替換為newValue。例子:名字替換。取子字符串:stringSubstring(intstartIndex),取從位置startIndex開始一直到最后的子字符串;stringSubstring(intstartIndex,intlength),取從位置startIndex開始長度為length的子字符串,如果子字符串的長度不足length則報錯。boolContains(stringvalue)判斷字符串中是否含有子串valueboolStartsWith(stringvalue)判斷字符串是否以子串value開始;boolEndsWith(stringvalue)判斷字符串是否以子串value結(jié)束;intIndexOf(stringvalue):取子串value第一次出現(xiàn)的位置。IntIndexOf(stringvalue,intstartIndex)字符串函數(shù)詳解字符串替換:stringReplace(st字符串常用方法:學(xué)習(xí)查看msdn字符串常用方法:學(xué)習(xí)查看msdn字符串的處理練習(xí)課上練習(xí)1:接收用戶輸入的字符串,將其中的字符以與輸入相反的順序輸出。"abc"→"cba"課上練習(xí)2:接收用戶輸入的一句英文,將其中的單詞以反序輸出。"hellocsharp"→"sharpchello"課上練習(xí)3:從Email中提取出用戶名和域名:abc@163.com。課上練習(xí)4:文本文件中存儲了多個文章標題、作者,標題和作者之間用若干空格(數(shù)量不定)隔開,每行一個,標題有的長有的短,輸出到控制臺的時候最多標題長度10,如果超過10,則截取長度8的子串并且最后添加“...”,加一個豎線后輸出作者的名字。讓用戶輸入一句話,找出所有e的位置字符串的處理練習(xí)課上練習(xí)1:接收用戶輸入的字符串,將其中的字對象的引用(非常重要)舉例:結(jié)構(gòu)版的Person的賦值與類版的Person的賦值int、decimal、bool、doublebyte枚舉結(jié)構(gòu)等類型(值類型)是傳遞拷貝;對象(引用類型)則是傳遞引用。方法間傳遞對象。對象的引用(非常重要)舉例:結(jié)構(gòu)版的Person的賦值與.net中哪些是值類型?哪些是引用類型?數(shù)組:int[],string[]數(shù)組接口:interface接口自定義類:class字符串:string基類:System.Object類引用類型結(jié)構(gòu):struct結(jié)構(gòu)類型枚舉:enum枚舉類型布爾型:bool字符型:char浮點型:float長整型:long整型:int基本數(shù)據(jù)類型值類型描述類別.net中哪些是值類型?哪些是引用類型?數(shù)組:int[],s為什么要繼承分別寫一個Teacher類和一個Student的類,分析他們應(yīng)該有哪些屬性和方法.假如系統(tǒng)還要再加入班主任類、校長類、家長類試分析這幾個類的屬性?代碼冗余,怎么解決?為什么要繼承分別寫一個Teacher類和一個Student的冗余的解決方案冗余的解決方案繼承的符號:利用繼承實現(xiàn)Student類和Teacher類繼承自Person類.Student類和Teacher類繼承父類的屬性和方法.Student類和Teacher類還有自己獨有的屬性和方法.繼承的符號:利用繼承實現(xiàn)Student類和Teacher類繼繼承的使用classStudent:Person{};classTeacher:Person{};子類繼承了父類的成員,子類還可以有自己的成員.Person叫做父類(基類)Student和Teacher叫子類(派生類)Student繼承了Person類Person類派生了Teacher類在c#中,所有的類都直接或間接的繼承自了object類.(當我們定義一個類的時候,如果沒有寫:繼承一個類,那么這個類就繼承了object類)繼承的使用classStudent:Person{練習(xí):寫一個Student類和一個Teacher類,他們都有一個打招呼的方法,不同的是Studetn打招呼是說"大家好,我叫XX,我今年XX歲了,我的愛好是XXX",Teacher的打招呼的方法是說"大家好,我叫XX,我今年XX歲了,我已經(jīng)工作XX年了"?練習(xí):寫一個Student類和一個Teacher類,他們都有顯示調(diào)用父類的構(gòu)造方法實例化子類時是否調(diào)用了父類的構(gòu)造方法?順序如何?利用構(gòu)造方法設(shè)置公共屬性,也就是說若父類的構(gòu)造方法有參數(shù),應(yīng)該如何處理呢?顯示調(diào)用父類的構(gòu)造方法,關(guān)鍵字:base顯示調(diào)用父類的構(gòu)造方法實例化子類時是否調(diào)用了父類的構(gòu)造方法?protectedprotected訪問修飾符不允許其他非子類訪問修改剛剛的練習(xí),父類中把訪問修飾符改成protected子類中還能被調(diào)用到嗎?其他非子類能調(diào)用嗎?繼承的傳遞性.繼承的單根性.protectedprotected訪問修飾符不允許其他非子類型轉(zhuǎn)換(lsp)Personp=newTeacher();子類可以隱式的轉(zhuǎn)換成父類.Teachert=(Teacher)p;is和astypeAistypeB僅判斷typeAasTypeB先判斷,再轉(zhuǎn)換類型轉(zhuǎn)換(lsp)Personp=newTeache練習(xí):自己定義一個父類Person,兩個子類Teacher和Student類.Person寫一個有參數(shù)的構(gòu)造方法.自己試試,子類可以自動轉(zhuǎn)父類,父類轉(zhuǎn)子類要通過強轉(zhuǎn).為了不出錯,可以先通過is判斷或用as轉(zhuǎn)換.練習(xí):自己定義一個父類Person,兩個子類Teacher和ArrayList和HashTable為什么要用ArrayList和HashTableArrayList元素的增加、插入、刪除、清空、排序、反轉(zhuǎn)。HashTable的增、刪、查、判存。foreachArrayList和HashTable為什么要用ArrayL異常與異常處理傳統(tǒng)的錯誤表示方式:錯誤碼。舉例。需要知道不同錯誤碼的含義,如果不處理錯誤碼,則程序可能陷入不可以預(yù)置的錯誤。陳攝影師以為文件已經(jīng)被刪除造成的麻煩。錯誤碼的缺點:不處理則很難發(fā)現(xiàn),每次處理則很麻煩;難以看出錯誤的原因;容易使得程序進入不確定狀態(tài)。trycatch。Exceptionex異常也是對象。Exception類主要屬性:Message、StackTrace發(fā)生異常后程序默認就退出了,try代碼塊中的后續(xù)代碼不會被執(zhí)行。catch以后的代碼則會繼續(xù)執(zhí)行。不要吃掉異常,一般情況下不需要處理異常。扔出自己的異常,扔:throw,抓?。篶atch異常與異常處理傳統(tǒng)的錯誤表示方式:錯誤碼。舉例。需要知道不同索引器C#中提供了按照索引器進行訪問的方法定義索引器的方式:stringthis[intindex]{get{return"";}set{}},string為索引器的類型,[]中是參數(shù)列表。進行索引器寫操作就是調(diào)用set代碼塊,在set內(nèi)部使用value得到用戶設(shè)置的值;進行讀操作就執(zhí)行g(shù)et代碼塊。索引器參數(shù)可以不止一個,類型也不限于int,幾乎可以是任意類型。練習(xí)1:定義一個集合類(學(xué)生類),不僅可以通過下標查找學(xué)生,還可以通過姓名查找(設(shè)姓名沒有重復(fù))練習(xí)2:上面的火星文的例子,不要用Dictionary,用自己寫的一個Dictionary測試,通過Stopwatch查看效率。索引器C#中提供了按照索引器進行訪問的方法靜態(tài)方法和實例方法(定義和調(diào)用)靜態(tài)方法和實例方法(定義和調(diào)用)北京傳智播客教育WinForm編程基礎(chǔ)講師:蘇坤北京傳智播客教育WinForWinform基礎(chǔ)創(chuàng)建Winform應(yīng)用程序,觀察窗體生成和文件和代碼工具箱:添加控件復(fù)制對齊屬性(以窗體或Button為例):如何更改屬性常用屬性(name)VisibaleEnabledLocationSizeText等事件:當事件發(fā)生的時候,.net框架會幫助我們執(zhí)行一個方法.叫事件處理方法.具體為什么會執(zhí)行這個方法,.net高級中會講.屬性也可以通過代碼來賦值.MessageBox類Winform基礎(chǔ)創(chuàng)建Winform應(yīng)用程序,觀察窗體生成和控件介紹Label:用于向用戶展示信息LinkLabel:鏈接TextBox:一般用于接收用戶的輸入PictureBox:顯示圖片控件介紹Label:用于向用戶展示信息簡單的WinForm程序練習(xí)1:矩形輸入寬和高,輸出面積。練習(xí)2:簡單的加法計算器,用戶在文本框1、2中輸入兩個數(shù),點擊按鈕,在文本框3中顯示兩個數(shù)的和。如果1或者2為錯誤的數(shù)據(jù)格式,則彈出對話框提示錯誤.練習(xí)3:用戶在文本框1、2中輸入兩個數(shù),點擊按鈕,在文本框3中顯示從文本框1中的數(shù)字到文本框2中數(shù)字之間的累加和。如果1或者2為錯誤的數(shù)據(jù)格式,則彈出對話框提示錯誤。如果文本框1中的數(shù)字比文本框2中數(shù)字大,則提示錯誤。練習(xí)4:頁面上有一張圖片(PictureBox,在Image屬性中加載圖片),默認是隱藏的(Visible=False),用戶在文本框中輸入身份證號,點擊按鈕,如果年齡大于18歲則顯示圖片(Visible=True),否則提示年齡太小。取當前年份:DateTime.Now.Year。練習(xí)5:頁面上有一個文本框,文本框左側(cè)和右側(cè)各有一個按鈕,點擊左側(cè)按鈕文本框中的文字向左循環(huán)滾動一次,點擊右側(cè)按鈕文本框中的文字向右循環(huán)滾動一次。簡單的WinForm程序練習(xí)1:矩形輸入寬和高,輸出面積。ComboBox:下拉列表練習(xí)1:簡單的四則運算器如何禁止用戶編輯?三種風(fēng)格。響應(yīng)選擇改變事件練習(xí)2:省市選擇器練習(xí)3:日月選擇器,假設(shè)2月份總是28天。1、3、5、7、8、10、12月份是31天,其他是30天??丶榻BComboBox:下拉列表控件介紹Timer控件Timer。每隔一段時間觸發(fā)一個事件。不可視控件。Inerval、Enabled。Tick事件。計量單位:ms(毫秒)。1秒=1000毫秒DateTime案例:小時鐘。取當前時間DateTime.Now.ToString();案例:窗體標題走馬燈Timer控件Timer。每隔一段時間觸發(fā)一個事件。不可視控樹狀結(jié)構(gòu)數(shù)據(jù)樹狀結(jié)構(gòu)數(shù)據(jù)CheckBox和RadioButtonGroupBoxProgressBar其他:主菜單-工具欄-上下文菜單各種通用對話框托盤CheckBox和RadioButton北京傳智播客教育HTML基礎(chǔ)講師:蘇坤北京傳智播客教育HTML基礎(chǔ)HTML基礎(chǔ)知識HTML:HyperTextMarkupLanguage超文本標簽語言HTML:網(wǎng)頁的“源碼”瀏覽器:“解釋和執(zhí)行”HTML源碼的工具查看網(wǎng)頁HTML基礎(chǔ)知識HTML:HyperTextMarkupHtml基礎(chǔ)知識一個基本的html頁面所應(yīng)該有的元素:<HTML><HEAD><TITLE>我的第一個網(wǎng)頁</TITLE></HEAD><BODY>HelloWorld!</BODY></HTML>Html基礎(chǔ)知識一個基本的html頁面所應(yīng)該有的元素:使用記事本創(chuàng)建網(wǎng)頁使用記事本創(chuàng)建網(wǎng)頁的步驟:1、打開記事本2、輸入HTML代碼3、保存為*.html或*.htm文件、打開網(wǎng)頁預(yù)覽效果初學(xué)者來說用:記事本或editplus網(wǎng)頁三劍客:DreamWeaver(設(shè)計網(wǎng)頁)FireWorks(處理圖片)Flash使用記事本創(chuàng)建網(wǎng)頁使用記事本創(chuàng)建網(wǎng)頁的步驟:head<title>標題</title><metaname="keywords"content="淘寶,網(wǎng)上購物,在線交易,交易市場"/>
<metaname="description"content="淘寶網(wǎng)-亞洲最大、最安全的網(wǎng)上交易平臺,提供各類服飾、美容、家居、數(shù)碼、……"/>head<title>標題</title>頁面背景和背景圖片<BODYbgcolor="#ccccff"background="back.gif">HelloWorld!</BODY>為了使頁面美麗大方,網(wǎng)頁背景要盡量地淺頁面背景和背景圖片<BODYbgcolor="#ccccf版式相關(guān)標簽標題標簽h1h6font標簽sizecolorface屬性特殊符號p標簽br標簽HR標簽:sizecolorwidth屬性版式相關(guān)標簽標題標簽h1h6換行<br/>換行<br/>練習(xí):完成下面的網(wǎng)頁練習(xí):完成下面的網(wǎng)頁點擊查看常見的圖片格式img標簽:srcwidthheightalt屬性ol、ul、li標簽的使用a標簽:hreftarget屬性鏈接文件的路徑問題相對路徑:指定相對于當前文件的文件位置絕對路徑:指定從根目錄到文件的完整路徑點擊查看常見的圖片格式錨標記的使用定義錨標記,使用a標簽的name屬性如:<aname="標記名">目標位置</a>跳轉(zhuǎn)到錯標記的公交車,使用a標簽的href屬性,描標記名稱前加#號如::<ahref="#標記名">當前位置</a>a標簽的mailto的使用方法marquee標簽:scrolldelaydirection屬性<!--注釋內(nèi)容-->錨標記的使用練習(xí):練習(xí):表格為什么要使用表格:在HTML文檔中,廣泛使用表格來存放網(wǎng)頁上的文本和圖像進行布局行列單元格表格為什么要使用表格:行列單元格表格應(yīng)用場合論壇中應(yīng)用表格購物網(wǎng)站應(yīng)用表格門戶網(wǎng)站應(yīng)用表格表格應(yīng)用場合論壇中應(yīng)用表格購物網(wǎng)站應(yīng)用表格門戶網(wǎng)站應(yīng)用表格定義表格的基本語法<TABLEborder="1"><TR><TD> 單元格內(nèi)容</TD> ……</TR>……</TABLE>table表簽:表格的開始tr一行的開始td一列的開始加/表示結(jié)束定義表格的基本語法<TABLEborder="1">tab演示下面的例子表格中的文字也可以添加超鏈接表格中的文字也可以更改顏色,設(shè)置字號試試把table的border屬性刪掉會怎樣?建一個一行兩列的表格,左邊放一個圖片,右片能放多行文本嗎?演示下面的例子表格中的文字也可以添加超鏈接練習(xí):練習(xí):跨行跨列的表格什么是跨行跨列的表格,使用colspan和rowspan屬性跨行跨列的表格什么是跨行跨列的表格,使用colspan和ro跨列的表格演示上面的表格實現(xiàn)跨列的表格,使用colspan屬性來實現(xiàn)跨列的表格演示上面的表格實現(xiàn)跨行的表格演示跨行的表格的實現(xiàn).使用rowspan屬性來實現(xiàn)跨行的表格演示跨行的表格的實現(xiàn).表格的相關(guān)屬性widthheightborderbordercolor屬性align屬生表格的相關(guān)屬性widthheightborderbor練習(xí):請用html實現(xiàn)下面的表格練習(xí):請用html實現(xiàn)下面的表格小練習(xí):小練習(xí):練習(xí)2練習(xí)2練習(xí)3練習(xí)3為什么要使用表單?用于向服務(wù)器傳數(shù)據(jù)為什么要使用表單?用于向服務(wù)器傳數(shù)據(jù)表單和框架單行文本輸入框(TEXT)單選按鈕(RADIO)復(fù)選框(CHECKBOX)下拉列表(SELECT)重置按鈕(RESET)提交按鈕(SUBMIT)多行文本框(TEXTAREA)密碼框(PASSWORD)表單和框架單行文本輸入框(TEXT)單選按鈕(RADIO)復(fù)Form表單<formaction="表單提交地址"method="提交方法">…文本框、按鈕等表單元素…</form>Form表單<formaction="表單提交地址"meB與S的交互B與S的交互表單元素的基本格式表單元素的基本格式表單標簽1文本框:<INPUTtype="text"value="張三"size="20">2密碼框<INPUTtype="password"value="123456"size="22">3單選按鈕<INPUTname="gen"type="radio"value="男"checked=“checked”>Name相同的屬于同一組4復(fù)選框<INPUTtype="checkbox"name="gen"value="男"size="21“maxlength=4checked="checked">5復(fù)位按鈕<INPUTtype="reset"name="Reset"value="重填">6提交按鈕<INPUTtype="submit"name="Reset"value="重填">7普通按鈕<INPUTtype="button"name="cancel"value="取消">表單標簽1文本框:表單標簽下攔列表<selectname="bmon"><optionvalu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國航空貨運行業(yè)市場規(guī)模調(diào)研及投資潛力分析報告
- 2025-2030年中國肥料行業(yè)市場需求預(yù)測與未來投資戰(zhàn)略規(guī)劃分析報告
- 2025-2030年中國聚合物鋰離子蓄電池市場競爭格局與前景發(fā)展策略分析報告
- 2025-2030年中國納米碳酸鈣市場競爭格局展望及投資策略分析報告
- 2025-2030年中國糯玉米汁飲料行業(yè)前景趨勢與投資潛力分析報告
- 二零二五版勞動合同分類與崗位適配性分析報告3篇
- 2025-2030年中國硫基三元復(fù)合肥市場需求狀況規(guī)劃研究報告
- 2025-2030年中國電池膜市場發(fā)展現(xiàn)狀及前景趨勢分析報告
- 2025年新型環(huán)保項目融資擔保合作協(xié)議3篇
- GB/T 45092-2024電解水制氫用電極性能測試與評價
- 《算術(shù)平方根》課件
- DB32T 4880-2024民用建筑碳排放計算標準
- 2024-2024年上海市高考英語試題及答案
- 注射泵管理規(guī)范及工作原理
- 山東省濟南市2023-2024學(xué)年高二上學(xué)期期末考試化學(xué)試題 附答案
- 大唐電廠采購合同范例
- 國潮風(fēng)中國風(fēng)2025蛇年大吉蛇年模板
- GB/T 18724-2024印刷技術(shù)印刷品與印刷油墨耐各種試劑性的測定
- IEC 62368-1標準解讀-中文
- 15J403-1-樓梯欄桿欄板(一)
評論
0/150
提交評論