面向對象程序設計-C#編程基礎_第1頁
面向對象程序設計-C#編程基礎_第2頁
面向對象程序設計-C#編程基礎_第3頁
面向對象程序設計-C#編程基礎_第4頁
面向對象程序設計-C#編程基礎_第5頁
已閱讀5頁,還剩43頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第2章C#編程基礎主講人:XXX——面向對象程序設計C#編程基礎基本數據類型

2變量與常量

1面向對象程序設計初步

32.1變量與常量2.1.1變量的含意2.1.2變量聲明2.1.3常數2.1.1變量的含意假設有兩數為x、y,我們想求出兩者之和,這在數學中表示為:x+y。要在程序中計算x、y的和,我們必須首先聲明將要指定給它們的數據類型。為其賦值之后,才能計算其和。

假設x、y都是整數。為了聲明指定給它們的數據類型是整數,可編寫如下語句:

intx;

inty;

進行此聲明后,即為x和y分配了存儲數據值的存儲位置。

這些存儲位置稱為“變量”。而x和y是與存儲位置關聯的名稱,稱為變量名。做出上述聲明之后,x和y的值只能是整數值。我們使用賦值運算符“=”給x和y賦值。例如:

x=100;

y=98;

此時x的值是100,y的值是98。2.1.2變量聲明在C#中,使用變量之前,必須首先聲明它。聲明變量的一般格式為:數據類型變量名;如何命名變量?給變量分配有意義的名稱;使用大小寫混合方案。該方案要求變量名的首字母小寫,變量名中每個單詞的首字母大寫。如newAccountBalance切忌使用C#的關鍵字雖然C#區分大小寫,但是不要僅僅通過大小寫的不同來區分不同的變量。如Sum和sum的同時使用。任務2.1計算路程任務2.1計算路程問題描述:有一輛汽車每小時可以行駛x公里,欲計算y小時能行駛多少公里(假設x和y均為整數)。編寫一程序解決該問題。解決此問題需要使用公式:路程=速度×時間。要編寫解決該問題的程序,可以使用3個變量:v、t和s。變量v用于存放速度的值,變量t用于存放時間的值,變量s用于存放路程的值。2.1.3常數1.常數的含義2.聲明常數注意:盡管常數與變量有些相像,但不能像變量一樣更改其值或給它們賦新值。2.1.3常數使用const關鍵字以及該常量值的類型來聲明一個常量聲明常量時必須對其賦值//地球的半徑為6378kmconstintearthRadius=6378;//到太陽的平均距離為149600000kmconstlongmeanDistanceToSun=149600000;//平均軌道速度是29.79km/sconstdoublemeanOrbitalVelocity=29.79D;2.1.3常數----討論為什么有必要使用常量?列舉更多的需要使用常量的情況;-防止一些固定的量被無意修改,導致程序運算出現錯誤;-可能的情況有物理化學數學等學科在計算中使用的常量,一些現實中固定不變的量,例如英文字母的個數等等。2.2基本數據類型每個變量都具有一個類型,以確定哪些值可以存儲在該變量中。算術運算基本數據類型的相互轉換算術溢出及顯式轉換溢出布爾類型整型字符數據類型非整型格式化輸出2.2.1整型C#支持9種整型:sbyte(8位有符號整型)、byte(8位無符號整型)、short(16位有符號整型)、ushort(16位無符號整型)、int(32位有符號整型)、uint(32位無符號整型)、long(64位有符號整型)、和ulong(64位無符號整型)。如果整數表示的值超出了ulong的范圍,就會產生編譯錯誤。如果某個變量總是存儲整數而不是帶小數的數字,則將它聲明為以上類型中的一種。沒有一個數值類型是存放在單個字節中的。但有時數據要存放成字節,必須能訪問各個字節。這時該數據可存放在byte、sbyte類型的變量中,如果某個變量包含二進制數據或未知種類的數據,則將其聲明為byte類型。任務2.2:整數相乘主要知識點:①讀取從文本框中輸入的值。②將計算結果顯示在文本框中。③將數字字符串轉換為整數。④異常(格式異常、溢出異常)處理。問題描述:

