版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 教學(xué)內(nèi)容 課次安排C#.NET程序設(shè)計(jì)基礎(chǔ) 2數(shù)據(jù)結(jié)構(gòu) 67數(shù)據(jù)庫(kù)技術(shù) 23軟件開(kāi)發(fā)實(shí)例 23軟件工程 1教學(xué)安排計(jì)算機(jī)軟件開(kāi)發(fā)技術(shù)第一章第一章 C#.NETC#.NET程序設(shè)計(jì)基礎(chǔ)程序設(shè)計(jì)基礎(chǔ)1.1 C#.NET 1.1 C#.NET 概述概述 1.2 C#1.2 C#可視化界面設(shè)計(jì)可視化界面設(shè)計(jì) 1.3 C#1.3 C#基本語(yǔ)法基本語(yǔ)法 1.4 C# 1.4 C# 面向?qū)ο蟪绦蛟O(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì) 1.5 1.5 程序調(diào)試程序調(diào)試 1.1 C#.NET 1.1 C#.NET 概述概述1.1.1 C#1.1.1 C#和和.NET.NET簡(jiǎn)介簡(jiǎn)介1.1.2 Visual Studio .NE
2、T 1.1.2 Visual Studio .NET 集成開(kāi)發(fā)環(huán)境集成開(kāi)發(fā)環(huán)境1.1.3 C# windows1.1.3 C# windows應(yīng)用程序開(kāi)發(fā)過(guò)程應(yīng)用程序開(kāi)發(fā)過(guò)程 1.1.1 C#.NET 1.1.1 C#.NET 簡(jiǎn)介簡(jiǎn)介 C Sharp 由由 Turbo Pascal, Delphi, and Visual J+Turbo Pascal, Delphi, and Visual J+的的首席設(shè)計(jì)師首席設(shè)計(jì)師Anders Hejlsberg Anders Hejlsberg 傾心傾心3 3年設(shè)計(jì)年設(shè)計(jì) 像像VBVB一樣簡(jiǎn)單,像一樣簡(jiǎn)單,像C+C+一樣強(qiáng)大一樣強(qiáng)大, ,像像JAVAJ
3、AVA一樣安全一樣安全 C#C#是第一流的面向是第一流的面向組件組件的語(yǔ)言的語(yǔ)言 所有的語(yǔ)言元素都是真正的對(duì)象所有的語(yǔ)言元素都是真正的對(duì)象 開(kāi)發(fā)強(qiáng)壯和可重用的軟件開(kāi)發(fā)強(qiáng)壯和可重用的軟件 所有的所有的.NET Framework.NET Framework中的基類(lèi)庫(kù)(中的基類(lèi)庫(kù)(Base Class Base Class LibraryLibrary)都用)都用C# C# 編寫(xiě)編寫(xiě)1.1.2 Visual Studio .NET 1.1.2 Visual Studio .NET 集成開(kāi)發(fā)環(huán)境集成開(kāi)發(fā)環(huán)境( (Integrated Development EnvironmentIntegrated
4、 Development Environment,IDEIDE ) )IDEIDE的好壞直接決定開(kāi)發(fā)效率。的好壞直接決定開(kāi)發(fā)效率。 每次啟動(dòng)每次啟動(dòng)Visual Studio.NETVisual Studio.NET,就會(huì)出現(xiàn),就會(huì)出現(xiàn)一個(gè)默認(rèn)的主頁(yè)一個(gè)默認(rèn)的主頁(yè). .通過(guò)單擊主頁(yè)提供的鏈接,可以快速打通過(guò)單擊主頁(yè)提供的鏈接,可以快速打開(kāi)曾經(jīng)建立的項(xiàng)目開(kāi)曾經(jīng)建立的項(xiàng)目. .通過(guò)頁(yè)面上提供的鏈接切入聯(lián)機(jī)幫助文通過(guò)頁(yè)面上提供的鏈接切入聯(lián)機(jī)幫助文檔或進(jìn)行信息搜索檔或進(jìn)行信息搜索. .可以對(duì)集成開(kāi)發(fā)環(huán)境的配置進(jìn)行修改??梢詫?duì)集成開(kāi)發(fā)環(huán)境的配置進(jìn)行修改。 起始頁(yè)起始頁(yè)主窗口主窗口代碼窗口代碼窗口是實(shí)現(xiàn)程
5、序邏輯的窗口是實(shí)現(xiàn)程序邏輯的窗口 設(shè)計(jì)類(lèi)在該窗口中進(jìn)行設(shè)計(jì)類(lèi)在該窗口中進(jìn)行編寫(xiě)窗體控件事件在該窗口中進(jìn)行編寫(xiě)窗體控件事件在該窗口中進(jìn)行屬性窗口屬性窗口用于設(shè)置可視化窗體中控件對(duì)象的屬性用于設(shè)置可視化窗體中控件對(duì)象的屬性 解決方案資源管理器窗口解決方案資源管理器窗口組成組成.NET.NET應(yīng)用程序的所有文件共同組成了項(xiàng)目的解決方應(yīng)用程序的所有文件共同組成了項(xiàng)目的解決方案,并以樹(shù)狀結(jié)構(gòu)圖顯示。案,并以樹(shù)狀結(jié)構(gòu)圖顯示。項(xiàng)目文件項(xiàng)目文件(.(.csprojcsproj) ): 每個(gè)每個(gè)C#C#項(xiàng)目對(duì)應(yīng)一個(gè)項(xiàng)目文件。項(xiàng)目對(duì)應(yīng)一個(gè)項(xiàng)目文件。項(xiàng)目通常由引用文件和代碼文件組成。項(xiàng)目通常由引用文件和代碼文件組成
6、。代碼文件代碼文件(.(.cscs文件文件) .) .cscs文件是程序源碼文件。文件是程序源碼文件。 引用文件:引用文件: 每個(gè)每個(gè)C#C#項(xiàng)目都會(huì)自動(dòng)引用項(xiàng)目都會(huì)自動(dòng)引用系統(tǒng)定義的類(lèi)庫(kù)文件,如系統(tǒng)定義的類(lèi)庫(kù)文件,如System.DataSystem.Data。工具箱窗口工具箱窗口常用類(lèi)別:常用類(lèi)別: 所有所有WindowsWindows窗體:存放所有窗體窗體:存放所有窗體 設(shè)計(jì)所需控件。設(shè)計(jì)所需控件。公共控件:包含所有運(yùn)行時(shí)可視化公共控件:包含所有運(yùn)行時(shí)可視化的控件。的控件。容器:可視化的可作為容器的控件,容器:可視化的可作為容器的控件,并可在其內(nèi)放置其他可視化控件。并可在其內(nèi)放置其他可視
7、化控件。菜單和工具欄:窗體中的主菜單、菜單和工具欄:窗體中的主菜單、 工具欄和彈出式菜單控件。工具欄和彈出式菜單控件。 數(shù)據(jù):與數(shù)據(jù)庫(kù)相關(guān)的控件。數(shù)據(jù):與數(shù)據(jù)庫(kù)相關(guān)的控件。 1.1.3 C# windows1.1.3 C# windows應(yīng)用程序開(kāi)發(fā)過(guò)程應(yīng)用程序開(kāi)發(fā)過(guò)程建立和運(yùn)行建立和運(yùn)行C# WindowsC# Windows應(yīng)用程序的步驟:應(yīng)用程序的步驟:建立一個(gè)新項(xiàng)目建立一個(gè)新項(xiàng)目設(shè)計(jì)程序運(yùn)行界面,向界面中添加控件對(duì)象設(shè)計(jì)程序運(yùn)行界面,向界面中添加控件對(duì)象設(shè)置對(duì)象屬性設(shè)置對(duì)象屬性針對(duì)對(duì)象事件進(jìn)行編程針對(duì)對(duì)象事件進(jìn)行編程保存、調(diào)試、運(yùn)行程序保存、調(diào)試、運(yùn)行程序例:設(shè)計(jì)一個(gè)界面如圖所示的求一
8、個(gè)整數(shù)的絕對(duì)值的程例:設(shè)計(jì)一個(gè)界面如圖所示的求一個(gè)整數(shù)的絕對(duì)值的程序。在程序運(yùn)行啟動(dòng)后,在標(biāo)簽序。在程序運(yùn)行啟動(dòng)后,在標(biāo)簽“a”a”后面的文本框內(nèi)輸后面的文本框內(nèi)輸入一個(gè)整數(shù),用戶單擊入一個(gè)整數(shù),用戶單擊“calculate”calculate”按鈕后,標(biāo)簽按鈕后,標(biāo)簽“|a|”|a|”后面的文本框內(nèi)顯示該整數(shù)的絕對(duì)值。后面的文本框內(nèi)顯示該整數(shù)的絕對(duì)值。 創(chuàng)建創(chuàng)建C# C# 項(xiàng)目項(xiàng)目1.1.選擇菜單選擇菜單“文件文件”“新建新建”“項(xiàng)目項(xiàng)目”。2.2.選擇選擇“Visual Visual C#”C#”“Windows“Windows 應(yīng)用程序應(yīng)用程序”。3.3.輸入項(xiàng)目名稱(chēng),確定項(xiàng)目位置,單擊
9、確定。輸入項(xiàng)目名稱(chēng),確定項(xiàng)目位置,單擊確定。設(shè)計(jì)程序運(yùn)行界面:設(shè)計(jì)程序運(yùn)行界面: 從工具箱中向設(shè)計(jì)窗體中分別拖動(dòng)如下控件:從工具箱中向設(shè)計(jì)窗體中分別拖動(dòng)如下控件:兩個(gè)兩個(gè)LabelLabel(標(biāo)簽)控件(標(biāo)簽)控件兩個(gè)兩個(gè)TextBoxTextBox(文本框)控件(文本框)控件一個(gè)一個(gè)ButtonButton(命令按鈕)控件。(命令按鈕)控件。 控件名控件名屬性名屬性名屬性值屬性值Label1Label1TextTexta aLabel2Label2TextText|a|a|TextBox1TextBox1NameNametbatbaTextBox2TextBox2NameNametbabst
10、babsButton1Button1TextTextNameNamecalculatecalculatebtncalculatebtncalculate設(shè)置對(duì)象屬性:設(shè)置對(duì)象屬性: 控件的一般命名規(guī)則控件的一般命名規(guī)則 :控件類(lèi)別的小寫(xiě)縮寫(xiě)控件類(lèi)別的小寫(xiě)縮寫(xiě)+ +變量的物理意義變量的物理意義 如:控件如:控件TextBoxTextBox縮寫(xiě)為縮寫(xiě)為tbtb 控件控件ButtonButton縮寫(xiě)為縮寫(xiě)為btnbtn編寫(xiě)單擊命令按鈕編寫(xiě)單擊命令按鈕calculatecalculate事件代碼:事件代碼: private void btncalculate_Click(object sender,
11、EventArgs e) int a = int.Parse(tba.Text); if (a 0) a = -a; tbabs.Text = + a; /空串空串與與a a相加變成字符串相加變成字符串 a a 說(shuō)明:說(shuō)明:tba.Texttba.Text中的中的TextText為為T(mén)extBoxTextBox控件控件tbatba的的屬性屬性,該屬性代表文本框中的內(nèi)容。,該屬性代表文本框中的內(nèi)容。TextBoxTextBox控件中的內(nèi)容都是字符串形式的??丶械膬?nèi)容都是字符串形式的。int.Parse(tba.Text)int.Parse(tba.Text)中的中的ParseParse是是in
12、tint類(lèi)類(lèi)型的型的方法方法,其功能是將文本框,其功能是將文本框tbatba中的內(nèi)容中的內(nèi)容轉(zhuǎn)換為轉(zhuǎn)換為intint類(lèi)型的數(shù)據(jù)。類(lèi)型的數(shù)據(jù)。ParseParse方法的作用是將其后的參數(shù)值以其方法的作用是將其后的參數(shù)值以其作用對(duì)象的類(lèi)型進(jìn)行轉(zhuǎn)換。作用對(duì)象的類(lèi)型進(jìn)行轉(zhuǎn)換。1.2 C#1.2 C#可視化界面設(shè)計(jì)可視化界面設(shè)計(jì) 1.2.1 1.2.1 控件基本概念控件基本概念 1.2.2 1.2.2 窗體窗體 1.2.3 1.2.3 常用控件常用控件 1.2.1 1.2.1 控件基本概念控件基本概念控件分為可視化和非可視化兩類(lèi),前者控件分為可視化和非可視化兩類(lèi),前者運(yùn)行時(shí)可在窗體界面中顯示。運(yùn)行時(shí)可在
13、窗體界面中顯示??丶穷?lèi)的圖形化表示??丶穷?lèi)的圖形化表示。放置于設(shè)計(jì)窗體中的控件表示該控件代放置于設(shè)計(jì)窗體中的控件表示該控件代表的類(lèi)的具體對(duì)象。表的類(lèi)的具體對(duì)象。 控件對(duì)象的屬性、方法和事件控件對(duì)象的屬性、方法和事件 屬性:屬性:主要用于設(shè)置對(duì)象的狀態(tài)。主要用于設(shè)置對(duì)象的狀態(tài)。屬性值可通過(guò)屬性窗口直接設(shè)置。屬性值可通過(guò)屬性窗口直接設(shè)置。屬性值也可通過(guò)程序代碼更改:屬性值也可通過(guò)程序代碼更改: 對(duì)象名對(duì)象名. .屬性名屬性名 = = 值值; ; 如:如:tbabs.Text = + a;tbabs.Text = + a; 方法:方法:是對(duì)象的行為特征是對(duì)象的行為特征是對(duì)象本身內(nèi)含的函數(shù)是對(duì)象本
14、身內(nèi)含的函數(shù)如:如: TextBox1.Focus(); TextBox1.Focus();事件:是對(duì)象的一類(lèi)事件:是對(duì)象的一類(lèi)特殊方法特殊方法,用于對(duì)程,用于對(duì)程序運(yùn)行過(guò)程中發(fā)生的指定事件進(jìn)行響應(yīng),序運(yùn)行過(guò)程中發(fā)生的指定事件進(jìn)行響應(yīng),做出應(yīng)答。常見(jiàn)的事件如單擊做出應(yīng)答。常見(jiàn)的事件如單擊(Click)(Click)、鍵、鍵盤(pán)按下盤(pán)按下( (KeyPressKeyPress) )。 控件對(duì)象的通用屬性控件對(duì)象的通用屬性 Name:Name:屬性值作為對(duì)象的標(biāo)識(shí)屬性值作為對(duì)象的標(biāo)識(shí)( (也即變量名也即變量名) )在在程序中引用程序中引用不在窗體上顯示不在窗體上顯示Text:Text:決定控件對(duì)象在
15、窗體上顯示的文本。決定控件對(duì)象在窗體上顯示的文本。 Font:Font:控制窗體中控件的控制窗體中控件的TextText屬性值的字體屬性值的字體 容器類(lèi)對(duì)象的容器類(lèi)對(duì)象的FontFont屬性,會(huì)自動(dòng)傳遞給屬性,會(huì)自動(dòng)傳遞給容器內(nèi)的所有對(duì)象。容器內(nèi)的所有對(duì)象。 EnabledEnabled: 控制控件能否接受用戶的響應(yīng)??刂瓶丶芊窠邮苡脩舻捻憫?yīng)。 如對(duì)按鈕如對(duì)按鈕button1button1,執(zhí)行語(yǔ)句:,執(zhí)行語(yǔ)句: button1.Enabled = false; button1.Enabled = false; 則程序運(yùn)行時(shí),該控件不響應(yīng)用戶則程序運(yùn)行時(shí),該控件不響應(yīng)用戶對(duì)其操作的任何事件。
16、對(duì)其操作的任何事件。VisibleVisible: 控制程序運(yùn)行期間控件是否可見(jiàn)??刂瞥绦蜻\(yùn)行期間控件是否可見(jiàn)。 將其設(shè)置為將其設(shè)置為falsefalse時(shí),該控件不可見(jiàn)。時(shí),該控件不可見(jiàn)。 1.2.2 1.2.2 窗體窗體是與用戶交互的界面,是控件的容器。是與用戶交互的界面,是控件的容器。 一個(gè)應(yīng)用程序可創(chuàng)建多個(gè)窗體。一個(gè)應(yīng)用程序可創(chuàng)建多個(gè)窗體。只有一個(gè)主窗體,程序啟動(dòng)時(shí)自動(dòng)顯示。只有一個(gè)主窗體,程序啟動(dòng)時(shí)自動(dòng)顯示。主窗體之外的其它窗體需要通過(guò)添加完成主窗體之外的其它窗體需要通過(guò)添加完成(“項(xiàng)目項(xiàng)目”“添加添加WindowsWindows窗體窗體” ” )每個(gè)窗體是一個(gè)類(lèi),需為其生成一個(gè)對(duì)象
17、每個(gè)窗體是一個(gè)類(lèi),需為其生成一個(gè)對(duì)象主窗體之外的其它窗體通過(guò)其主窗體之外的其它窗體通過(guò)其Show()Show()或或ShowDialogShowDialog()()方法進(jìn)行顯示。方法進(jìn)行顯示。 主要功能:用于顯示文本主要功能:用于顯示文本 重要屬性:重要屬性:TextText屬性,屬性,F(xiàn)ontFont屬性屬性 1.2.3 1.2.3 常用控件常用控件LabelLabel(標(biāo)簽)(標(biāo)簽): :TextBoxTextBox(文本框):(文本框): 主要功能:主要功能:輸入、顯示、編輯文本。輸入、顯示、編輯文本。輸入的信息以字符串輸入的信息以字符串(String(String類(lèi)型類(lèi)型) )形式形式
18、保存在其保存在其TextText屬性中。屬性中。重要屬性:重要屬性:Text(Text(文本文本) ):文本框中的內(nèi)容。:文本框中的內(nèi)容。MultiLineMultiLine( (多行多行) ):值為:值為 true true 時(shí),允許多行時(shí),允許多行ScrollBarsScrollBars( (滾動(dòng)條滾動(dòng)條) ):用來(lái)設(shè)置滾動(dòng)條模式:用來(lái)設(shè)置滾動(dòng)條模式 ,只有當(dāng)只有當(dāng)MultiLineMultiLine屬性為屬性為truetrue時(shí),該屬性值才時(shí),該屬性值才有效。有效。 PasswordCharPasswordChar:允許設(shè)置一個(gè)字符,運(yùn)行程:允許設(shè)置一個(gè)字符,運(yùn)行程序時(shí),將輸入到序時(shí),將
19、輸入到 Text Text 的內(nèi)容全部顯示為該的內(nèi)容全部顯示為該屬性值,從而起到保密作用,通常用來(lái)輸入屬性值,從而起到保密作用,通常用來(lái)輸入口令或密碼??诹罨蛎艽a。 ReadOnlyReadOnly:指示文本框中的文本是否為只讀。:指示文本框中的文本是否為只讀。值為值為 truetrue時(shí)為只讀。時(shí)為只讀。常用方法:常用方法:ClearClear方法:從文本框控件中清除所有文方法:從文本框控件中清除所有文本。調(diào)用格式:本。調(diào)用格式: 文本框?qū)ο笪谋究驅(qū)ο?Clear();.Clear(); FocusFocus方法:將光標(biāo)聚焦在該文本框中。方法:將光標(biāo)聚焦在該文本框中。調(diào)用格式:調(diào)用格式: 文
20、本框?qū)ο笪谋究驅(qū)ο?Focus(); .Focus(); 按鈕按鈕 ButtonButton重要屬性重要屬性: :Text:Text:表明按鈕任務(wù)的內(nèi)容。表明按鈕任務(wù)的內(nèi)容。主要事件:主要事件:ClickClick:當(dāng)鼠標(biāo)單擊該按鈕后,程序?qū)?zhí):當(dāng)鼠標(biāo)單擊該按鈕后,程序?qū)?zhí)行什么操作。行什么操作。 通常成組出現(xiàn),以提供兩個(gè)以上互斥選項(xiàng)。通常成組出現(xiàn),以提供兩個(gè)以上互斥選項(xiàng)。 在一組單選鈕中只能選擇一個(gè)單選框。在一組單選鈕中只能選擇一個(gè)單選框。主要屬性:主要屬性:TextText:?jiǎn)芜x按鈕控件內(nèi)顯示的文本。:?jiǎn)芜x按鈕控件內(nèi)顯示的文本。CheckedChecked:設(shè)置或返回單選按鈕是否被選中,:
21、設(shè)置或返回單選按鈕是否被選中, 選中時(shí)值為選中時(shí)值為truetrue,否則為,否則為falsefalse。單選按鈕單選按鈕 RadioButtonRadioButton常用事件:常用事件: ClickClick:當(dāng)單擊單選按鈕時(shí),把其:當(dāng)單擊單選按鈕時(shí),把其CheckedChecked屬性值設(shè)置為屬性值設(shè)置為truetrue。 用于羅列可供用戶選擇的項(xiàng)。用于羅列可供用戶選擇的項(xiàng)。主要屬性和常用事件同單選按鈕。主要屬性和常用事件同單選按鈕。復(fù)選框復(fù)選框CheckBoxCheckBox 組框組框 GroupBoxGroupBox容器控件容器控件用于為其他控件提供可識(shí)別的分組如,用于為其他控件提供可
22、識(shí)別的分組如,為為RadioButtonRadioButton控件分組??丶纸M。主要屬性主要屬性:Text:代表這組控件的類(lèi)別。:代表這組控件的類(lèi)別?!纠慨?dāng)單擊當(dāng)單擊“確定確定”按鈕后,在下邊的文本框中顯示按鈕后,在下邊的文本框中顯示有關(guān)信息有關(guān)信息??丶丶麑傩悦麑傩悦麑傩灾祵傩灾礣extBox1TextBox1NameNametbnametbnameTextBox2TextBox2NameNametbinftbinfGroupBox1GroupBox1TextText性別性別GroupBox2GroupBox2TextText職稱(chēng)職稱(chēng)RadioButton1RadioButton
23、1NameNameTextTextrdbrdbm m男男RadioButton2RadioButton2NameNameTextTextrdbrdbf f女女RadioButton3RadioButton3NameNameTextTextrdblrdbl講師講師RadioButton4RadioButton4NameNameTextTextrdbrdbvpvp副教授副教授RadioButton5RadioButton5NameNameTextTextrdbrdbp p教授教授主要對(duì)象屬性(非全部)設(shè)置:主要對(duì)象屬性(非全部)設(shè)置: private void button1_Click(obje
24、ct sender, EventArgs e) if (rdbf.Checked) tbinf.Text = tbname.Text + 女; else tbinf.Text = tbname.Text + 男; if (rdbl.Checked) tbinf.Text += 講師; else if (rdbvp.Checked) tbinf.Text += 副教授; else tbinf.Text += 教授; 【例例】當(dāng)單擊當(dāng)單擊“確定確定”按鈕后,在右邊的文本框中顯示按鈕后,在右邊的文本框中顯示有關(guān)信息有關(guān)信息??丶丶麑傩悦麑傩悦麑傩灾祵傩灾礣extBox1TextBox1Name
25、NametbnametbnameTextBox2TextBox2NameNametbhobtbhobGroupBox1GroupBox1TextText愛(ài)好愛(ài)好CheckBox1CheckBox1NameNameTextTextcbscbs運(yùn)動(dòng)運(yùn)動(dòng)CheckBox2CheckBox2NameNameTextTextcbtpcbtp攝影攝影CheckBox3CheckBox3NameNameTextTextcbmcbm音樂(lè)音樂(lè)CheckBox4CheckBox4NameNameTextTextcbpcbp話劇話劇主要對(duì)象屬性(非全部)設(shè)置:主要對(duì)象屬性(非全部)設(shè)置: private void
26、btnok_Click(object sender, EventArgs e) tbhob .Text =tbname .Text+愛(ài)好: ; if (cbs.Checked) tbhob.Text += 運(yùn)動(dòng); if (cbtp.Checked) tbhob.Text += 攝影; if (cbm.Checked) tbhob.Text += 音樂(lè); if (cbp.Checked) tbhob.Text += 話劇; 列表框列表框ListBoxListBox 顯示一個(gè)項(xiàng)目列表供選擇,支持單選和多選。顯示一個(gè)項(xiàng)目列表供選擇,支持單選和多選。常用屬性:常用屬性: ItemsItems屬性:存放
27、列表框中的列表項(xiàng)。屬性:存放列表框中的列表項(xiàng)。SelectedIndexSelectedIndex:被選擇項(xiàng)的序號(hào),首項(xiàng)為:被選擇項(xiàng)的序號(hào),首項(xiàng)為0 0 Text Text :當(dāng)前被選定項(xiàng)的文本:當(dāng)前被選定項(xiàng)的文本 Count Count :總項(xiàng)數(shù):總項(xiàng)數(shù) 組合框組合框 ComboBoxComboBox 將文本框和列表框的特性組合在一起的控件。將文本框和列表框的特性組合在一起的控件。在列表中選擇一項(xiàng),則該項(xiàng)內(nèi)容自動(dòng)裝入文在列表中選擇一項(xiàng),則該項(xiàng)內(nèi)容自動(dòng)裝入文本框中本框中(Text(Text屬性中屬性中) )當(dāng)輸入內(nèi)容為多項(xiàng)選擇之一時(shí),使用該控件當(dāng)輸入內(nèi)容為多項(xiàng)選擇之一時(shí),使用該控件不支持多選不
28、支持多選 常用屬性同列表框常用屬性同列表框列表框和組合框的主要方法列表框和組合框的主要方法 屬性屬性 作用作用 Items.AddItems.Add( (新選項(xiàng)新選項(xiàng)) ) 把一個(gè)新選項(xiàng)加到把一個(gè)新選項(xiàng)加到選項(xiàng)的最后選項(xiàng)的最后 Items.RemoveItems.Remove( (選項(xiàng)選項(xiàng)) ) 從列表框或組合框從列表框或組合框中刪除指定項(xiàng)中刪除指定項(xiàng) Items.RemoveAt(IndexItems.RemoveAt(Index) ) 刪除刪除IndexIndex指定的指定的選項(xiàng)選項(xiàng) Items.Insert(indexItems.Insert(index, ,新項(xiàng)新項(xiàng)) ) 在在inde
29、xindex位置插入位置插入新項(xiàng)新項(xiàng) Items.ClearItems.Clear() () 清空列表框或組合清空列表框或組合框框 【例例】“添加添加”:將文本框中的內(nèi)容添加到列表框:將文本框中的內(nèi)容添加到列表框“刪除刪除”:刪除列表框中選定的選項(xiàng):刪除列表框中選定的選項(xiàng)“修改修改”:將選定的待修改內(nèi)容顯示在文本框中:將選定的待修改內(nèi)容顯示在文本框中 “修改確定修改確定”:用文本框中的新內(nèi)容修改列表框:用文本框中的新內(nèi)容修改列表框中中選定項(xiàng)選定項(xiàng) 控件名控件名屬性名屬性名屬性值屬性值TextBox1TextBox1NameNametbctbcListBox1ListBox1NameNameIt
30、emsItemsLbcLbcC/C+C/C+VBVB大學(xué)計(jì)算機(jī)基礎(chǔ)大學(xué)計(jì)算機(jī)基礎(chǔ)數(shù)據(jù)庫(kù)技術(shù)數(shù)據(jù)庫(kù)技術(shù)軟件開(kāi)發(fā)技術(shù)軟件開(kāi)發(fā)技術(shù)Button1Button1NameNamebtnaddbtnaddButton2Button2NameNamebtndelbtndelButton3Button3NameNamebtnmodbtnmodButton4Button4NameNamebtnokbtnok主要對(duì)象屬性(非全部)設(shè)置:主要對(duì)象屬性(非全部)設(shè)置: private void btnadd_Click(object sender, EventArgs e)/添加添加 lbc.Items.Add(tb
31、c.Text);private void btndel_Click(object sender, EventArgs e) /刪除刪除 lbc.Items.Remove(lbc .Text ); private void btnmod_Click(object sender, EventArgs e) /修改修改 tbc.Text = lbc.Text; private void btnok_Click(object sender, EventArgs e) /修改確定修改確定 int n=lbc.SelectedIndex; lbc.Items.RemoveAt(n); lbc.Items.
32、Insert(n, tbc.Text); 【例例】“單擊單擊“確定確定”按鈕,在按鈕,在“訂購(gòu)訂購(gòu)”后的文本框中后的文本框中顯示選中的品牌和數(shù)量顯示選中的品牌和數(shù)量 。private void button1_Click(object sender, EventArgs e)private void button1_Click(object sender, EventArgs e) tbb.Text = tbb.Text = 品牌品牌: + cbb.Text +rn: + cbb.Text +rn數(shù)量數(shù)量: + tba.Text; : + tba.Text; 控件名控件名屬性名屬性名屬性值屬性
33、值TextBox1TextBox1NameNametbtba aComboBox1ComboBox1NameNameItemsItemscbccbc清華同方清華同方北大方正北大方正聯(lián)想聯(lián)想DELLDELLTextBox2TextBox2NameNameMultiLineMultiLineTbbTbbtruetrue主要對(duì)象屬性(非全部)設(shè)置:主要對(duì)象屬性(非全部)設(shè)置: 控件名控件名屬性名屬性名屬性值屬性值TextBox1TextBox1NameNametbbtbbComboBox1ComboBox1NameNameItemsItemsLbcLbcC/C+C/C+VBVB大學(xué)計(jì)算機(jī)基礎(chǔ)大學(xué)計(jì)算
34、機(jī)基礎(chǔ)數(shù)據(jù)庫(kù)技術(shù)數(shù)據(jù)庫(kù)技術(shù)軟件開(kāi)發(fā)技術(shù)軟件開(kāi)發(fā)技術(shù)Button1Button1NameNamebtnaddbtnaddButton2Button2NameNamebtndelbtndelButton3Button3NameNamebtnmodbtnmodButton4Button4NameNamebtnokbtnok主要對(duì)象屬性設(shè)置:主要對(duì)象屬性設(shè)置: 于是,研制人員想了個(gè)辦法解決這個(gè)問(wèn)題,于是,研制人員想了個(gè)辦法解決這個(gè)問(wèn)題,就是在每行后面加兩個(gè)表示結(jié)束的字符。一就是在每行后面加兩個(gè)表示結(jié)束的字符。一個(gè)叫做個(gè)叫做“回車(chē)回車(chē)”,告訴打字機(jī)把打印頭定位,告訴打字機(jī)把打印頭定位在左邊界;另一個(gè)叫做
35、在左邊界;另一個(gè)叫做“換行換行”,告訴打字,告訴打字機(jī)把紙向下移一行。機(jī)把紙向下移一行。 這就是這就是“換行換行”和和“回車(chē)回車(chē)”的來(lái)歷后來(lái)的來(lái)歷后來(lái),計(jì)算機(jī)發(fā)明了,這兩個(gè)概念也就被般到了,計(jì)算機(jī)發(fā)明了,這兩個(gè)概念也就被般到了計(jì)算機(jī)上。那時(shí),存儲(chǔ)器很貴,一些科學(xué)家計(jì)算機(jī)上。那時(shí),存儲(chǔ)器很貴,一些科學(xué)家認(rèn)為在每行結(jié)尾加兩個(gè)字符太浪費(fèi)了,加一認(rèn)為在每行結(jié)尾加兩個(gè)字符太浪費(fèi)了,加一個(gè)就可以。于是,就出現(xiàn)了分歧。個(gè)就可以。于是,就出現(xiàn)了分歧。 在計(jì)算機(jī)還沒(méi)有出現(xiàn)之前,有一種叫做電傳打字機(jī)的玩在計(jì)算機(jī)還沒(méi)有出現(xiàn)之前,有一種叫做電傳打字機(jī)的玩意,每秒鐘可以打意,每秒鐘可以打1010個(gè)字符。但是它有一個(gè)問(wèn)題
36、,就是個(gè)字符。但是它有一個(gè)問(wèn)題,就是打完一行換行的時(shí)候,要用去打完一行換行的時(shí)候,要用去0.20.2秒,正好可以打兩個(gè)秒,正好可以打兩個(gè)字符。要是在這字符。要是在這0.20.2秒里面,又有新的字符傳過(guò)來(lái),那秒里面,又有新的字符傳過(guò)來(lái),那么這個(gè)字符將丟失。么這個(gè)字符將丟失。小知識(shí)回車(chē)和換行的區(qū)別小知識(shí)回車(chē)和換行的區(qū)別Unix Unix 系統(tǒng)里,每行結(jié)尾只有系統(tǒng)里,每行結(jié)尾只有“ ”,即即“n”n”;WindowsWindows系統(tǒng)里面,每行結(jié)尾是系統(tǒng)里面,每行結(jié)尾是“ ” ” ,即,即“ rnrn”;MacMac系系統(tǒng)里,每行結(jié)尾是統(tǒng)里,每行結(jié)尾是“ ”。一個(gè)直接。一個(gè)直接后果是,后果是,Uni
37、x/MacUnix/Mac系統(tǒng)下的文件在系統(tǒng)下的文件在WindowsWindows里打開(kāi)的話,所有文字會(huì)變成一行;而里打開(kāi)的話,所有文字會(huì)變成一行;而WindowsWindows里的文件在里的文件在Unix/MacUnix/Mac下打開(kāi)的話,下打開(kāi)的話,在每行的結(jié)尾可能會(huì)多出一個(gè)在每行的結(jié)尾可能會(huì)多出一個(gè)MM符號(hào)。符號(hào)。富文本框富文本框 RichTextBoxRichTextBox 既可輸入、又可編輯文本的文字處理控件。既可輸入、又可編輯文本的文字處理控件。比比TextBoxTextBox的文字處理功能更加豐富。的文字處理功能更加豐富??梢源蜷_(kāi)、編輯和存儲(chǔ)可以打開(kāi)、編輯和存儲(chǔ).rtf .rtf
38、 、ASCIIASCII等格等格式文件。式文件。常用屬性:常用屬性:基本具有基本具有TextBoxTextBox 控件所具有的所有屬性??丶哂械乃袑傩?。其它屬性使用中再介紹。其它屬性使用中再介紹。列表視圖和菜單控件開(kāi)發(fā)實(shí)例一章做介紹列表視圖和菜單控件開(kāi)發(fā)實(shí)例一章做介紹1.3 C#1.3 C#基本語(yǔ)法基本語(yǔ)法 C#C#表達(dá)上與表達(dá)上與C+C+非常相似,此處將主要的不同用法做非常相似,此處將主要的不同用法做一介紹。一介紹。一、數(shù)組一、數(shù)組1 1、聲明方式不同:、聲明方式不同:方括號(hào)被置于數(shù)據(jù)類(lèi)型之后而不是在數(shù)方括號(hào)被置于數(shù)據(jù)類(lèi)型之后而不是在數(shù)組名之后。組名之后。一維數(shù)組一維數(shù)組 格式:格式:
39、 類(lèi)型類(lèi)型 數(shù)組名數(shù)組名如:如:intint num1; /num1 num1; /num1是整型數(shù)組是整型數(shù)組 string book; string book; 此處此處bookbook是字符串?dāng)?shù)組,每個(gè)元素是一是字符串?dāng)?shù)組,每個(gè)元素是一個(gè)字符串,個(gè)字符串, stringstring是字符串類(lèi)型。是字符串類(lèi)型。二維數(shù)組格式二維數(shù)組格式 : 類(lèi)型類(lèi)型, , 數(shù)組名數(shù)組名如:如:intint , num2; / , num2; / 定義一個(gè)兩維數(shù)組定義一個(gè)兩維數(shù)組2 2、創(chuàng)建數(shù)組元素要使用、創(chuàng)建數(shù)組元素要使用newnew操作符操作符 double d = new double10; doubl
40、e d = new double10; intint , num = new int6,6; , num = new int6,6; 3 3、不能訪問(wèn)超出數(shù)組邊界的元素,較、不能訪問(wèn)超出數(shù)組邊界的元素,較C+C+更安全更安全4 4、 foreachforeach語(yǔ)句語(yǔ)句可用來(lái)遍歷數(shù)組。但不需要顯式考慮數(shù)組中元素可用來(lái)遍歷數(shù)組。但不需要顯式考慮數(shù)組中元素的個(gè)數(shù)。格式為:的個(gè)數(shù)。格式為: foreachforeach( (元素類(lèi)型元素類(lèi)型 變量名變量名 in in 數(shù)組數(shù)組) ) 語(yǔ)句組語(yǔ)句組 int, a = new int3,3;int, a = new int3,3; int s=0;int
41、 s=0; for (int i = 0; i 3; i+) for (int i = 0; i 3; i+) for (int j = 0; j 3; j+) for (int j = 0; j 3; j+) ai,jai,j = i = i * * 3 + j; 3 + j; foreach (int d in a) foreach (int d in a) s = s + d;s = s + d;/該程序段將二維數(shù)組該程序段將二維數(shù)組a a的累加和存放在變量的累加和存放在變量s s中中, ,注意二維數(shù)組的表達(dá)與注意二維數(shù)組的表達(dá)與C C語(yǔ)言中的不同。語(yǔ)言中的不同。intdataintda
42、ta = new int3 1, 10, 20 ; = new int3 1, 10, 20 ;/等價(jià)于等價(jià)于intint data=1,10,20 data=1,10,20intint s=0; s=0;foreachforeach ( (intint i in data) i in data) s= s=s+is+i /該程序段將數(shù)組該程序段將數(shù)組datadata的累加和存放在變量的累加和存放在變量s s中中 二、函數(shù)二、函數(shù)1 1、基礎(chǔ)類(lèi)庫(kù)函數(shù)的使用、基礎(chǔ)類(lèi)庫(kù)函數(shù)的使用弄清所要使用的類(lèi)庫(kù)函數(shù)所屬的類(lèi)弄清所要使用的類(lèi)庫(kù)函數(shù)所屬的類(lèi)弄清該類(lèi)所在的名字空間弄清該類(lèi)所在的名字空間引用該名字空間以
43、使用其中的類(lèi)引用該名字空間以使用其中的類(lèi)如:將如:將100100的平方根存放于變量的平方根存放于變量d d中。中。double d = System.Math.Sqrt(100);double d = System.Math.Sqrt(100);或:或:Using SystemUsing System; double d = Math.Sqrt(100)double d = Math.Sqrt(100) ; ; 說(shuō)明:說(shuō)明:在在C#C#中,平方根函數(shù)中,平方根函數(shù)SqrtSqrt是是MathMath類(lèi)的一個(gè)方法類(lèi)的一個(gè)方法MathMath類(lèi)是在類(lèi)是在SystemSystem名字空間中名字空間中
44、上述代碼中的第一種方式稱(chēng)為函數(shù)的直接引用,上述代碼中的第一種方式稱(chēng)為函數(shù)的直接引用,格式為:格式為: 名字空間名名字空間名. .類(lèi)名類(lèi)名. .方法名(參數(shù))方法名(參數(shù))第二種方式通過(guò)第二種方式通過(guò)UsingUsing語(yǔ)句語(yǔ)句 ,格式為:,格式為: Using Using 名字空間名字空間 ;/;/位于程序的開(kāi)頭位于程序的開(kāi)頭 類(lèi)名類(lèi)名. .方法名(參數(shù))方法名(參數(shù)) 2 2、參數(shù)傳遞、參數(shù)傳遞傳值調(diào)用中,函數(shù)無(wú)法將改變的形參值帶給傳值調(diào)用中,函數(shù)無(wú)法將改變的形參值帶給實(shí)參。實(shí)參。C/C+C/C+中采用傳址和引用調(diào)用將改變的形參中采用傳址和引用調(diào)用將改變的形參值帶給實(shí)參。值帶給實(shí)參。C#C#
45、中取消了指針的概念,而引用調(diào)用的表達(dá)中取消了指針的概念,而引用調(diào)用的表達(dá)也不同于也不同于C/C+C/C+ 。引用的具體用法:引用的具體用法: 使用關(guān)鍵字使用關(guān)鍵字outout或或refref。 outout或或refref要同時(shí)出現(xiàn)在形參和實(shí)參中。要同時(shí)出現(xiàn)在形參和實(shí)參中。 outout和和 refref的區(qū)別:的區(qū)別:使用使用refref,要求實(shí)參在調(diào)用前要先有初值,要求實(shí)參在調(diào)用前要先有初值,而使用而使用outout則不必。如:則不必。如:intint i; i; SomeMethodSomeMethod( ref i ); /( ref i ); /錯(cuò)誤錯(cuò)誤 intint i; i; S
46、omeMethodSomeMethod( out i ); /( out i ); /正確正確refref傳進(jìn)去的參數(shù)在函數(shù)內(nèi)部可以直接使傳進(jìn)去的參數(shù)在函數(shù)內(nèi)部可以直接使用,而用,而outout傳進(jìn)去的參數(shù)則不可以。如:傳進(jìn)去的參數(shù)則不可以。如:public void public void SomeMethod(refSomeMethod(ref intint i) i) intint j=i; / j=i; /正確正確public void public void SomeMethod(outSomeMethod(out intint i) i) intint j=i; j=i; / /錯(cuò)
47、誤錯(cuò)誤 refref傳進(jìn)去的參數(shù)在函數(shù)內(nèi)部可以不被修改,傳進(jìn)去的參數(shù)在函數(shù)內(nèi)部可以不被修改,但但outout必須在離開(kāi)函數(shù)體前進(jìn)行賦值。必須在離開(kāi)函數(shù)體前進(jìn)行賦值。三、命名空間三、命名空間namespace命名空間建立了代碼的組織結(jié)構(gòu)。命名空間建立了代碼的組織結(jié)構(gòu)。新建一個(gè)新建一個(gè)C#C#項(xiàng)目時(shí),系統(tǒng)會(huì)自動(dòng)為用戶項(xiàng)目時(shí),系統(tǒng)會(huì)自動(dòng)為用戶定義一個(gè)與工程名同名的定義一個(gè)與工程名同名的命名命名空間??臻g。一個(gè)一個(gè)命名命名空間中可以包含多個(gè)類(lèi)??臻g中可以包含多個(gè)類(lèi)。 C#C#中,中,所有的函數(shù)都必須在類(lèi)中定義所有的函數(shù)都必須在類(lèi)中定義(不會(huì)出現(xiàn)類(lèi)之外的獨(dú)立函數(shù)),(不會(huì)出現(xiàn)類(lèi)之外的獨(dú)立函數(shù)),而任意而
48、任意一個(gè)類(lèi)又都是包含在某個(gè)命名空間中。一個(gè)類(lèi)又都是包含在某個(gè)命名空間中。命名空間可以嵌套。命名空間可以嵌套。namespace namespace 命名空間名命名空間名 class A class A class B class B 定義定義命名命名空間的格式:空間的格式:引用命名空間的類(lèi)的聲明方式:引用命名空間的類(lèi)的聲明方式:using using 命名空間名命名空間名; ;命名空間里,包含與被包含的關(guān)系用操作命名空間里,包含與被包含的關(guān)系用操作符(符(.)來(lái)表示,如:)來(lái)表示,如: C#中,將所有窗體中,將所有窗體控件類(lèi)都定義在如下命名空間中:控件類(lèi)都定義在如下命名空間中:System.W
49、indows.FormsSystem.Windows.Forms常用名字空間常用名字空間 、類(lèi)、類(lèi) 、函數(shù)、函數(shù)類(lèi)別類(lèi)別名字空間名字空間空間中部分類(lèi)空間中部分類(lèi)說(shuō)明說(shuō)明基本數(shù)基本數(shù)據(jù)據(jù)類(lèi)類(lèi)型型SystemSystemMath, String, Math, String, ConsoleConsole提供基本的算術(shù)函數(shù),字符提供基本的算術(shù)函數(shù),字符串處理,輸入輸出等串處理,輸入輸出等用戶圖用戶圖形形界界面面System.WindowSystem.Windows.Formss.FormsButton, Form, Button, Form, TextBoxTextBoxWindowsWindows
50、窗口程序中的控件窗口程序中的控件數(shù)據(jù)數(shù)據(jù)System.Data.OSystem.Data.OldDbldDbOleDbCommandOleDbCommandOleDbConnectiOleDbConnectiononADO.NETADO.NET連接操作數(shù)據(jù)庫(kù)的連接操作數(shù)據(jù)庫(kù)的各種類(lèi)對(duì)象各種類(lèi)對(duì)象集合數(shù)集合數(shù)據(jù)據(jù)結(jié)結(jié)構(gòu)構(gòu)System.CollecSystem.CollectionstionsArrayListArrayList, , LinkedListLinkedList常見(jiàn)數(shù)據(jù)結(jié)構(gòu)類(lèi)常見(jiàn)數(shù)據(jù)結(jié)構(gòu)類(lèi)1.4 C# 1.4 C# 面向?qū)ο蟪绦蛟O(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì)1.4.1 1.4.1 面向?qū)ο缶幊?/p>
51、基本概念面向?qū)ο缶幊袒靖拍?.2類(lèi)定義類(lèi)定義 1.4.3 1.4.3 繼承繼承 對(duì)象:對(duì)象:現(xiàn)實(shí)世界的客觀實(shí)體,具有屬性和行為?,F(xiàn)實(shí)世界的客觀實(shí)體,具有屬性和行為。屬性用來(lái)描述一個(gè)對(duì)象的靜態(tài)特征。屬性用來(lái)描述一個(gè)對(duì)象的靜態(tài)特征。 行為則描述一個(gè)對(duì)象的動(dòng)作。行為則描述一個(gè)對(duì)象的動(dòng)作。 類(lèi):類(lèi):對(duì)同一類(lèi)事物的共性特征的抽象。對(duì)同一類(lèi)事物的共性特征的抽象。1.4.1 1.4.1 面向?qū)ο缶幊袒靖拍蠲嫦驅(qū)ο缶幊袒靖拍?二者關(guān)系:二者關(guān)系:類(lèi)是對(duì)象的抽象,而對(duì)象是類(lèi)的具體實(shí)例。類(lèi)是對(duì)象的抽象,而對(duì)象是類(lèi)的具體實(shí)例。類(lèi)是抽象的,不占用內(nèi)存,而對(duì)象是具體類(lèi)是抽象的,不占用內(nèi)存,而對(duì)象是
52、具體的,占用存儲(chǔ)空間。的,占用存儲(chǔ)空間。 封裝:封裝:把屬性和方法歸納到一個(gè)整體中,形成一個(gè)完整把屬性和方法歸納到一個(gè)整體中,形成一個(gè)完整意義上的對(duì)象意義上的對(duì)象 。繼承:繼承:類(lèi)間的層次關(guān)系。通過(guò)繼承父類(lèi)來(lái)實(shí)現(xiàn)子類(lèi),類(lèi)間的層次關(guān)系。通過(guò)繼承父類(lèi)來(lái)實(shí)現(xiàn)子類(lèi),使子類(lèi)獲得父類(lèi)中已經(jīng)定義的可被繼承的內(nèi)使子類(lèi)獲得父類(lèi)中已經(jīng)定義的可被繼承的內(nèi)容,增強(qiáng)代碼的可重用性。容,增強(qiáng)代碼的可重用性。多態(tài):多態(tài):是基類(lèi)中定義的方法,被具體派生類(lèi)繼承之是基類(lèi)中定義的方法,被具體派生類(lèi)繼承之后,擁有不同的行為。面向?qū)ο蟮某绦蛟O(shè)計(jì)后,擁有不同的行為。面向?qū)ο蟮某绦蛟O(shè)計(jì)允許以一個(gè)抽象的基礎(chǔ)類(lèi)來(lái)定義一個(gè)對(duì)象,允許以一個(gè)抽象的
53、基礎(chǔ)類(lèi)來(lái)定義一個(gè)對(duì)象,而以一個(gè)派生類(lèi)來(lái)具體地生成一個(gè)對(duì)象。而以一個(gè)派生類(lèi)來(lái)具體地生成一個(gè)對(duì)象。 .2類(lèi)定義類(lèi)定義 訪問(wèn)修飾符訪問(wèn)修飾符類(lèi)修飾符類(lèi)修飾符 classclass ClassNameClassName 訪問(wèn)屬性訪問(wèn)屬性 修飾符修飾符 屬性定義屬性定義 構(gòu)造方法定義構(gòu)造方法定義 訪問(wèn)屬性訪問(wèn)屬性 修飾符修飾符 其他方法的定義其他方法的定義 類(lèi)的訪問(wèn)修飾符類(lèi)的訪問(wèn)修飾符, ,控制類(lèi)可被訪問(wèn)的范圍??刂祁?lèi)可被訪問(wèn)的范圍。如如:public:public,privateprivate,internal internal ,默認(rèn)為,默認(rèn)為internalinternal 。類(lèi)修
54、飾符,說(shuō)明類(lèi)的類(lèi)型,如類(lèi)修飾符,說(shuō)明類(lèi)的類(lèi)型,如: abstract: abstract,staticstatic。類(lèi)成員訪問(wèn)屬性,控制成員可被訪問(wèn)的范圍。類(lèi)成員訪問(wèn)屬性,控制成員可被訪問(wèn)的范圍。如:如:publicpublic和和privateprivate和和protectedprotected用法同用法同C+C+,一般,屬性成員的,一般,屬性成員的訪問(wèn)權(quán)限為訪問(wèn)權(quán)限為privateprivate,而成員方法的訪問(wèn)權(quán)限為,而成員方法的訪問(wèn)權(quán)限為publicpublic 。類(lèi)成員修飾符,說(shuō)明成員的類(lèi)型。類(lèi)成員修飾符,說(shuō)明成員的類(lèi)型。如:如:abstractabstract,staticsta
55、tic,virtualvirtual。暫不展開(kāi)討論各種修飾符,后續(xù)需要時(shí)再個(gè)別展開(kāi)介紹。暫不展開(kāi)討論各種修飾符,后續(xù)需要時(shí)再個(gè)別展開(kāi)介紹。說(shuō)明:說(shuō)明:不同于不同于C+C+的是,訪問(wèn)權(quán)限要對(duì)不同的方法和不的是,訪問(wèn)權(quán)限要對(duì)不同的方法和不同類(lèi)型的屬性一一說(shuō)明。同類(lèi)型的屬性一一說(shuō)明。如:如:public void input();public void input();public void public void getvaluegetvalue(); (); 構(gòu)造方法:又稱(chēng)構(gòu)造函數(shù),同構(gòu)造方法:又稱(chēng)構(gòu)造函數(shù),同C+C+,是個(gè)無(wú)函數(shù),是個(gè)無(wú)函數(shù)類(lèi)型,與類(lèi)同名,可重載的特殊函數(shù),功能是類(lèi)型,與類(lèi)同名
56、,可重載的特殊函數(shù),功能是初始化各屬性(數(shù)據(jù)成員)的值。初始化各屬性(數(shù)據(jù)成員)的值。設(shè)計(jì)一個(gè)類(lèi)的步驟設(shè)計(jì)一個(gè)類(lèi)的步驟: : 分析并描述出類(lèi)的屬性分析并描述出類(lèi)的屬性 設(shè)計(jì)類(lèi)的構(gòu)造函數(shù)設(shè)計(jì)類(lèi)的構(gòu)造函數(shù), , 初始化類(lèi)的各屬性,初始化類(lèi)的各屬性,以生成一個(gè)具體對(duì)象。以生成一個(gè)具體對(duì)象。 分析類(lèi)的行為,設(shè)計(jì)類(lèi)的不同方法分析類(lèi)的行為,設(shè)計(jì)類(lèi)的不同方法【例例】設(shè)計(jì)一個(gè)圓類(lèi),該類(lèi)具有求圓的面積和周長(zhǎng)的功能。設(shè)計(jì)一個(gè)圓類(lèi),該類(lèi)具有求圓的面積和周長(zhǎng)的功能。分析:描述一個(gè)圓的特征的屬性應(yīng)該是圓的半徑,從題意分析:描述一個(gè)圓的特征的屬性應(yīng)該是圓的半徑,從題意中得知,除了構(gòu)造函數(shù)外,該類(lèi)還具有求圓面積和周長(zhǎng)兩中得
57、知,除了構(gòu)造函數(shù)外,該類(lèi)還具有求圓面積和周長(zhǎng)兩個(gè)方法,故設(shè)計(jì)類(lèi)如下:個(gè)方法,故設(shè)計(jì)類(lèi)如下:class Circleclass Circle double r; double r; public public Circle(doubleCircle(double r)/ r)/構(gòu)造函數(shù)構(gòu)造函數(shù) this.rthis.r = r = r ; ; public double public double getAreagetArea() () return 3.14 return 3.14 * * r r * * r r ; ; public double public double getGirth
58、getGirth() () return 2 return 2* *3.14 3.14 * * r ; r ; 說(shuō)明:說(shuō)明:這里這里thisthis是指生成的對(duì)象本身,通過(guò)是指生成的對(duì)象本身,通過(guò)thisthis的使的使用,能夠區(qū)分開(kāi)對(duì)象的屬性用,能夠區(qū)分開(kāi)對(duì)象的屬性r r和形式參數(shù)和形式參數(shù)r r。一般:一般:在類(lèi)的構(gòu)造函數(shù)中,在類(lèi)的構(gòu)造函數(shù)中,thisthis代表正在構(gòu)造的對(duì)象代表正在構(gòu)造的對(duì)象本身。本身。在類(lèi)的方法中出現(xiàn)的在類(lèi)的方法中出現(xiàn)的thisthis代表調(diào)用方法作用的代表調(diào)用方法作用的對(duì)象。對(duì)象?!纠吭O(shè)計(jì)一個(gè)復(fù)數(shù)類(lèi)設(shè)計(jì)一個(gè)復(fù)數(shù)類(lèi)Sample,Sample,具有實(shí)現(xiàn)兩個(gè)復(fù)數(shù)具有實(shí)
59、現(xiàn)兩個(gè)復(fù)數(shù)相乘運(yùn)算的功能。相乘運(yùn)算的功能。 分析:描述一個(gè)分析:描述一個(gè)復(fù)數(shù)復(fù)數(shù)特征的屬性應(yīng)該是特征的屬性應(yīng)該是復(fù)數(shù)的實(shí)復(fù)數(shù)的實(shí)部和虛部部和虛部,從題意中得知,除了構(gòu)造函數(shù)外,該,從題意中得知,除了構(gòu)造函數(shù)外,該類(lèi)還具有求兩個(gè)復(fù)數(shù)乘積的功能,故設(shè)計(jì)類(lèi)如下:類(lèi)還具有求兩個(gè)復(fù)數(shù)乘積的功能,故設(shè)計(jì)類(lèi)如下:class Sampleclass Sample double re, im; double re, im; public Sample() public Sample() public Sample(double re, double im) public Sample(double re, do
60、uble im) this.re = re; this.im = im; this.re = re; this.im = im; public void getProduct(Sample s1, Sample s2) public void getProduct(Sample s1, Sample s2) this.re = s1.re this.re = s1.re * * s2.re - s1.im s2.re - s1.im * * s2.im; s2.im; this.im = s1.re this.im = s1.re * * s2.im + s2.re s2.im + s2.re
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度專(zhuān)業(yè)技術(shù)人員聘用協(xié)議樣本
- 2024年專(zhuān)業(yè)吊裝作業(yè)協(xié)議格式
- 2024年套房精裝修協(xié)議模板
- 2024年規(guī)范租車(chē)操作詳細(xì)協(xié)議模板
- 辦公廠房租賃協(xié)議模板(2024年度)
- 2024專(zhuān)用學(xué)校物資采購(gòu)協(xié)議模板
- DB11∕T 1693-2019 餐廚垃圾收集運(yùn)輸節(jié)能規(guī)范
- DB11∕T 1682-2019 城市軌道交通視頻監(jiān)視系統(tǒng)測(cè)試規(guī)范
- 不動(dòng)產(chǎn)項(xiàng)目出售協(xié)議(2024年度)
- 2024年賽事執(zhí)行協(xié)議樣本
- 《狼和小羊》PPT課件.ppt
- 神明—EZflame火焰檢測(cè)系統(tǒng)
- 新《固廢法》解讀(專(zhuān)業(yè)版)
- 個(gè)人簡(jiǎn)歷求職簡(jiǎn)歷課件.ppt
- 副神經(jīng)節(jié)瘤圖文.ppt
- 業(yè)務(wù)流程繪制方法IDEF和IDEFPPT課件
- (完整版)垃圾自動(dòng)分揀機(jī)構(gòu)PLC控制畢業(yè)設(shè)計(jì).doc
- 小學(xué)四年級(jí)音樂(lè)課程標(biāo)準(zhǔn)
- 我的一次教研經(jīng)歷
- 工業(yè)廠房中英文對(duì)照施工組織設(shè)計(jì)(土建、水電安裝)范本
- PCR儀使用手冊(cè)
評(píng)論
0/150
提交評(píng)論