- 1、本文档共69页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
类别与物件I(lassesandObjectsI)
類別與物件 I(Classes and Objects I) 鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所 結構化程式設計/逐步細分法 序列/分支/迴圈 虛擬碼 Magic number 7 加減 2 逐層分解工作 函式 軟體危機 物件導向程式設計(Object-Oriented Programming) 軟體IC/程式碼重覆使用( Code Reuse) 封裝(Encapsulation) 狀態、行為 模擬 繼承(Inheritance) 多型(Polymorphism) 程式 DiceSimulation (1/4) using System; namespace DiceSimulation { /* * 模擬擲骰子示範類別的宣告與物件的使用 * 3/16/2008 * * 測試規畫: * 六個點數出現次數應該大約相同 */ class Program { static void Main(string[] args) { 程式 DiceSimulation (2/4) int[] count = new int[6]; // 累計點數出現次數 for (int i = 0; i 6; ++i) { count[i] = 0; } const int N = 12000; // 總擲骰次數 int faceValue; Dice dice = new Dice(); // 擲骰N次 for (int i = 0; i N; ++i) { dice.Toss(); faceValue = dice.FaceValue; ++count[faceValue-1]; } 程式 DiceSimulation (3/4) // 印出結果 for (int i = 0; i 6; ++i) { Console.WriteLine( {0} appears {1} times , i + 1, count[i]); } } } 程式 DiceSimulation (4/4) public class Dice { int faceValue = 1; Random rand = new Random(); public int FaceValue { get { return faceValue; } set { faceValue = value; } } public void Toss() { faceValue = rand.Next() % 6 + 1; } } } 函式呼叫流程 類別(Class)觀念 堆疊(Stack)與堆積(Heap) 實值型別儲存方式 參考型別儲存方式 物件(Object)觀念 物件的設定(Assignment) UML 的類別符號 練習1 宣告並測試以下類別 程式 CalculatorTest (1/6) using System; namespace CalculatorTest { /* 測試類別Calculator以說明函式的使用 * 3/17/2007 */ class Program { static void Main(string[] args) { int op = 0; int operand1; int operand2; int result; Calulator calculator = new Calulator(); 程式 CalculatorTest (2/6) do { Console.Write( 指定運算: 0. 結束; 1. 加; 2. 減; 3. 乘; 4. 除: ); op = int.Parse(Console.ReadLine()); if (op == 0) break; if (op 4) continue; Console.Write(輸入第一個數字: ); operand1 = int.Parse(
文档评论(0)