Microsoft Word - 5.doc

Size: px
Start display at page:

Download "Microsoft Word - 5.doc"

Transcription

1 物件導向程式設計 Object Oriented Programming 本章重點 5-1 何謂物件 (Object)? 5-2 類別的設計 (Class Implement) 5-3 物件的生命週期 (The Life Cycle of an Object) 5-4 類別的繼承 (Class Inheritance) 5-5 抽象類別 (Abstract Class) 5-6 介面 (Interface) 5-7 物件 ( 抽象 ) 的資料型態及相關類別 5-8 內部類別 (Inner Class) 5-9 列舉型態 (Enumerated Type) 5-10 集合類別 (Collection Class) 5-11 對映類別 (Map Class) 5-12 泛型類別 (Generics Class) 5-13 套件 (Packages) 5-14 問題與練習 (Questions and Exercises) CHAPTER

2 程式設計方法隨著軟體工程的進展由最早的非結構化程式設計到現在的物件導向程式設計, 其間經過結構化程式設計 (Structured Programming ) 和模組化程式設計 (Modular Programming) 圖 5 非結構化程式設計是所有指令以 top-down 方式執行, 結構化程式設計則是將程式中重複的片斷取出寫成函數, 模組化程式設計是結構化程式設計的延伸, 將相同功能的函數結合在一起, 加上處理的資料變數成為獨立的模組 物件和模組觀念類似, 但最大不同是 : 模組是原始碼的重複使用, 物件是類別 ( 英文稱 Class, 是原始碼 Compile 後的產物 ) 的重複使用 模組和物件的設計方式都能加快設計速度 增加系統的穩定 5-1 物件導向程式的設計觀念 (OOP Concepts) 何謂物件 (Object)? 我們生活四周存在著許多的 物件, 如有形物件的汽車 微波爐等, 和無形物件的銀行帳戶 學生成績等 不管那種物件都可用狀態 (State) 及行為 (Behavior) 兩種事物來描述, 如汽車的車速 檔數是狀態的描述, 加速 ( 減速 ) 換檔是行為的描述 銀行帳戶的餘額 利息是狀態的描述, 存款 ( 提款 ) 結清是行為的描述 軟體上的物件是一組變數及其相關函數 ( 或稱方法 method) 所組成的軟體單位 變數是記錄物件的狀態 ( 或稱屬性 properties), 函數是描述物件的行為 ( 或稱功能 functions) 5-2

3 第五章 物件導向程式設計 圖 如下圖是一個描述汽車的軟體物件 它有三個記錄汽車屬性的變數及三個相關的函數 圖 何謂訊息 (Message)? 一個男生要約班上的女孩出去吃飯, 腦筋裡想要送出的資訊應該是 : 約會的對象 ( 如美蘭 ) 約會的方式( 如吃飯 ) 及吃飯地點 ( 如希爾頓餐廳 ) 三樣資訊合起來就是一個訊息, 接受邀約的女孩接到這個訊息才能有所回應 也就是說當物件 A 要執行物件 B 內的函數時, 物件 A 所丟出來的資訊就是訊息 5-3

4 圖 訊息內容必須包括執行者 ( 那個物件 ) 執行什麼( 物件內那個函數 ) 以及函數執行所需要的資料 如下圖顯示訊息包括三部份 : 接受訊息物件的名稱 ( 如 : YourCar) 函數名稱( 如 :changegear) 及傳給函數的變數 ( 如 :lowergear) 圖 何謂類別 (Class)? 汽車是根據汽車藍圖 (Blueprint) 製造出來, 物件也是根據它的藍圖所產生, 而類別就是據以產生物件的藍圖, 它描述物件內所有的變數及函數 如前述汽車的類別 : 5-4

5 第五章 物件導向程式設計 圖 一張汽車藍圖可以製造出許多同款的汽車, 一個類別可以產生任何數量的物件 圖 類別又如同製作餅乾的壓模, 一個壓模可以製作出許多相同形狀的餅乾, 類別也能產生許多的物件 圖

6 相同類別的不同物件, 有著相同的函數, 所以一個執行函數的訊息, 要指明是那個物件的那個函數 如要執行 changegear, 要指明那部車的 changegear 另外變數也是各有一套, 分別記錄物件各自的狀態 如不同車子的使用狀態未必相同, 你的車開每小時 50 公里, 我的車開每小時 40 公里, 所以一個存取變數資料, 也要指明是那個物件的那個變數 圖 何謂封裝 (Encapsulation)? 封裝的目的是讓使用者不需知道物件內部是如何運作, 就能透過操作介面, 完成使用的目的, 如日常生活的微波爐 圖 軟體上所謂的封裝是指將軟體中的變數及使用變數的函數封裝在一起成為一個物件, 並依需要設定為多重的控管等級 對 JAVA 而言, 將資料封裝為一個類別 Class, 每個類別中的變數或函數可以被設定為隱密的 private 或公開的 public, 以確保類別內的變數和函數, 能被我們正確的存取和使用, 即使我們不了解函數實際運作, 只要知道如何正確使用類別的函數就能達到使用目的, 而不致發生錯誤 5-6

7 第五章 物件導向程式設計 圖 如我們想要由鍵盤輸入資料, 只要知道如何使用 Scanner 類別下的函數即可, 而無需知道該函數是如何寫的 5-7

