C# 面向對象小解析
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
下來我們開始了解C#的面向對象方面知識,首先來認識一下面向對象。 面向對象: 面向對象程序設計(Object Oriented Programming,OOP)是一種計算機編程架構。OOP的一條基本原則是計算機程序由單個能夠起到子程序作用的單元或對象組合而成。OOP達到了軟件工程的三個主要目標:重用性、靈活性和擴展性。OOP=對象+類+繼承+多態+消息,其中核心概念是類和對象。 通過百度百科來看,發現這說的是個神馬玩意兒,還是給一個切實生活的例子來看,以洗衣服為例,設定兩個對象,一個是洗衣機,一個是人,人去完成洗衣服這個動作,對于洗衣機有以下方法:洗衣服方法,脫水方法,烘干方法。對于人有以下方法:加衣服方法,加洗衣粉方法,按啟動按鈕方法。 然后開始執行這個流程:人加衣服--人加洗衣服--人按啟動按鈕--洗衣機洗衣服--洗衣機脫水--洗衣機烘干,通過一個個方法來完成洗衣服這個流程,簡單來說就是某個對象執行某個動作完成某件事,而不是直接一步步執行方法,那是面向過程。 面向對象有三大特性:封裝,繼承,多態,在文章中會體現出來。 對于面向對象的概率有了粗略的了解,接下來先來了解如何檢測異常 異常處理: 異常就是程序中有語法錯誤或者用戶輸入錯誤等等,這會導致程序無法運行,首先系統有它自己的異常處理方法,例如下面我定義了一個變量stu,類型為string,但我賦給它一個int類型數據,系統直接報錯,說無法給stu一個int類型數據。 當我們想完成一個兩個數加法運算,讓用戶輸入數據,來執行加法,首先我們知道C#輸入只能是字符串類型,要利用Convert來將string類型轉為值類型來,而在輸入時,如果用戶輸入錯誤,輸入的不是數字,那程序就直接結束并報錯,如下所示: 而我們可以利用異常處理語句來讓程序遇到錯誤時對錯誤進行解決,來完成下一步動作,異常處理語句有以下三個關鍵詞:try,catch,finally try:一個 try 塊標識了一個將被激活的特定的異常的代碼塊。后跟一個或多個 catch 塊。(就是可能出現異常的代碼) catch:程序通過異常處理程序捕獲異常。(就是要捕獲哪方面異常) finally:執行給定的語句,不管異常是否被拋出都會執行。 try { // 可能會異常的語句 } catch(ExceptionName e) { // 處理方法 } finally { // 執行語句 } 關于有哪些異常我們來看菜鳥教程:異常類主要來自System.Exception類,所以Exception就包含所有可能的異常。 下面我們就利用異常處理來完成對加法運算異常的檢測,讓程序在遇到異常時不是直接結束程序,而是解決異常,繼續執行程序。
如果有finally語句就是以下效果: finally { Console.WriteLine("管你有沒有異常,我就要輸出"); } 可以發現當有異常時,系統除了會輸出處于catch和finally中的語句外,不會執行其他的語句,當沒有異常時才會接下去執行。 了解完異常處理,接下來開始面向對象的有關內容,首先是C#中的類。 類(Class: 當你定義一個類時,你定義了一個數據類型的藍圖。這實際上并沒有定義任何的數據,但它定義了類的名稱意味著什么,也就是說,類的對象由什么組成及在這個對象上可執行什么操作。對象是類的實例。構成類的方法和變量稱為類的成員。 --- 菜鳥教程 類的定義: 關鍵字class,后面接類的名稱,花括號中為類的主體。 如何創建一個類: 其實我們創建一個程序時,就創建了一個類,如圖所示,這是一個剛創建的程序文件,它就自動生成一個名為Program的類,這個名字和文件名是一樣的。 接下來演示如何創建一個類,我們創建一個名為Car的類。 這樣我們創建好了一個名為Car的類,這些using都是會自動生成的,然后我們可以給類中添加成員。成員要有訪問表示符,默認為private(私有的),此時無法直接在其他類中使用,設為public(公共的)就可以隨意使用了。 public string brand; // 牌子 public int speed; // 速度 private int maxSpeed; // 最大速度 public string weight; // 重量 如何使用類中的成員:首先要new一個對象來使用這個類。如下所示: Car car1 = new Car(); car1.brand = "瑪莎拉蒂"; car1.speed = 270; car1.weight = "1.5T"; 這樣就可以使用類中定義的成員了,可以看到里面缺少了maxSpeed這個成員,因為它的訪問符為private,所以不能直接使用,要在類中去添加方法。如下所示: public void SetMaxSpeed(int temp) // 得到數據 { maxSpeed = temp; } public int GetMaxSpeed() // 輸出數據 { return maxSpeed; } 這樣就可以使用maxSpeed了,我還在類中寫了一個輸出方法,方便我們輸出相關信息。 類的使用就可以體現出封裝,將我們的一些方法寫在一個程序中,在通過主程序去調用這個類中的方法,從而讓主程序顯的更加簡潔明了。 構造函數: 構造函數是類中一個特殊的成員函數,構造函數的定義沒有返回類型。定義構造函數后,每在主程序中創建一個新的對象就會使用這個構造函數。如下所示: public Car() { Console.WriteLine("我是構造函數"); } 默認的構造函數是沒有參數的,如果加上參數就可以為你的成員進行初始化,如下所示: public Car(int speedA) { speed = speedA; Console.WriteLine("對象創建成功,速度默認為 = {0}", speedA); } 屬性: 屬性主要用于外部來訪問和使用內部的私有成員變量,例如我們上面要使用maxSpeed變量,要定義兩個方法才能使用這個變量,而使用屬性就可以只定義一個方法就可以使用了。如下所示: public int MaxSpeed { get { return maxSpeed; } set // 這里默認值是value { maxSpeed = value; } } car1.MaxSpeed = 325; Console.WriteLine(car1.MaxSpeed); 今日小題:編寫一個程序,倒序輸出一個數,不輸出這個數開始的0和結束的0,例如00520520 ---> 25025 我們直接從輸入的最后一個數開始,利用求余運算--"%",來得到最后一個數,給他一個判斷看他是否為0,如果不為0就讓他輸出后續數字,設定一個標志位開始為false,判斷最后一個數是否為0,為0則不管,不為0則標志位為true,循環條件為p != 0,循環的最后讓p = p / 10;就使這個數不斷減少一位,少到為0時就表示前面的數都是0了,就不用管了。
由于輸出是一個數一個數輸出,所以輸出語句用Write避免換行。 該文章在 2024/1/31 15:55:41 編輯過 |
關鍵字查詢
相關文章
正在查詢... |