用戶從鍵盤輸入整數,當單擊【相乘】按鈕時,計算它們的積,并顯示結果。1.創建項目和窗體2.編寫應用程序的代碼3.測試應用程序2.2.5算術運算1.算術表達式與算術運算符在前面的示例中,op1*op2、op1/op2、5/3都是算術表達式,因為它們都由算術運算符和操作數組成。算術運算符(如*)指定了數值計算。2.算術運算符優先級規則在C#中,算術運算符優先級規則與我們所學的標準代數中的算術運算規則是一樣的。表2.4算術運算符課題討論1、讀右列中的代碼,然后回答問題。intx=10;inty=x++;?y的值是什么,為什么?2、讀右列中的代碼,然后回答問題。x+=10;?x的值是什么,為什么?3、讀右列中的代碼,然后回答問題。intz=30;inta=x+y*z;?a的值是什么?為什么?將該代碼改寫成更具有可讀性的形式。4、讀右列中的代碼,然后回答問題。inta=10;intb=a++;boolmyBool=(a==b);?這段代碼做了些什么?myBool的值是多少?實訓內容:制作一個簡單的加減運算器設計如下圖windows應用程序做簡單的整數加法和減發運算。注意:異常的處理。2.2.3非整型非整型數據類型是同時使用整數部分和小數部分來表示數值的類型。非整型數據類型有:float(7位有效位)、double(15到16位有效位)和decimal(28到29位有效位)。它們都是有符號類型。如果某個變量可以包含小數,則將其聲明為這些類型之一。如果希望實數被視為非整型類型,請使用文本類型字符,文本類型字符用M表示decimal,用F表示float,用D表示double。2.2.3非整型實踐操作:設計一個應用程序,輸入以攝氏為單位的溫度,輸出以華氏為單位的溫度。攝氏與華氏的公式為:F=1.8*C+32實訓內容:設計一個應用程序,輸入圓柱體的高和直徑,分別計算出表面積和體積。要求將∏(3.14159)設置為常量。注意:異常的處理。任務2.4:貸款計算器主要知識點:①Single.Parse(s)方法。②Decimal.Parse(s)方法。③格式化字符串。④求冪運算。問題描述:編寫一貸款計數器程序,對于特定的貸款數量、年利率和貸款周期,計算月付款和總付款。計算月付款的公式為:月付款=p*r/(1-(1+r)-n)其中p為貸款金額;r為月利率(年利率除以12),以0到1(100%)之間的數給出;n是還完貸款需要的時間(以月為單位)。解決方案:1.創建項目和窗體2.編寫應用程序的代碼3.測試應用程序2.2.4格式化輸出可通過調用String.Format方法格式化輸出信息。String.Format方法的一般格式為:String.Format(formats,參數列表);其中formats為包含一個或多個格式規范{N,M:Sn}的字符串,String.Format方法返回formats字符串,只不過將formats字符串中的第一個格式規范替換為參數列表中的第一個參數的值(該值被轉換為字符串),第二個格式規范替換為參數列表中的第二個參數的值(該值被轉換為字符串),依此類推。2.2.4格式化輸出在格式規范{N,M:Sn}中,N是從零開始的整數,表示要格式化的參數,0表示要格式化的參數是參數列表中的第一個參數,1表示要格式化的參數是參數列表中的第二個參數,依此類推。M是整數(可選),指示包含格式化值的區域的寬度,剩余部分用空格填充。如果M的符號為負,則格式化值在區域中左對齊;如果M的符號為正,則該值右對齊。S是格式字符(可選),n為整數(可選),指定小數位數。在格式規范{N,M:Sn}中,只有N是必需的,其他兩項可有可無。表2.3格式化輸出說明2.2.4格式化輸出實踐操作:將借貸計算器的練習按照書上的講解,自己實現。要求:將輸出的英文提示改成中文,同時將輸出對齊。

完成后,提交檢查。實訓內容:設計一個應用程序,計算“身體質量指數”(BMI),反映體重有關的健康問題的危險程序。BMI計算公式為:BMI=w/h2其中:w是以千克為單位的體重。H是以米為單位的身高。要求:計算結果保留2位小數。