8 5-2 類別的設計 (Class Implement) 物件的使用必須先有物件的存在, 而要產生物件必須先有描述 ( 定義 ) 物件的藍圖 即類別, 所以我們必須先談類別的設計, 再談物件的使用 類別的定義 (The Class Definition) 圖 將前面的汽車藍圖用程式指令來定義, 可寫成 : public class Car { // 定義類別名稱, 名稱前面一定是 public class // 以下稱實作變數 instance variables ( 或稱變數成員 data member) private int currentspeed; private int currentcadence; public int currentgear; // 以下稱實作函數 instance method ( 或稱函數成員 member function) public void speed(int intspeed) { currentspeed += intspeed; public void brake() { currentspeed = 0; public void changegear(int GearNo) { currentgear = GearNo; 1. 定義類別標題 public class 類別名稱 { // 名稱前面一定是 public class 5-8

9 第五章 物件導向程式設計 如 public class Car { 2. 定義類別變數與函數在類別標題後的 block 內定義類別變數與函數, 類別的變數與函數稱為實作變數 instance variables 與實作函數 instance method, 它們的特性是必須透過物件的產生才能生效, 不像一般的變數與函數可以直接拿來使用 擷取方式定義變數型態變數名稱 ; 擷取方式定義函數回應型態函數名稱 ( 函數參數 ); 如 private int currentspeed; public void changegear(int GearNo) { 類別中的變數與函數必須根據使用方式與限制給予適當的定義, 即給予擷取方式定義 access modifiers 又稱能見度定義 visibility modifiers 或擷取等級 access level, 可分 : (1) public private 及 protected: "public", 意指物件的使用者可以讀取這些變數或執行這些函數 如果不要物件的使用者讀取這些變數或執行這些函數, 將擷取方式定義設為 "private" 或 protected 圖

10 如上例使用者程式不能直接擷取 "currentspeed" 及 "currentcadence 內的資料 必須透過 public 的函數來執行, 原因是為了物件資料的一致, 統一由物件內的函數來讀寫 至於 protected 則配合類別的繼承使用 ( 請參閱 5-4 類別的繼承 ), 當類別中的變數或函數限制於本身或繼承才能使用時, 則可定義為 protected 圖 (2) 各別 instance 及共用 Class (Static) 如果同一類別的每個物件各有自己的一套變數或函數時, 這些變數或函數稱為個別變數 (Instance variables) 或個別函數 (Instance methods) 如果同一類別的每個物件共用一個變數或函數時, 這個變數或函數稱為類別 ( 或靜態 ) 變數或類別 ( 或靜態 ) 函數, 它們以 "static" 關鍵字標註 如各計程車物件除了個別的油料 gas 外, 在車行還有個共同的油料庫 gastank, 各計程車加油時各物件的 gas 會增加, 但共有的 gastank 會減少 public class Taxi { public static int gastank; private int gas; public void fillgas(int qty){ gas+=qty; // 加油到計程車油箱 gastank-=qty; // 從油料庫取油 5-10

11 第五章 物件導向程式設計 圖 其他部份與基礎篇所介紹的變數定義 函數定義相同, 請參閱該部份章節 UML 在 JAVA 的使用 (UML in JAVA) UML 為 Unified Modeling Language 的縮寫, 中譯為 統一塑模語言 UML 並不是程式語言, 而是一種軟體藍圖的表示方式, 在 JAVA 是用來描述類別的內容, 由 UML 表示圖我們可以概括的了解一個類別的內容 我們經常被要求根據 UML 圖去完成類別的定義, 也有機會對專案進行分析寫成 UML 圖交給程式設計師設計程式, 所以 UML 圖是軟體開發同仁間溝通的一種方式 如汽車類別的 UML 寫成 : 圖 第一格表類別名稱, 第二格描述變數, 第三格描述函數 "+" 表該變數或函數為 public,"-" 表該變數或函數為 private "()" 裡面表輸入的變數名稱與型態 ":" 後面表輸出的資料型態 5-11

12 下圖是字串類別 String Class 的 UML, 可以清楚的了解到它的內容 : 圖 實例介紹 時間類別 Time Class 的範例 1. 問題描述 圖

13 第五章 物件導向程式設計 假設我們要寫個程式記錄徑賽選手的成績, 我們把目標放在設計一個新的資料型態 暫時稱它為 CTime 為了比賽需要它必須有時 分 秒的資料記錄 一旦這個資料型態設計好我們可以用在任何需要記錄時間的程式 首先我們想 : 物件的使用者對這個 CTime 物件會有那些動作要求? 1. 設定時間 2. 讀取時間, 細分為時 分 秒的讀取 3. 顯示時間每個動作寫成程式碼就是一個函數, 這些函數合起來就是 CTime 類別的公用介面 : boolean settime(int hours,int mins,int secs); int gethours(); int getmins(); int getsecs(); void print(); 設定時間有可能資料錯誤, 函數要做必要的檢查並予回應, 所以設定時間函數設有 boolean 的回應值 另外在公用介面內必須至少有一個建構函數 Construtor 用以產生物件, 由於可以有一個以上方式產生物件, 所以建構函數可以不止一個 比如 CTime 物件可以不設初值產生, 也可以設定初值產生, 因此我們需要在公用介面增加兩個建構函數 : CTime(); CTime(int hours,int mins,int secs); 建構函數是類別內的一個會員函數, 當宣告類別的物件時它會自動執行 建構函數是用來設定物件的初始狀態 當建構函數沒有參數傳入時稱為預設的 default 建構函數, 否則稱為參數型的建構函數 5-13

14 建構函數有一些特別規定 : 函數名稱必須與類別名稱相同 它沒有回應值, 也不必設定 void 可有多個建構函數, 當然它們的函數名稱都必須與類別名稱一樣, 但它們的簽樣 Signature 不能相同 函數名稱的命名原則雖然與變數名稱的命名原則相同, 但變數名稱在有效範圍內不能重複宣告 ( 請參考 變數宣告位置 ), 否則鬧雙包時電腦無從判斷你要的資料是那一個, 而函數的識別是根據它的簽樣 Signature, 所以它們的名稱可以相同, 但簽樣不能相同, 這種名稱相同簽樣不同的情形稱為函數的多重定義 overloading 函數的簽樣包括名稱 參數型態與參數數目, 函數簽樣是電腦認定函數的識別 一個類別內可定義多個建構函數就是函數多重定義的應用 下列幾個函數的名稱相同但簽樣不同, 是容許同時存在的 : func(); func(int a); func(double a); func(int a, int b); 如果不是建構函數雖無必要使用多重定義, 但在使用上有其方便性, 如在 java.lang.string 類別的 valueof() 函數就有好幾個版本, 不同版本將不同型態的資料轉成字串 : static String valueof(boolean b) static String valueof(char c) static String valueof(char[] data) static String valueof(char[] data, int offset, int count) static String valueof(double d) static String valueof(float f) static String valueof(int i) static String valueof(long l) static String valueof(object obj) 5-14

15 第五章 物件導向程式設計 再回到主題 : 除了公用介面的函數外, 還需要與這些函數相關的資料, 也就是時 分 秒的時間記錄, 如下面三欄 : int m_hours; int m_mins; int m_secs; 這些公用介面的函數都允許使用者引用, 擷取方式定義都定為 public, 而物件中變數的存取已透過函數處理, 使用者不能直接引用, 擷取方式定義定為 private 以 UML 表示如下 : 圖 類別的程式設計 (1) 建構函數 Constructors 預設的建構函數寫成 : CTime(){ m_hours=0; m_mins=0; m_secs=0; 5-15

16 ... 當物件使用者以下列指令產生 CTime 類別的物件時, 自動執行此建構函數, 執行後 mytime 物件的時間初值會設成 0: CTime mytime = new CTime();... 參數型的建構函數寫成 : CTime(int hours, int mins, int secs) { m_hours= hours; m_mins= mins; m_secs= secs;... 當物件使用者以下列指令產生 CTime 類別的物件時, 自動執行此建構函數, 執行後 mytime 物件的時 分 秒初值會分別設成 : CTime mytime = new CTime(12,45,30);... (2) 成員函數 member functions public boolean settime(int hours, int mins, int secs){ if (!isvalidtime(hours, mins, secs)) // 請參閱本節 (3) 補助函數說明 return false; else { m_hours=hours; m_mins=mins; m_secs=secs; return true; 5-16

17 第五章 物件導向程式設計 執行後 : 如果輸入的資料合理, 成員變數的時 分 秒初值會分別設成 hours, mins, secs, 並回應 true, 否則時間初值不會改變, 然後回應 false public int gethours(){ return m_hours; 執行後 : 回應時的設定值 m_hours public int getmins(){ return m_mins; 執行後 : 回應分的設定值 m_mins public int getsecs(){ return m_secs; 執行後 : 回應秒的設定值 m_secs public void print(){ System.out.print(m_hours+":"); System.out.print((m_mins<10?"0":"")+m_mins+":"); System.out.println((m_secs<10?"0":"")+m_secs); 執行後 : 時間會顯示在螢幕, 格式為 hh:mm:ss 在 print 函數中為了將時間資料顯示整齊 ( 如將 4:7:1 顯示為 4:07:01), 我們使用了一個 JAVA 的運算元 -?:, 其用法如下 : (Boolean expression? do if true : do if false) 當邏輯判斷式結果為 真 時, 以 do if true 為回應值, 否則以 do if false 為回應值 應用在這裡是當分 秒只有一位時前面多加個 0, 即分 秒小於 10 時, 顯示 0, 否則不顯示任何字元 ( 即 ) 5-17

18 (3) 補助函數 auxiliary function SetTime 函數在設定時間前需要先檢查使用者傳入的時間是否合理, 這個檢查是由補助函數 isvalidtime 執行, 它不屬於類別的成員函數 private boolean isvalidtime(int hours,int mins,int secs) { return ( hours >=0 && hours < 24 && mins >= 0 && mins < 60&& secs >= 0 && secs < 60 ); 執行後 : 如果傳入的時間合理回應 true 否則回應 false 因為這個函數只能被成員函數或建構函數所引用, 不能為物件使用者所引用, 所以將它的擷取方式定義設為 private 增加了 isvalidtime 補助函數以後,Ctime 的 UML 表示圖改為 : 以上類別程式重新整理如下 : 圖 public class CTime { // data members private int m_hours; private int m_mins; private int m_secs; // constructors public CTime(){ m_hours=0; m_mins=0; 5-18

19 第五章 物件導向程式設計 m_secs=0; public CTime(int hours, int mins, int secs) { m_hours= hours; m_mins= mins; m_secs= secs; // member methods public boolean settime(int hours, int mins, int secs){ if (!isvalidtime(hours, mins, secs)) return false; else { m_hours=hours; m_mins=mins; m_secs=secs; return true; public int gethours(){ return m_hours; public int getmins(){ return m_mins; public int getsecs(){ return m_secs; public void print(){ System.out.print(m_hours+":"); System.out.print((m_mins<10?"0":"")+m_mins+":"); System.out.println((m_secs<10?"0":"")+m_secs); private boolean isvalidtime(int hours,int mins,int secs) { return ( hours >=0 && hours < 24 && mins >= 0 && mins < 60&& secs >= 0 && secs < 60 ); 3. 測試程式 (Testing Driver) 的設計完成 CTime 類別程式並成功翻譯成 ByteCode 檔後 需要撰寫一個測試程式測試 測試程式是能測試類別內所有函數的腳本程式 這個腳本沒有一定的標準, 它可以是任何的劇本, 只要所有的函數都能上台表演, 並能檢視它們的正確性 如 : public class CTimetest { 5-19

20 public static void main(string[] args) { CTime mytime = new CTime(); // 1 CTime yourtime = new CTime(1,30,2); // 2 yourtime.print(); // 3 mytime.print(); // 4 if (mytime.settime(1,9,2)) // 5 mytime.print(); 2 與 3 檢視 CTime(int, int, int) 與 print() 的正確性, 必須顯示 1:30:02 1 與 4 檢視 CTime() 與 print() 的正確性, 必須顯示 0:00:00 5 檢視 settime (int, int, int) 與 print() 的正確性, 必須顯示 1:09:02 類別程式必須經過實作才會生效, 不能直接執行, 而測試程式是可以直接執行的, 所以它有一個執行時的切入點 main(), 這是類別程式所沒有 5-20

21 第五章 物件導向程式設計 5-3 物件的生命週期 (The Life Cycle of an Object) 物件產生後就要使用, 不用時為避免佔據記憶體就要清除, 清除後若再需要使用, 就再產生新的物件, 如此形成一個物件的生命週期 圖 物件的產生 (Creating Objects) 前面已經提到類別是物件的藍圖, 也就是說類別是定義物件的指令, 有了類別才能產生物件 使用物件前必須先以類別產生物件, 下例中我們先假設已有了 Point 類別, 利用下面指令產生 Point 物件 : 1. 物件宣告 (Declaration) 物件宣告並不立刻產生物件, 而是宣告一個準備記錄物件位址的變數, 也就是物件名稱, 物件建構前變數值是空的 如 : Point Origin; Point 是一個類別,Origin 是由 Point 類別所定義的物件 Origin 是物件的變數名稱, 目前它的內存值是 null 圖

22 2. 物件建構 (Initialization) 物件宣告後即可進行建構, 將類別程式碼 (Byte Code) 載入記憶體, 並執行指定的建構函數 如 : Origin = new Point(12, 26); 關鍵字 new 用來準備物件的記憶體空間, 將 Point 類別的程式碼 "copy" 到記憶體, 並將記憶體位址記錄到物件變數 Origin new 後面是類別的建構函數 (Constructor),, 引用建構函數為了要執行初值設定或其他的初始動作 如例中引用 Point(12, 26) 函數為了設定 Origin 的初始座標 Point 類別的程式碼如下 : 圖 public class Point { public int x = 0; public int y = 0; public Point(int x, int y) { this.x = x; this.y = y; 當 Point Origin = new Point(12, 26); 指令執行時會引用 Point(int x, int y) 這個建構函數, 去設定物件中 x, y 變數的值,x, y 是記錄 Point 的座標 通常物件宣告和建構會寫在同一行 :Point Origin = new Point(12, 26); 如同 : int age; age = 20; 可以併為一行 int age = 20; 5-22

23 第五章 物件導向程式設計 3. 物件中物件 (Container) 一個物件可以為另一個物件的資料項, 如 Rectangle 物件中有一個描述 Rectangle 座標的 Point 物件 public class Rectangle { public int width; public int height; public Point Origin; public Rectangle() { width = 0; height = 0; Origin = new Point(0,0); 當我們使用 Rectangle Rect_A = new Rectangle(); 指令產生 Rectangle 類別的 Rect_A 物件時,Rect_A 的建構程式會設定 width 的值為 0, height 的值為 0, 並產生 Point 類別的 Origin 物件 圖 多重定義 (Overloading) 函數的多重定義 (Overloading) 是指某些函數有相同的名稱, 但參數數目不同或參數數目相同但參數的資料型態不同, 這些函數就是多重定義 (Overloading) 函數 如下面的函數 : ABC(); ABC(int a, char b); ABC(int a, int b); 5-23

24 一個類別可以有一個以上的建構函數, 但它們必須是多重定義函數 如 Rectangle 類別中有兩個建構函數 一個建構函數不接受傳遞參數, 另一個建構函數接受傳遞參數 public class Rectangle { public int width; public int height; public Point Origin; public Rectangle() { width = 0; height = 0; Origin = new Point(0,0); public Rectangle(int w, int h) { width=w; height=h; Origin = new Point(0,0); Rectangle Rect_A = new Rectangle(60,100); 指令產生 Rectangle 類別的 Rect_A 物件時,Rect_A 的建構程式會設定 width 的值為 60, height 的值為 100, 並產生 Point 類別的 Origin 物件 圖 物件的使用 (Using Objects) 從物件中取得資料一旦物件產生以後, 你可以從物件中取得資料 更改狀態或執行一些動作 有兩種方法可以做這些事 : 5-24

25 第五章 物件導向程式設計 1. 以 objectreference.variablename 直接存取物件變數資料, 如 rect_a.width 2. 以 objectreference.methodname(argumentlist); 函數指令執行物件函數, 如 rect_a.area() public class Rectangle { public int width; public int height; public Point Origin; public Rectangle() { width = 0; height = 0; Origin = new Point(0,0); public int area() { return width*height; 注意 只有定義為 public 的變數或函數才能被存取資訊 物件參數 (Object as a parameter) 物件可以以參數方式傳給函數, 如 : Point Origin = new Point(12, 26); Rectangle Rect_B = new Rectangle(Origin, 60, 100); 這種情況 Rectangle 類別必須多了一個建構函數, 它的參數中有一個是物件的資料型態 public class Rectangle { public int width; public int height; public Point Origin; // Rectangle 左上方位置 public Rectangle() { width = 0; height = 0; Origin = new Point(0,0); 5-25

26 public Rectangle(int w, int h) { width=w; height=h; Origin = new Point(0,0); public Rectangle(Point p, int w, int h){ width=w; height=h; Origin = p; 這個新的建構函數容許 Rectangle 物件產生時可以指定它的左上方位置的點 物件的清除 (Cleaning Up Unused Objects) 物件產生以後會佔據不算少的記憶體, 如果使用很多物件或記憶體空間有限 最好隨時將不用的物件清除 有兩種方法可以清除不用的物件 : 1. 將物件變數值設為 null, 準備給 垃圾收集 程式清除 Point Origin = new Point(12,26); :( 物件使用一段時間 ) Origin = null; 2. 執行 " 垃圾收集 " (Garbage Collector) 程式 JAVA 執行環境會定期執行 垃圾收集 程式, 將不再使用的物件清除以釋出記憶體空間 基本上它是自動執行, 但程式本身也可呼叫 System 類別的 gc 函數強迫執行 如 :System.gc(); 圖

27 第五章 物件導向程式設計 5-14 問題與練習 (Questions and Exercises) 5-1 物件導向程式的設計觀念 (OOP Concepts) 1. 簡述程式設計方法的演變?( 第五章物件導向程式設計 ) 2. 模組化程式設計與物件導向程式設計有何不同?( 第五章物件導向程式設計 ) 3. 何謂軟體的物件?(5-1-1 何謂物件 ) 4. 何謂物件的訊息?(5-1-2 何謂訊息 ) 5. 何謂物件的類別?(5-1-3 何謂類別 ) 6. 何謂軟體上的封裝?(5-1-6 何謂封裝 ) 7. 我們生活四周存在著許多的 物件, 不管那種物件都可用那兩種事物來描述?(5-1-1 何謂物件 Object) 8. 軟體物件儲存狀態的是什麼?(5-1-1 何謂物件 Object) 9. 軟體物件描述行為的是什麼?(5-1-1 何謂物件 Object) 5-2 類別的設計 (Class Implement) 1. 何謂實作變數 instance variables 與實作函數 instance method?(5-2-1 類別的定義 ) 2. 何謂變數成員 data member 與函數成員 member function?(5-2-1 類別的定義 ) 3. 何謂個別變數 Instance variables 或個別函數 Instance methods?(5-2-1 類別的定義 ) 4. 何謂類別變數 class variables 或類別函數?(5-2-1 類別的定義 ) 5. 何謂靜態變數 static variables 或靜態函數?(5-2-1 類別的定義 ) 5-125

28 6. 何謂 UML?(5-2-2 UML 在 JAVA 的使用 ) 7. 擷取方式定義有那些? 使用時機為何?(5-2-1 類別的定義 ) 8. 何謂建構函數?(5-2-3 實例介紹 ) 9. 為什麼變數名稱在有效範圍內不能重複宣告?(5-2-3 實例介紹 ) 10. 何謂函數的多重定義 overloading?(5-2-3 實例介紹 ) 11. 何謂函數的簽樣?(5-2-3 實例介紹 ) 12. 何謂補助函數 auxiliary function?(5-2-3 實例介紹 ) 13. 重寫 <5-2-3 實例介紹 > 中的 CTime 類別程式, 將會員變數改成只有一個 m_seconds 答案 : public class CTime1 { private int m_seconds; public CTime1(){ m_seconds=0; public CTime1(int hours, int mins, int secs) { m_seconds= hours*3600+mins*60+secs; public boolean settime(int hours, int mins, int secs){ if (!isvalidtime(hours, mins, secs)) return false; else { m_seconds= hours*3600+mins*60+secs; return true; 5-126

29 第五章 物件導向程式設計 public int gethours(){ return m_seconds/3600; public int getmins(){ return (m_seconds%3600)/60; public int getsecs(){ return m_seconds%60; public void print(){ System.out.print(m_seconds/3600+":"); System.out.print(((m_seconds%3600)/60<10?"0":"")+ (m_seconds%3600)/60+":"); System.out.println((m_seconds%60<10?"0":"")+m_seconds%60); private boolean isvalidtime(int hours,int mins,int secs) { return ( hours >=0 && hours < 24 && mins >= 0 && mins < 60&& secs >= 0 && secs < 60 ); 5-127

30 14. 根據 UML 定義腳踏車類別 ( 加速時速度增加 10%, 減速時速度減少 10%) 答案 : class BikeClass { double speed; BikeClass (){ speed=0; BikeClass (double speed) { this.speed=speed; double speed_down(){ // 減速 speed*=0.9; return speed; double speed_up(){ // 加速 speed*=1.1; return speed; double stop(){ // 停車 speed=0.0; return speed; void getspeed(){ // 顯示速度 圖

31 第五章 物件導向程式設計 System.out.println( Speed: +speed); 15. 寫一個上題腳踏車類別的測試程式? 答案 : public class BikeTest { public static void main (String[] args){ BikeClass Bike1=new BikeClass (); BikeClass Bike2=new BikeClass (20.0); BikeClass Bike3=new BikeClass (30.0); Bike1.getSpeed (); Bike2.getSpeed (); System.out.println(Bike3.speed); System.out.println(Bike1.speed_up()); System.out.println(Bike2.speed_down()); System.out.println(Bike3.stop()); 顯示 : 由於腳踏車類別的成員變數 speed 定為公用 public 存取, 所以可以 System.out.println(Bike3.speed); 取得速度資料顯示 如果將腳踏車類別的 speed 定為私用 private,system.out.println(bike3.speed); 指令就無法使用了, 必須透過腳踏車類別的成員函 getspeed () 才能達到目的 5-129

32 16. 將 3 位數字轉成文字表示 ( 如 陣列物件中的範例 Ex5711.java) 改寫成類別型式 答案 : public class Big3{ private int no1, no2, no3; Big3 (int no) { no1=no/100; // 取百位數 no2=(no%100)/10; // 取十位數 no3=no%10; // 取個位數 public void getwords() { String[] data1={, one, two, three, four, five, six, nine ; String[] data2={ ten, eleven, twelve, thirteen, nineteen ; String[] data3={ twenty, thirty, forty, fifty, sixty, ninety ; if (no1>0) System.out.print(data1[no1]+ hundred ); // 百位數部份 if (no1>0 &&(no2+no3>0)) System.out.print("and "); if (no2==1) System.out.print(data2[no3]); // -teen 部份 else if (no2>1) System.out.print(data3[no2-2]+data1[no3]); // -ty 部份 else System.out.print(data1[no3]); // no2==0 測試程式 public class Big3Test { public static void main (String[] args){ Big3 big=new Big3 (123); big.getwords (); 17. 寫個類別程式使用上題的物件將 9 位數字轉成文字表示 ( 練習物件中物件 Container 的使用 ) 5-130

33 第五章 物件導向程式設計 答案 : public class Big9{ private int no1, no2, no3; Big9(int no) { no1=no/ ; no2=(no% )/1000; no3=no% ; public void getwords() { if (no1>0) { Big3 big1=new Big3(no1); big1.getwords(); System.out.print( million ); if (no2>0) { Big3 big2=new Big3(no1); big2.getwords(); System.out.print( thousand ); if (no3>0) { Big3 big3=new Big3(no1); big3.getwords(); 測試程式 public class Big9Test { public static void main (String[] args){ Big9 big=new Big9 ( ); big.getwords (); 5-131

34 5-3 物件的生命週期 (The Life Cycle of an Object) 1. 何謂物件的生命週期?(5-3 物件的生命週期 ) 2. 何謂物件中物件 Container?(5-3 物件的生命週期 ) 3. 不用的物件為何需要清除?(5-3-3 物件的清除 ) 4. 如何清除不用的物件?(5-3-3 物件的清除 ) 5-4 類別的繼承 (Class Inheritance) 1. 何謂繼承 Inheritance?(5-4-1 何謂繼承 Inheritance) 2. 如何在子類別中引用父類別的函數或變數?(5-4-4 繼承的實作 ) 3. 如何在子類別中引用父類別的建構函數?(5-4-4 繼承的實作 ) 4. 定義一個摩托車類別, 繼承自 題所定義的腳踏車類別, 增加引擎容量變數及顯示引擎容量函數, 並重寫顯示速度函數,UML 圖如下 : 答案 : 圖 class Autobike extends BikeClass { private int power; Autobike() { super ();// 引用父類別的建構函數 5-132

35 第五章 物件導向程式設計 power=1000; Autobike(double speed, int power) { super (speed);// 引用父類別的建構函數 this.power=power; void getspeed() {// 顯示速度 System.out.println("Autobike speed: "+speed); void getpower() { System.out.println("Power: "+power);// 顯示引擎容量 public class AutobikeTest { public static void main (String[] args){ Autobike Autobike1=new Autobike(); Autobike Autobike2=new Autobike(20,100); Autobike Autobike3=new Autobike(30,160); Autobike1.speed_up(); Autobike2.speed_down(); Autobike3.stop(); Autobike1.getSpeed(); Autobike2.getSpeed (); Autobike3.getSpeed(); Autobike1.getPower(); Autobike2.getPower(); Autobike3.getPower(); 5. 何謂重新定義 (Override)?(5-4-4 繼承的實作 ) 6. Object 類別有什麼特別?(5-4-5 Object 類別 ) 5-133

Microsoft Word - ch04三校.doc

Microsoft Word - ch04三校.doc 4-1 4-1-1 (Object) (State) (Behavior) ( ) ( ) ( method) ( properties) ( functions) 4-2 4-1-2 (Message) ( ) ( ) ( ) A B A ( ) ( ) ( YourCar) ( changegear) ( lowergear) 4-1-3 (Class) (Blueprint) 4-3 changegear

More information

運算子多載 Operator Overloading

運算子多載 Operator Overloading 多型 Polymorphism 講師 : 洪安 1 多型 編譯時期多型 ( 靜態多型 ) function overloading 如何正確呼叫同名的函數? 利用參數個數與型態 operator overloading 其實同 function overloading 執行時期多型 ( 或動態多型 ) 如何正確呼叫不同物件的相同名稱的成員函數 利用繼承與多型 2 子類別與父類別物件間的指定 (assignment)

More information

Microsoft Word - 投影片ch11

Microsoft Word - 投影片ch11 Java2 JDK5.0 教學手冊第三版洪維恩編著博碩文化出版書號 pg20210 第十一章抽象類別與介面 本章學習目標認識抽象類別學習介面的使用認識多重繼承與介面的延伸 抽象類別與介面 11-2 11.1 抽象類別 抽象類別的目的是要依據它的格式來修改並建立新的類別 11.1.1 定義抽象類別 定義抽象類別的語法如下 : abstract class 類別名稱 { 宣告資料成員 ; // 定義抽象類別

More information

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6:

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6: Chapter 15. Suppressed Exception CH14 Finally Block Java SE 7 try-with-resources JVM cleanup try-with-resources JVM cleanup cleanup Java SE 7 Throwable getsuppressed Throwable[] getsuppressed() Suppressed

More information

The Embedded computing platform

The Embedded computing platform 嵌入式系統及實驗 Embedded System and Experiment 詹曉龍 長庚大學電機系 Java 的類別與物件 : 宣告類別 建構子 public class Customer { private String name; private String address; // Customer 類別宣告 // 成員資料 public int age; // 建構子 : 使用參數設定成員資料初始值

More information

投影片 1

投影片 1 資料庫管理程式 ( 補充教材 -Part2) 使用 ADO.NET 連結資料庫 ( 自行撰寫程式碼 以實現新增 刪除 修改等功能 ) Private Sub InsertButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles InsertButton.Click ' 宣告相關的 Connection

More information

Chapter 9: Objects and Classes

Chapter 9: Objects and Classes Fortran Algol Pascal Modula-2 BCPL C Simula SmallTalk C++ Ada Java C# C Fortran 5.1 message A B 5.2 1 class Vehicle subclass Car object mycar public class Vehicle extends Object{ public int WheelNum

More information

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款 JAVA 程 序 设 计 ( 肆 ) 徐 东 / 数 学 系 使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款 使 用 Java class 代 表 保 险 箱 public class SaveBox 类 名 类 类 体 实 现 封 装 性 使 用 class SaveBox 代 表 保

More information

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc References (Section 5.2) Hsuan-Tien Lin Deptartment of CSIE, NTU OOP Class, March 15-16, 2010 H.-T. Lin (NTU CSIE) References OOP 03/15-16/2010 0 / 22 Fun Time (1) What happens in memory? 1 i n t i ; 2

More information

Microsoft Word - 物件導向編程精要.doc

Microsoft Word - 物件導向編程精要.doc Essential Object-Oriented Programming Josh Ko 2007.03.11 object-oriented programming C++ Java OO class object OOP Ruby duck typing complexity abstraction paradigm objects objects model object-oriented

More information

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new ListView 自訂排版 主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new int[]{r.drawable.dog1, R.drawable.dog2,

More information

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入 100 年 特 種 考 試 地 方 政 府 公 務 人 員 考 試 試 題 等 別 : 三 等 考 試 類 科 : 資 訊 處 理 科 目 : 系 統 分 析 與 設 計 一 請 參 考 下 列 旅 館 管 理 系 統 的 使 用 案 例 圖 (Use Case Diagram) 撰 寫 預 約 房 間 的 使 用 案 例 規 格 書 (Use Case Specification), 繪 出 入

More information

運算子多載 Operator Overloading

運算子多載 Operator Overloading 函數樣板 (Function Template) 與 類別樣板 (Class Template) 講師 : 洪安 1 資料結構與 C++ 程式設計進階班 為何需要通用函數? (1/2) int abs(int x) { return (x>0)?x:-x; 取名困難不好記 float fabs(float x) { return (x>0)?x:-x; complex cabs(complex x)

More information

untitled

untitled 1 Outline 數 料 數 數 列 亂數 練 數 數 數 來 數 數 來 數 料 利 料 來 數 A-Z a-z _ () 不 數 0-9 數 不 數 SCHOOL School school 數 讀 school_name schoolname 易 不 C# my name 7_eleven B&Q new C# (1) public protected private params override

More information

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double

More information

EJB-Programming-3.PDF

EJB-Programming-3.PDF :, JBuilder EJB 2.x CMP EJB Relationships JBuilder EJB Test Client EJB EJB Seminar CMP Entity Beans Value Object Design Pattern J2EE Design Patterns Value Object Value Object Factory J2EE EJB Test Client

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 9 [P.11] : Dev C++ [P.12] : http://c.feis.tw [P.13] [P.14] [P.15] [P.17] [P.23] Dev C++ [P.24] [P.27] [P.34] C / C++ [P.35] 10 C / C++ C C++ C C++ C++ C ( ) C++

More information

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 Java V1.0.1 2007 4 10 1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 6.2.10 6.3..10 6.4 11 7.12 7.1

More information

EJB-Programming-4-cn.doc

EJB-Programming-4-cn.doc EJB (4) : (Entity Bean Value Object ) JBuilder EJB 2.x CMP EJB Relationships JBuilder EJB Test Client EJB EJB Seminar CMP Entity Beans Session Bean J2EE Session Façade Design Pattern Session Bean Session

More information

Microsoft Word - ACL chapter02-5ed.docx

Microsoft Word - ACL chapter02-5ed.docx 第 2 章神奇的質數 2.1.1 什麼是質數 1 1 1 打下好基礎 - 程式設計必修的數學思維與邏輯訓練 1 1 0 10 2 3 5 7 4 6 8 9 10 4 10000 1229 1000 168 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131

More information

0 0 = 1 0 = 0 1 = = 1 1 = 0 0 = 1

0 0 = 1 0 = 0 1 = = 1 1 = 0 0 = 1 0 0 = 1 0 = 0 1 = 0 1 1 = 1 1 = 0 0 = 1 : = {0, 1} : 3 (,, ) = + (,, ) = + + (, ) = + (,,, ) = ( + )( + ) + ( + )( + ) + = + = = + + = + = ( + ) + = + ( + ) () = () ( + ) = + + = ( + )( + ) + = = + 0

More information

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d

More information

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class 踩地雷遊戲 高慧君南港高中 開啟專案 MineSweep 任務一 : 產生 30X20 個磚塊編輯 Table 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) import java.util.arraylist; Write a description of class MyWorld

More information

Microsoft PowerPoint - P766Ch06.ppt

Microsoft PowerPoint - P766Ch06.ppt PHP5&MySQL 程式設計 第 6 章物件導向 6-1 認識物件導向 物件 (object) 或 案例 (instance) 屬性 (property) 欄位 (field) 或 成員變數 (member variable) 方法 (method) 或 成員函式 (member function) 事件 (event) 類別 (class) 物件導向程式設計 (OOP) 具有下列特點 : 封裝

More information

D C 93 2

D C 93 2 D9223468 3C 93 2 Java Java -- Java UML Java API UML MVC Eclipse API JavadocUML Omendo PSPPersonal Software Programming [6] 56 8 2587 56% Java 1 epaper(2005 ) Java C C (function) C (reusability) eat(chess1,

More information

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2 Chapter 02 變數與運算式 2.1 2.1.1 2.1.2 2.1.3 2.1.4 2.2 2.2.1 2.2.2 2.2.3 type 2.2.4 2.3 2.3.1 print 2.3.2 input 2.4 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 + 2.4.6 Python Python 2.1 2.1.1 a p p l e b e a r c 65438790

More information

Microsoft Word - 01.DOC

Microsoft Word - 01.DOC 第 1 章 JavaScript 简 介 JavaScript 是 NetScape 公 司 为 Navigator 浏 览 器 开 发 的, 是 写 在 HTML 文 件 中 的 一 种 脚 本 语 言, 能 实 现 网 页 内 容 的 交 互 显 示 当 用 户 在 客 户 端 显 示 该 网 页 时, 浏 览 器 就 会 执 行 JavaScript 程 序, 用 户 通 过 交 互 式 的

More information

javaexample-02.pdf

javaexample-02.pdf n e w. s t a t i c s t a t i c 3 1 3 2 p u b l i c p r i v a t e p r o t e c t e d j a v a. l a n g. O b j e c t O b j e c t Rect R e c t x 1 y 1 x 2 y 2 R e c t t o S t r i n g ( ) j a v a. l a n g. O

More information

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e Android Studio Debugging 本篇教學除了最基本的中斷點教學之外, 還有條件式中斷的教學 條件式中斷是進階的除錯技巧, 在某些特定情況中, 我們有一個函數可能會被呼叫數次, 但是我們只希望在某種條件成立時才進行中斷, 進而觀察變數的狀態 而條件式中斷這項技巧正是符合這項需求 本教學分兩部分 單步除錯 (Page2~11, 共 10) 條件式中斷點 (Page12~17, 共 6)

More information

untitled

untitled (encapsulation) 例 類 說 類 料 來 料 information hiding 念 (inheritance) 來說 類 類 類 類 類 類 行 利 來 (polymorphism) 不 類 數 不 1 2 3 4 類 類 不 類 不 類 5 6 7 // virtual 不見了 #include #include using namespace

More information

Microsoft PowerPoint - L17_Inheritance_v4.pptx

Microsoft PowerPoint - L17_Inheritance_v4.pptx C++ Programming Lecture 17 Wei Liu ( 刘 威 ) Dept. of Electronics and Information Eng. Huazhong University of Science and Technology May. 2015 Lecture 17 Chapter 20. Object-Oriented Programming: Inheritance

More information

Chapter 9: Objects and Classes

Chapter 9: Objects and Classes Java application Java main applet Web applet Runnable Thread CPU Thread 1 Thread 2 Thread 3 CUP Thread 1 Thread 2 Thread 3 ,,. (new) Thread (runnable) start( ) CPU (running) run ( ) blocked CPU sleep(

More information

untitled

untitled 1 Outline 料 類 說 Tang, Shih-Hsuan 2006/07/26 ~ 2006/09/02 六 PM 7:00 ~ 9:30 聯 ives.net@gmail.com www.csie.ntu.edu.tw/~r93057/aspnet134 度 C# 力 度 C# Web SQL 料 DataGrid DataList 參 ASP.NET 1.0 C# 例 ASP.NET 立

More information

投影片 1

投影片 1 Chap 8 繼承 抽象類別與介面 8-1 類別的繼承 8-2 介面 8-3 介面的繼承 8-4 抽象類別 8-5 抽象類別與介面 8-6 常數類別 8-1 類別的繼承 8-1-1 類別架構 8-1-2 類別的繼承 8-1-3 覆寫和隱藏父類別的方法 8-1-4 隱藏父類別的成員變數 8-1-5 使用父類別的建構子 8-1-1 類別架構 - 繼承關係 類別的繼承關係可以讓我們建立類別架構, 在 UML

More information

1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F

1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F 1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET 2.0 2.0.NET Framework.NET Framework 2.0 ( 3).NET Framework 2.0.NET Framework ( System ) o o o o o o Boxing UnBoxing() o

More information

untitled

untitled 4.1AOP AOP Aspect-oriented programming AOP 來說 AOP 令 理 Cross-cutting concerns Aspect Weave 理 Spring AOP 來 AOP 念 4.1.1 理 AOP AOP 見 例 來 例 錄 Logging 錄 便 來 例 行 留 錄 import java.util.logging.*; public class HelloSpeaker

More information

Strings

Strings Inheritance Cheng-Chin Chiang Relationships among Classes A 類 別 使 用 B 類 別 學 生 使 用 手 機 傳 遞 訊 息 公 司 使 用 金 庫 儲 存 重 要 文 件 人 類 使 用 交 通 工 具 旅 行 A 類 別 中 有 B 類 別 汽 車 有 輪 子 三 角 形 有 三 個 頂 點 電 腦 內 有 中 央 處 理 單 元 A

More information

OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课

OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课 复习 Java 包 创建包 : package 语句, 包结构与目录结构一致 使用包 : import restaurant/ - people/ - Cook.class - Waiter.class - tools/ - Fork.class

More information

PowerPoint Presentation

PowerPoint Presentation C++ 與資料結構 NTU CSIE 大綱 使用類別 (Class) 建立資料結構 使用繼承 (Inheritance) 建立資料結構 C++ 物件導向 以物件為基礎的程式設計, 將程式中互動的單元視為一個個的物件 封裝 (Encapsulation) 封裝物件資訊是第一步, 您要瞭解如何使用類別定義物件, 像是定義物件的屬性 方法 ( 行為 ) 等等, 類別是建構物件時所依賴的規格書 Example

More information

Microsoft PowerPoint - plan08.ppt

Microsoft PowerPoint - plan08.ppt 程 序 设 计 语 言 原 理 Principle of Programming Languages 裘 宗 燕 北 京 大 学 数 学 学 院 2012.2~2012.6 8. 面 向 对 象 为 什 么 需 要 面 向 对 象? OO 语 言 的 发 展 面 向 对 象 的 基 本 概 念 封 装 和 继 承 初 始 化 和 终 结 处 理 动 态 方 法 约 束 多 重 继 承 总 结 2012

More information

2009年3月全国计算机等级考试二级Java语言程序设计笔试试题

2009年3月全国计算机等级考试二级Java语言程序设计笔试试题 2009 年 3 月 全 国 计 算 机 等 级 考 试 笔 试 试 卷 二 级 Java 语 言 程 序 设 计 ( 考 试 时 间 90 分 钟, 满 分 100 分 ) 一 选 择 题 ( 每 题 2 分, 共 70 分 ) 下 列 各 题 A) B) C) D) 四 个 选 项 中, 只 有 一 个 选 项 是 正 确 的 请 将 正 确 选 项 填 涂 在 答 题 卡 相 应 位 置 上,

More information

《大话设计模式》第一章

《大话设计模式》第一章 第 1 章 代 码 无 错 就 是 优? 简 单 工 厂 模 式 1.1 面 试 受 挫 小 菜 今 年 计 算 机 专 业 大 四 了, 学 了 不 少 软 件 开 发 方 面 的 东 西, 也 学 着 编 了 些 小 程 序, 踌 躇 满 志, 一 心 要 找 一 个 好 单 位 当 投 递 了 无 数 份 简 历 后, 终 于 收 到 了 一 个 单 位 的 面 试 通 知, 小 菜 欣 喜

More information

3.1 num = 3 ch = 'C' 2

3.1 num = 3 ch = 'C' 2 Java 1 3.1 num = 3 ch = 'C' 2 final 3.1 final : final final double PI=3.1415926; 3 3.2 4 int 3.2 (long int) (int) (short int) (byte) short sum; // sum 5 3.2 Java int long num=32967359818l; C:\java\app3_2.java:6:

More information

Learning Java

Learning Java Java Introduction to Java Programming (Third Edition) Prentice-Hall,Inc. Y.Daniel Liang 2001 Java 2002.2 Java2 2001.10 Java2 Philip Heller & Simon Roberts 1999.4 Java2 2001.3 Java2 21 2002.4 Java UML 2002.10

More information

第二章 簡介類別

第二章  簡介類別 Instructor Hsueh-Wen Tseng 曾學文,hwtseng@nchu.edu.tw Textbook C++ 程式設計風格與藝術 (O Reilly). Requirements Assignment x? 100% TAs 第一章概觀 C++ 1-2 二種版本的 C++ 1-5 初步檢視類別 1-1 何謂物件導向程式設計 1-8 C++ 的關鍵字 1-2 二種版本的 C++ //

More information

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d =

More information

一、

一、 考試時間 : 1 小時 30 分座號 : 全五頁第一頁 注意 : 禁止使用電子計算器 不必抄題, 作答時請將試題題號及答案依照順序寫在試卷上, 於本試題上作答者, 不予計分 一 就下列 Java 程式片斷中加入一個 for 迴圈, 使其印出右側結果 (15 分 ) public class AllNumbers number square cube 0 0 0 public static void

More information

JavaIO.PDF

JavaIO.PDF O u t p u t S t ream j a v a. i o. O u t p u t S t r e a m w r i t e () f l u s h () c l o s e () public abstract void write(int b) throws IOException public void write(byte[] data) throws IOException

More information

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit Tomcat Web JUnit Cactus JUnit Java Cactus JUnit 26.1 JUnit Java JUnit JUnit Java JSP Servlet JUnit Java Erich Gamma Kent Beck xunit JUnit boolean JUnit Java JUnit Java JUnit Java 26.1.1 JUnit JUnit How

More information

840 提示 Excel - Excel -- Excel (=) Excel ch0.xlsx H5 =D5+E5+F5+G5 (=) = - Excel 00

840 提示 Excel - Excel -- Excel (=) Excel ch0.xlsx H5 =D5+E5+F5+G5 (=) = - Excel 00 Excel - - Excel - -4-5 840 提示 Excel - Excel -- Excel (=) Excel ch0.xlsx H5 =D5+E5+F5+G5 (=) = - Excel 00 ( 0 ) 智慧標籤 相關說明提示 -5 -- Excel 4 5 6 7 8 + - * / % ^ = < >= & 9 0 (:) (,) ( ) Chapter - :,

More information

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

KillTest 质量更高 服务更好 学习资料   半年免费更新服务 KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 310-055Big5 Title : Sun Certified Programmer for the Java 2 Platform.SE 5.0 Version : Demo 1 / 22 1. 11. public static void parse(string str)

More information

10-2 SCJP SCJD 10.1 昇陽認證 Java 系統開發工程師 的認證程序 Java IT SCJD

10-2 SCJP SCJD 10.1 昇陽認證 Java 系統開發工程師 的認證程序 Java IT SCJD 10 SCJD 簡介 Java 10-2 SCJP SCJD 10.1 昇陽認證 Java 系統開發工程師 的認證程序 Java IT SCJD 10 SCJD 10-3 Java Java SCJD 7 Swing RMI 10.1.1 The Assignment The Essay 9 10 10-4 SCJP SCJD 90 10.1.2 SCJP Java 90 120 Swing 10

More information

投影片 1

投影片 1 Chap 9 巢狀類別 多形與套件 9-1 巢狀類別 9-2 匿名內層類別 9-3 多形的基礎 9-4 多形的實作 9-5 套件 9-1 巢狀類別 9-1-1 巢狀類別 9-1-2 內層類別的使用 9-1-1 巢狀類別 - 說明 巢狀類別是在類別中擁有其他類別的宣告, 在外面的類別稱為 外層類別 (Enclosing Class); 內層的成員類別稱為 內層類別 (Inner Classes) 巢狀類別強調類別之間的關聯性,

More information

(procedure-oriented)?? 2

(procedure-oriented)?? 2 1 (procedure-oriented)?? 2 (Objected-Oriented) (class)? (method)? 3 : ( 4 ???? 5 OO 1966 Kisten Nygaard Ole-Johan Dahl Simula Simula 爲 6 Smalltalk Alan Kay 1972 PARC Smalltalk Smalltalk 爲 Smalltalk 爲 Smalltalk

More information

无类继承.key

无类继承.key 无类继承 JavaScript 面向对象的根基 周爱 民 / aimingoo aiming@gmail.com https://aimingoo.github.io https://github.com/aimingoo rand = new Person("Rand McKinnon",... https://docs.oracle.com/cd/e19957-01/816-6408-10/object.htm#1193255

More information

Microsoft PowerPoint - VB14.ppt

Microsoft PowerPoint - VB14.ppt VB 列表盒 LISTBOX 應用 資科系 林偉川 執行畫面 1 2 1 重要屬性 LISTBOX 物件 (VB6) 新增至 LISTBOX 物件中 ADDITEM 自 LISTBOX 物件中刪除選取物件 REMOVEITEM 自 LISTBOX 物件中取出選取物件 ListIndex 顯示 LISTBOX 物件中紀錄個數 Listcount 3 LISTBOX 物件 (VB.NET) 重要屬性 新增至

More information

Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream Class java.io.datainptstream (extends) FilterInputStream InputStream Obj

Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream Class java.io.datainptstream (extends) FilterInputStream InputStream Obj Message Transition 5-1 5-2 DataInputStream Class 5-3 DataOutputStream Class 5-4 PrintStream Class 5-5 (Message Transition) (Exercises) Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream

More information

内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌

内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌 语 言 程 序 设 计 郑 莉 胡 家 威 编 著 清 华 大 学 逸 夫 图 书 馆 北 京 内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌 握 语

More information

Java 程式設計初階 第 5 章:基本輸出入 & 流程控制

Java 程式設計初階 第 5 章:基本輸出入 & 流程控制 Java 程式設計 標準輸出入與流程控制 本章大綱 標準輸出入 (Standard I/O) 分支 (Branch) if ~ else switch ~ case 迴圈 (Loop) for while do ~ while 中斷指令 break continue 總整理 標準輸出 定義 : 將資料印到螢幕上 Java 標準輸出指令 System.out.println( 資料 ) 將資料印出後換行

More information

Microsoft Word - chap10.doc

Microsoft Word - chap10.doc 78 10. Inheritance in C++ 我 們 已 介 紹 了 物 件 導 向 程 式 的 第 一 個 主 要 特 性, 即 程 式 可 模 組 化 成 為 類 別 ( 物 件 ), 類 別 具 有 資 料 封 裝 的 特 性 接 下 來 我 們 要 介 紹 物 件 導 向 程 式 的 另 一 個 主 要 特 性, 那 就 是 類 別 具 有 繼 承 的 功 能 繼 承 就 是 重 複

More information

<4D6963726F736F667420506F776572506F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

<4D6963726F736F667420506F776572506F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074> 程 序 设 计 实 习 INFO130048 3-2.C++ 面 向 对 象 程 序 设 计 重 载 继 承 多 态 和 聚 合 复 旦 大 学 计 算 机 科 学 与 工 程 系 彭 鑫 pengxin@fudan.edu.cn 内 容 摘 要 方 法 重 载 类 的 继 承 对 象 引 用 和 拷 贝 构 造 函 数 虚 函 数 和 多 态 性 类 的 聚 集 复 旦 大 学 计 算 机 科 学

More information

46 2011 11 467 數位遊戲式學習系統 7 2011 11 467 47 3 DBGameSys 48 2011 11 467 正規化資料模組 如何配置並儲存電子化資料 以 便減少資料被重覆儲存的程序 DBGameSys的主要功能模組包 學習者 審核評分模組 含 正規化資料模組 審核評分 模組 高分列表模組3大區塊 系統資料庫 在正規化資料模組的執行 高分列表模組 過程中 先要求學習者瀏覽遊戲

More information

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

KillTest 质量更高 服务更好 学习资料   半年免费更新服务 KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 1Z0-854 Title : Java Standard Edition 5 Programmer Certified Professional Upgrade Exam Version : Demo 1 / 12 1.Given: 20. public class CreditCard

More information

Strings

Strings Polymorphism and Virtual Functions Cheng-Chin Chiang Virtual Function Basics 多 型 (Polymorphism) 賦 予 一 個 函 數 多 種 意 涵, 存 在 於 同 一 類 別 之 內 祖 先 類 別 與 後 代 類 別 間 物 件 導 向 程 式 設 計 基 本 原 理 虛 擬 函 數 (Virtual Function)

More information

Microsoft Word - Book9

Microsoft Word - Book9 葬 書 ( 下 ) 佈 陣 十 方 成 立 指 揮 中 心 層 巒 疊 障 千 山 翠 微, 紓 回 連 綿 的 重 山 復 重 山, 侍 朝 衛 迎, 前 後 有 序, 巋 巘 隱 逸 著 一 片 風 水 寶 地, 牛 臥 馬 馳, 鸞 飛 鳳 舞, 滕 蛇 委 蛇, 縈 藟 纏 繞 在 葺 襲 的 斷 續 峰 巒 之 間! 離 正 午 十 二 時 整 還 有 半 個 鐘 頭, 接 近 天 頂 的

More information

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 复习 Java 包 创建包 : package 语句, 包结构与目录结构一致 使用包 : import restaurant/ - people/ - Cook.class - Waiter.class - tools/ - Fork.class - Table.class

More information

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 odps-sdk 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基 开放数据处理服务 ODPS SDK SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基础功能的主体接口, 搜索关键词 "odpssdk-core" 一些

More information

C 1

C 1 C homepage: xpzhangme 2018 5 30 C 1 C min(x, y) double C // min c # include # include double min ( double x, double y); int main ( int argc, char * argv []) { double x, y; if( argc!=

More information

Mac Java import com.apple.mrj.*;... public class MyFirstApp extends JFrame implements ActionListener, MRJAboutHandler, MRJQuitHandler {... public MyFirstApp() {... MRJApplicationUtils.registerAboutHandler(this);

More information

c_cpp

c_cpp C C++ C C++ C++ (object oriented) C C++.cpp C C++ C C++ : for (int i=0;i

More information

Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0,

Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0, http://debut.cis.nctu.edu.tw/~chi Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0, : POSITIVE_INFINITY NEGATIVE_INFINITY

More information

<4D6963726F736F667420576F7264202D20C8EDC9E82DCFC2CEE7CCE22D3039C9CF>

<4D6963726F736F667420576F7264202D20C8EDC9E82DCFC2CEE7CCE22D3039C9CF> 全 国 计 算 机 技 术 与 软 件 专 业 技 术 资 格 ( 水 平 考 试 2009 年 上 半 年 软 件 设 计 师 下 午 试 卷 ( 考 试 时 间 14:00~16:30 共 150 分 钟 请 按 下 述 要 求 正 确 填 写 答 题 纸 1. 在 答 题 纸 的 指 定 位 置 填 写 你 所 在 的 省 自 治 区 直 辖 市 计 划 单 列 市 的 名 称 2. 在 答

More information

6 2012 8476你猜得到它是什麼嗎 它就是 高分子! 生活中的高分子 有種物質的重要性不亞於我們所呼吸的空氣, 不管身在何處, 都有它的存在, 它甚至就隱藏在人體裡面! 人類若失去了它, 就得回到遠古時代, 甚至可能終止生命 高分子是什麼 高分子是由千個 甚至萬個以上的原子所組成, 呈現柔軟的特性 日常生活中使用的塑膠袋就是由高分子製造的, 人體組成中的 DNA 也是一種高分子 2012 8476

More information

輕鬆學 Dreamweaver CS5 網頁設計..\Example\Ch0\ \.html..\example\ch0\ \mouse.txt..\example\ch0\ \ _Ok.html 學習重點 JavaScript 複製程式碼 mouse.txt Ctrl+C Ctrl+C 0-4

輕鬆學 Dreamweaver CS5 網頁設計..\Example\Ch0\ \.html..\example\ch0\ \mouse.txt..\example\ch0\ \ _Ok.html 學習重點 JavaScript 複製程式碼 mouse.txt Ctrl+C Ctrl+C 0-4 JAVA Extension 0..\Example\Ch0\ \ T.html..\Example\Ch0\ \ T.txt T.txt..\Example\Ch0\ \ T_Ok.html 提示 :. Marquee Marquee Font Color #FFFFFF BG Color #867bf Width 90 Height 50. T.txt Ctrl+C your scrolling

More information

第3章.doc

第3章.doc 3 3 3 3.1 3 IT Trend C++ Java SAP Advantech ERPCRM C++ C++ Synopsys C++ NEC C C++PHP C++Java C++Java VIA C++ 3COM C++ SPSS C++ Sybase C++LinuxUNIX Motorola C++ IBM C++Java Oracle Java HP C++ C++ Yahoo

More information

1 1 1 1 2 3 3 3 4 4 5 5 5 6 6 7 7 9 9 9 10 11 11 11 1. 2. 3. 4. 1 2 11 12 12 12 12 13 13 13 15 15 16 16 17 18 18 18 19 19 19 20 20 20 21 22 22 22 23 23 1. 2. 23 25 27 27 28 28 28 29 29 29 30 31 31 31 32

More information

(Microsoft Word - \272\364\263q\245|\244A_49636107_\304\254\253\330\336\263__\272\353\302\262\263\370\247i.doc)

(Microsoft Word - \272\364\263q\245|\244A_49636107_\304\254\253\330\336\263__\272\353\302\262\263\370\247i.doc) SCJP (Oracle Certified Professional, Java SE5/6 Programmer) 學 制 / 班 級 : 四 年 制 / 網 通 四 乙 指 導 老 師 : 方 信 普 老 師 學 生 學 號 / 姓 名 : 49636107 蘇 建 瑋 繳 交 年 份 : 100 年 6 月 一 SCJP 介 紹 SCJP 是 Sun Certified Java Programmer

More information

新版 明解C++入門編

新版 明解C++入門編 511!... 43, 85!=... 42 "... 118 " "... 337 " "... 8, 290 #... 71 #... 413 #define... 128, 236, 413 #endif... 412 #ifndef... 412 #if... 412 #include... 6, 337 #undef... 413 %... 23, 27 %=... 97 &... 243,

More information

FY.DOC

FY.DOC 高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主

More information

软件工程文档编制

软件工程文档编制 实训抽象类 一 实训目标 掌握抽象类的定义 使用 掌握运行时多态 二 知识点 抽象类的语法格式如下 : public abstract class ClassName abstract void 方法名称 ( 参数 ); // 非抽象方法的实现代码 在使用抽象类时需要注意如下几点 : 1 抽象类不能被实例化, 实例化的工作应该交由它的子类来完成 2 抽象方法必须由子类来进行重写 3 只要包含一个抽象方法的抽象类,

More information

踏出C++的第一步

踏出C++的第一步 踏出 C++ 的第一步 講師 : 洪安 1 已經學會的 C 語言基本概念 基本資料型態 變數 基本輸入輸出 控制敘述 選擇控制 迴圈 陣列 函式 指標 字元與字串 結構 檔案處理 2 C v.s. C++ C 函數 程序式語言 Procedural language 結構化程式設計 Structured programming 演算法 Top-down C++ 類別 物件導向程式設計 Object-Oriented

More information

基于CDIO一体化理念的课程教学大纲设计

基于CDIO一体化理念的课程教学大纲设计 Java 语 言 程 序 设 计 课 程 教 学 大 纲 Java 语 言 程 序 设 计 课 程 教 学 大 纲 一 课 程 基 本 信 息 1. 课 程 代 码 :52001CC022 2. 课 程 名 称 :Java 语 言 程 序 设 计 3. 课 程 英 文 名 称 :Java Programming 4. 课 程 类 别 : 理 论 课 ( 含 实 验 上 机 或 实 践 ) 5. 授

More information

Wy159.mps

Wy159.mps 第 章 系 统 开 发 方 法 管 理 信 息 系 统 开 发 的 效 率 质 量 成 本 及 用 户 的 满 意 程 度, 除 了 管 理 技 术 等 因 素 外, 还 与 系 统 开 发 方 法 密 切 相 关 管 理 信 息 系 统 从 产 生 到 现 在 已 经 发 展 了 许 多 开 发 方 法, 这 些 开 发 方 法 各 自 遵 循 一 定 的 基 本 思 想, 适 用 于 一 定 的

More information

<4D F736F F D B0D3B77EC3FEA7DEC3C0C476C1C9A5BFA6A1B8D5C3442DB57BA6A1B35DAD702DBEC7ACEC2E646F6378>

<4D F736F F D B0D3B77EC3FEA7DEC3C0C476C1C9A5BFA6A1B8D5C3442DB57BA6A1B35DAD702DBEC7ACEC2E646F6378> 全國國高級中中等學校 105 學年度商商業類學學生技藝藝競賽 程式式設計 職職種 學學科 試試卷 崗位位編號 : 姓名 : 注意事項 : 請將答案案劃記於答案案卡, 未依依規定劃記者者不予計分分 試題說明 :( 選擇題每每題 4 分, 共 100 分 ) ( )1. 執行以下 Visual Basic 程式片段, 其結果為何?(A) 15 Dim i As Byte i = &HFC Console.WriteLine(Not

More information

<4D6963726F736F667420576F7264202D20D7A1D5ACCEEFD2B5B7FECEF1B1EAD7BCA3A8B1A8C5FAB8E5A3A92E646F63>

<4D6963726F736F667420576F7264202D20D7A1D5ACCEEFD2B5B7FECEF1B1EAD7BCA3A8B1A8C5FAB8E5A3A92E646F63> 北 京 市 地 方 标 准 住 宅 物 业 服 务 标 准 Residential Property Service Standard 编 号 :DB11/T 751-2010 主 编 单 位 : 北 京 市 物 业 服 务 指 导 中 心 批 准 部 门 : 北 京 市 住 房 和 城 乡 建 设 委 员 会 北 京 市 质 量 技 术 监 督 局 实 施 日 期 :2010 年 10 月 1 日

More information

Microsoft Word - 970617cppFinalSolution.doc

Microsoft Word - 970617cppFinalSolution.doc 國 立 台 灣 海 洋 大 學 資 訊 工 程 系 C++ 程 式 設 計 期 末 考 參 考 答 案 姓 名 : 系 級 : 學 號 : 97/06/17 考 試 時 間 :10:00 12:10 試 題 敘 述 蠻 多 的, 看 清 楚 題 目 問 什 麼, 針 對 重 點 回 答 是 很 重 要 的 ; 不 確 定 的 請 一 定 要 當 場 提 出 來, 不 要 白 花 力 氣 在 誤 會

More information

OOP with Java 通知 Project 3 提交时间 3 月 29 日晚 9 点 Piazza Project 2 投票

OOP with Java 通知 Project 3 提交时间 3 月 29 日晚 9 点 Piazza Project 2 投票 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 3 提交时间 3 月 29 日晚 9 点 Piazza Project 2 投票 复习 创建对象 构造函数 函数重载 : 函数 = 函数名 + 参数列表 public class MyType { int i; double d; char c; void set(double x)

More information

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO CHAPTER 使用 Hadoop 打造自己的雲 8 8.3 測試 Hadoop 雲端系統 4 Nodes Hadoop Map Reduce Hadoop WordCount 4 Nodes Hadoop Map/Reduce $HADOOP_HOME /home/ hadoop/hadoop-0.20.2 wordcount echo $ mkdir wordcount $ cd wordcount

More information

coverage2.ppt

coverage2.ppt Satellite Tool Kit STK/Coverage STK 82 0715 010-68745117 1 Coverage Definition Figure of Merit 2 STK Basic Grid Assets Interval Description 3 Grid Global Latitude Bounds Longitude Lines Custom Regions

More information

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應 專題進度 老師 : 趙啟時老師 學生 : 陳建廷 2013/10/13 用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應 程式碼 : package com.example.phone; import java.util.arraylist;

More information

What is OOP? 是一種寫程式的技巧, 而不是一種程式語言 是一種管理程式碼的方法 使得日後維護方便容易讓程式碼更具彈性讓程式碼提高再使用率 軟體元件 software components 常用來寫大型的軟體 軟體工程 software engineering 著名的支援 OOP 程式語言

What is OOP? 是一種寫程式的技巧, 而不是一種程式語言 是一種管理程式碼的方法 使得日後維護方便容易讓程式碼更具彈性讓程式碼提高再使用率 軟體元件 software components 常用來寫大型的軟體 軟體工程 software engineering 著名的支援 OOP 程式語言 Data Structures Lesson 2 Object-oriented Programming in C++ (1) James C.C. Cheng Department of Computer Science National Chiao Tung University What is OOP? 是一種寫程式的技巧, 而不是一種程式語言 是一種管理程式碼的方法 使得日後維護方便容易讓程式碼更具彈性讓程式碼提高再使用率

More information

untitled

untitled 3 C++ 3.1 3.2 3.3 3.4 new delete 3.5 this 3.6 3.7 3.1 3.1 class struct union struct union C class C++ C++ 3.1 3.1 #include struct STRING { typedef char *CHARPTR; // CHARPTR s; // int strlen(

More information

Microsoft PowerPoint - 13_ClassAndObj.ppt

Microsoft PowerPoint - 13_ClassAndObj.ppt Visual Basic 2005 (VB.net 2.0) 程式設計 講師 : 戴志華 hana@arbor.ee.ntu.edu.tw 國立台灣大學電機工程研究所 第十三章 物件與類別 物件與類別 物件導向程式設計 物件與類別的建立 物件與類別 物件 (object) Ex. 人 屬性 (property) 身高 體重 血型 方法 (method) 走路 跑步 訊息 (message) 交談 事件

More information

概述

概述 OPC Version 1.6 build 0910 KOSRDK Knight OPC Server Rapid Development Toolkits Knight Workgroup, eehoo Technology 2002-9 OPC 1...4 2 API...5 2.1...5 2.2...5 2.2.1 KOS_Init...5 2.2.2 KOS_InitB...5 2.2.3

More information

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc 2 5 8 11 0 13 1. 13 2. 15 3. 18 1 23 1. 23 2. 26 3. 28 2 36 1. 36 2. 39 3. 42 4. 44 5. 49 6. 51 3 57 1. 57 2. 60 3. 64 4. 66 5. 70 6. 75 7. 83 8. 85 9. 88 10. 98 11. 103 12. 108 13. 112 4 115 1. 115 2.

More information

個 人 的 手, 拉 著 瞎 子 的 手 把 他 帶 往 村 外 的 時 候, 對 於 瞎 子 來 講, 那 個 人 的 手 和 耶 穌 的 手 有 沒 有 區 別? 沒 有! 為 什 麼 沒 有 區 別? 因 為 對 於 一 個 瞎 子 來 說, 手 和 耳 朵 就 是 他 接 觸 世 界, 瞭

個 人 的 手, 拉 著 瞎 子 的 手 把 他 帶 往 村 外 的 時 候, 對 於 瞎 子 來 講, 那 個 人 的 手 和 耶 穌 的 手 有 沒 有 區 別? 沒 有! 為 什 麼 沒 有 區 別? 因 為 對 於 一 個 瞎 子 來 說, 手 和 耳 朵 就 是 他 接 觸 世 界, 瞭 課 目 : 講 道 法 學 生 : 楊 建 偉 老 師 : 汪 院 長 時 間 :2009 年 8 月 1 日 靈 命 三 階 ( 可 8:22-26) 在 四 部 福 音 書 中, 這 是 一 段 很 特 別 的 記 載 特 別 在 什 麼 地 方 呢? 是 不 是 特 別 在 耶 穌 基 督 對 一 個 病 人 的 醫 治? 不, 在 耶 穌 三 年 半 的 服 侍 當 中, 曾 經 醫 治 數

More information

The golden pins of the PCI card can be oxidized after months or years

The golden pins of the PCI card can be oxidized after months or years Q. 如何在 LabWindows/CVI 編譯 DAQ Card 程式? A: 請參考至下列步驟 : 步驟 1: 安裝驅動程式 1. 安裝 UniDAQ 驅動程式 UniDAQ 驅動程式下載位置 : CD:\NAPDOS\PCI\UniDAQ\DLL\Driver\ ftp://ftp.icpdas.com/pub/cd/iocard/pci/napdos/pci/unidaq/dll/driver/

More information

Microsoft Word - ACI chapter00-1ed.docx

Microsoft Word - ACI chapter00-1ed.docx 前言 Excel Excel - v - 財務管理與投資分析 -Excel 建模活用範例集 5 相關 平衡 敏感 - vi - 前言 模擬 If-Then 規劃 ERP BI - vii - 財務管理與投資分析 -Excel 建模活用範例集 ERP + BI + ERP BI Excel 88 Excel 1. Excel Excel 2. Excel 3. Excel - viii - 前言 1.

More information

Microsoft Word - 投影片ch03

Microsoft Word - 投影片ch03 Java2 JDK5.0 教學手冊第三版洪維恩編著博碩文化出版書號 pg20210 第三章變數與資料型態 本章學習目標認識變數與常數認識 Java 的基本資料型態學習如何進行資料型態轉換學習如何由鍵盤輸入資料 變數與資料型態 3-2 Java 的資料型態分為 : 與 原始資料型態 (primitive type) 非原始資料型態 (non-primitive type) 原始資料型態包括了整數與浮點數等型態

More information