窗體界面自行設計。2.2.2字符數據類型字符數據類型char用來處理Unicode字符。Unicode字符是16位字符,用于表示世界上多數已知的書面語言。char變量以無符號的16位(兩個字節)數字的形式存儲,取值范圍為0到65535。每個數值代表一個Unicode字符。Unicode的前128個數值(0~127)對應于標準美國鍵盤上的字母和符號。這前128個數值與ASCII字符集中定義的數值相同。隨后的128個數值(128到255)表示特殊字符,如拉丁字母、重音符號、貨幣符號以及分數。其余的數值用于表示不同種類的符號,包括世界范圍的各種文本字符、音調符號以及數學和技術符號。任務2.3:字符檢查問題描述:從鍵盤輸入一個字符,檢查輸入字符是否為字母字符或數字,如果不是,則輸出“輸入的字符不是字母字符或數字”。如果輸入的字符是字母字符,則輸出該字母字符的整數值。在任何一種情況下,都會顯示適當的消息。解決方案:1.創建項目和窗體2.編寫應用程序的代碼3.測試應用程序2.2.6基本數據類型的相互轉換程序中在給變量賦值或進行數據間混合運算時,要注意所賦值的數據類型是否與變量的數據類型一致、進行混合運算的數據的類型是否一致。如果它們的類型不同,則有兩種情況:隱式轉換和顯式轉換。下面我們對隱式轉換和顯式轉換進行討論。1.隱式數值轉換表2.6顯示了預定義的隱式數值轉換。隱式轉換可能在多種情形下發生,包括在賦值語句中和數據間混合運算時及調用方法時。前面講過數據間混合運算時,可能發生隱式轉換,稱為“數據提升”的隱式轉換應用于算術操作符的操作數。提升基于表2.7的規則,這種轉換之所以稱為“提升”,是因為操作數是從低精度轉換為高精度。2.顯式轉換表2.6隱式數值轉換任務2.5:隱式和強制數值轉換任務2.5:隱式和強制數值轉換問題描述:創建一簡單的程序,測試隱式和強制數值轉換。表2.7算術提升規則2.2.7算術溢出及顯式轉換溢出算術運算符(+、-、*、/)產生的結果及顯式數值轉換的結果可能會超出目標類型可能值的范圍。在一般情況下:可能會丟失數據或引發異常。任務2.6:算術溢出及顯式轉換溢出問題描述:創建一簡單的程序,測試算術溢出及顯式轉換溢出。2.2.8布爾類型bool數據類型是被解釋為true或false的無符號值。如果某個變量只能包含“真/假”、“是/否”或“開/關”信息,則將它聲明為bool類型。bool沒有文本類型字符。關系運算符都返回bool類型的結果。關系運算符為==、!=、<、>、<=和>=,關系運算符將值彼此比較,結果為一bool類型的值,詳見表2.8。任務2.7:數值比較問題描述:創建一簡單的程序,測試布爾型變量、關系運算符及關系表達式。表2.8關系運算符2.3.1類和對象2.3.2消息和方法2.3.3使用現有的類2.3.4創建自己的類2.3面向對象程序設計初步面向對象程序設計中兩個最重要的概論是類和對象。從廣義的術語來講,對象是一個可以想象的物體,它既可是有形的也可是無形的。對象具有屬性。例如,按鈕或標簽之類的GUI對象具有屬性,屬性是對象的特性。如按鈕具有名稱、寬度、高度和標題等屬性。窗口具有名稱、寬度、高度、標題和背景顏色等屬性。對象具有行為方式(方法),它們用來描述對象可以執行的操作。例如,按鈕可以被禁用、可以設置標題。標簽可以顯示文本。窗口可以改變大小,還可以出現或消失。表2.9列出了某些GUI對象及其屬性和方法。又如,人具有姓名、性別、年齡等屬性。2.3.1類和對象類是對象的符號表示形式,它是計算機用來創建對象的模板。與藍圖描述構成建筑的項一樣,類以同樣的方式描述組成對象的屬性和方法等。就像一幅藍圖可以用于建成多座建筑一樣,一個類也可以用于根據需要創建多個對象。如果使用藍圖類比,類就是藍圖,對象就是基于該藍圖的建筑。又如人是一個類,你是人,我是人,都是人類的實例或稱對象。一個類描述一類事物,描述這些事物所應具有的屬性,如人有姓名、性別、年齡等屬性。一個對象是類的一個實例,它具有確定的屬性值,如王飛(人的實例)年齡是20,性別是男。人類只有一個,人類的實例可以有無數多個。2.3.1類和對象表2.9GUI對象及其屬性和方法在編寫面向對象程序的過程中,我們首先定義類,當程序開始運行時,由這些類創建對象以完成任務。任務可以是計算月付款、計算總付款、格式化字符串等。為了命令類或對象執行一項任務,我們要為其發送一個消息,例如,我們發送消息pow給Math類,以計算指數。處理消息的類或對象必需相應編程,不能將消息隨便發送給一個類或對象,而只能將消息發送給能夠理解這個消息的類或對象。處理所收到消息的類或對象必須有對應的方法,也就是類或對象為完成一項任務而執行的指令序列。只能有對象調用的方法為實例方法,否則是靜態方法,靜態方法將在第5章詳細講述。向對象發送消息使對象調用方法,向類發送消息將調用類的方法。注意,發送給類或對象的消息必須與方法的名稱相同。向類或對象發送調用方法的消息,可能以參數的形式來發送值。2.3.2消息和方法再看一個靜態方法的例子。Math類定義了靜態方法pow,該方法按參數指定的值,計算指數。由于Math類有靜態方法pow的定義,我們可以向Math類發送pow消息,按參數指定的值,計算指數。如以下代碼計算23的值,并賦給變量b:doubleb=Math.pow(2,3);圖2.14描述了消息的發送過程。方法可能返回值也可能不返回值,這要看方法的定義。在后面的章節中我們將講述方法的定義。2.3.2消息和方法2.3.2消息和方法前面章節我們已經使用了.NET類庫中的類,如Math類、MessageBox類。下面我們使用.NET類庫中的類String。1.String類任務2.8:文字游戲編寫一個與用戶一起玩的Eggy-Peggy文字游戲的應用程序,該程序把用戶指定的字符串轉換為新字符串,在指定字符串的所有元音字母前增加“egg”單詞。如圖2.15所示。2.3.3使用現有的類2.3.3使用現有的類String類聲明對象(對象變量):類名對象名;創建對象:new類名(參數列表);消息傳遞(調用方法或讀取或設置屬性的值)對象名.方法名(參數列表)對象名.屬性名(可選參數)對象名.屬性名=表達式匿名對象對象初始化方法連接String對象2.3.3使用現有的類String類的常用屬性及方法常用屬性:Length:獲取實例中的字符數常用方法:

溫馨提示

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

最新文檔

評論

0/150

提交評論