C# 3.0 物件導向程式設計

Size: px
Start display at page:

Download "C# 3.0 物件導向程式設計"

Transcription

1 C# 3.0 程式語言物件導向程式設計 講師 : 林賢達 Peter.lin@imestech.com 1 課程大綱 物件導向基礎概念 類別 (Class) 類別成員 (Class Member) 封裝 (Encapsulation) 繼承 (Inheritance) 2 物件導向基礎概念 什麼是物件導向 (Object Oriented)? 物件導向是將問題領域中涉及的人 事 物予以物件化, 透過這些物件之間的訊息傳遞, 相互溝通協調, 執行某項工作 Windows 檔案管理 :System.IO 命名空間 Directory 類別 : 建立 移動目錄和列舉子目錄 File 類別 : 建立 複製 刪除 移動和開啟檔案 StreamReader 和 StreamWriter 類別 : 以特定的編碼方式讀取檔案內容 3 1

2 物件導向基礎概念 物件導向程式設計 (OOP) 是以物件導向分析設計 (OOAD) 產出的圖表為基礎 UML( 統一建模語言 ) + 工具 :IBM Rational Rose,Visio,SmartDraw,DynamicDraw 系統分析 : 功能需求 系統規格系統設計 : 系統規格 設計圖表程式開發 : 設計圖表 定義類別 4 物件導向基礎概念 使用案例 (Use Case) 使用案例 : 規劃系統功能的範圍, 做什麼? 不做什麼 角色 : 參與系統運作的使用者或外部系統 5 物件導向基礎概念 使用案例描述 申請門號描述 :(1) 顧客填寫申請表 : 身分證號碼 姓名 出生年月日 住址 手機號碼 申請日期等 (2) 店員查核身分證明文件 從案例描述中找出候選的類別 名詞 : 物件 ( 顧客 店員 出生年月日 ) 或狀態 ( 姓名 住址等 ) 動詞 : 行為, 例如填寫申請表 查核身分 6 2

3 類別 類別是一組具有相同資料結構和操作的物件的集合 類別對這些具有相同性質的物件的抽象, 描述物件的共同特徵 類別定義了一個物件的 " 狀態 " 和 " 行為 " 使用類別的私有欄位來描述與保存物件的內部狀態 使用類別中的方法去定義物件的行為 類別定義了一個範本, 使用此範本可以建立一個或多個物件 7 宣告類別 使用 class 關鍵字宣告類別 存取修飾詞 class 類別名稱 : object {// 存取級別 類別名稱 父類別 // 類別成員 // 類別主體 class{ 類別成員 資料成員 : 常數, 欄位和屬性 方法成員 : 方法 事件, 建構函式和解構函式 8 實體化 (Instatiation) 使用類別來建立物件的過程 使用 new 關鍵字 Car mycar = new Car(); 沒有可存取的建構子 : 使用工廠模式建立物件 FileStream fs = File.Create("C:\123.txt") ; 使用反射 (Reflection) Type t= Type.GetType("Car") ; 9 3

4 類別 VS 物件 類別是在設計階段時完成, 物件是類別在執行階段的實體, 佔用記憶體空間且具有生命週期 類別是物件範本 物件是類別的執行實體具有各自的狀態 10 物件 VS 物件變數 ( 物件參考 ) 物件變數儲存的是物件的參考位址, 而非物件本身 Car mycar ; // 物件變數 mycar = new Car() ; // 物件 mycar new Car() 堆疊 (Stack) 堆積 (Heap) 11 類別成員 常數 (Constant): 代表與類別相關聯的常數值 欄位 (Field): 類別中的變數 方法 (Method): 負責執行類別中的計算 ( 處理 ) 屬性 (Property): 對類別中欄位值的存取邏輯 事件 (Event): 用於說明發生了什麼事情 建構函式 (Constructor) 和解構函式 (Destructor): 分別用於對類別進行實體化和摧毀物件 12 4

5 封裝 (Encapsulation) 把屬性和方法封裝在類別中, 然後使用類別建立物件 ( 類別的執行實體 ), 接著使用物件存取屬性和叫用方法 封裝的好處 良好的封裝可以增加內聚性, 降低耦合性 類別內部的實現可以自由修改 類別具有清晰的對外開放介面 13 封裝 使用存取修飾詞來達到封裝的目的 private: 只允許在類別中存取之 protected: 只允許在類別或子類別中存取之 internal: 只允許在相同專案中存取之 protected internal: 只允許在類別 子類別或相同專案中存取之 public: 任何地方均可存取之 14 封裝 ( 續 ) 方案 類別 A private vv1 ; internal vv2 ; protected v3 ; protected internal v4 ; public v5 ; 專案 1 類別 B 類別 C : 類別 A 類別 D : 類別 A 專案 2 類別 E 15 5

6 屬性 屬性提供了對物件內部狀態的存取 屬性實現了物件的封裝性 : 不直接操作類別的資料內容, 而是透過存取器來進行存取 特性 由 get/set 存取器來控制對內部狀態的存取, 當取值時會叫用 get 函式 ; 賦值時則會叫用 set 函式, 可以在 get/set 函式提供存取邏輯 內部是函式 ( 定義 ), 外部則像個欄位 ( 使用上 ) 16 屬性 使用 get/set 函式存取私有欄位 注意 : 屬性名稱後面不可以有 () 存取修飾詞資料類型屬性名稱 { get { // 取值 Return 私有欄位 ; set { if (value<0) value =0 ; 私有欄位 = value ; // 賦值 //value 關鍵字表示外部傳入的值 17 屬性 唯讀屬性 (ReadOnly) 存取修飾詞資料類型屬性名稱 { get { return 私有欄位 ; 唯寫屬性 (WriteOnly) 存取修飾詞資料類型屬性名稱 { set { 私有欄位 =value ; 18 6

7 索引器 (Indexer) 索引器是一個特殊的屬性, 它提供了使用索引方式方便地存取類別的集合資料的方法 索引器通常在類別中表示元素集合 public class Sale ( private Customer[] _customers ; public Sale() { _customers = new Customer[10] ; 19 索引器 索引器的定義類似屬性 屬性名稱是 this, 表示目前物件, 參數列包含在中括號 [] 內, 不是小括號 () public Customer Client [ int index] { get { return _customers[index] ; set { if (value!= null) { _customers[index] = value ; 20 索引器 使用索引器可以像操作陣列的方式來存取物件中的集合 Sale Peter = new Sale() ; Peter[0] = new Customer ("A") ; Peter[1] = new Customer ("B") ; Peter[2] = new Customer ("C") ; 21 7

8 方法 方法可用於定義物件的行為 無傳回值, 不管有無參數, 方法名稱後面一定要有小括號 () [ 存取修飾詞 ] void 方法名稱 ( 參數宣告 ) { 有傳回值 [ 存取修飾詞 ] 資料類型方法名稱 ( 參數宣告 ) { 22 建構函式 類別的特殊方法, 主要用於初始化實體的資料成員 當使用 new 關鍵字實體化物件時, 由.NET CLR 自動叫用 特性 建構函數名稱必頇與類別名稱相同, 而且不可有傳回值 ( 不使用 void 關鍵字 ) 個數不定 ( 使用重載 Overload), 可以有一個以上的建構函式 23 建構函式 定義建構函式 即使沒有定義它, 編譯器也會自動為類別提供一個預設的建構函式 public class 類別名稱 { public 類別名稱 () { // 初始化 當實體化物件時, 由.NET CLR 叫用 類別名稱物件變數 = new 類別名稱 () ; 24 8

9 建構函式 重載建構函式 public 類別名稱 (String firstname, String lastname) : base () { public 類別名稱 (String firstname, String lastname) : this (firstname, lastname, 0) { 建構函式之間的叫用 使用 this 關鍵字 25 解構函式 建構函數名稱必頇是 ~ 類別名稱, 而且不可有參數和傳回值 ( 不使用 void 關鍵字 ) 用於釋放資源 當物件被 Garbage Collection 回收時, 會自動被叫用 ~ 類別名稱 () { // 釋放資源 26 特性 (Attribute) 使用中括弧 ([]) 提供特殊的資料 可用於類別 方法和屬性 例如標題 版本 Web 服務 組件 安全性和自訂設定 等 [WebMethod()] public void HelloWorld() { 27 9

10 建立物件 宣告後初始化 ( 使用 new 關鍵字 ) BankAccount acc ; acc = new BankAccount() ; 宣告同時初始化, 使用預設建構函式 BankAccount acc =new BankAccount() ; 宣告同時初始化, 使用重載建構函式 BankAccount acc =new BankAccount("Peter", "Lin") ; BankAccount acc =new BankAccount("Peter", "Lin", 1000) ; 28 摧毀物件 GC ( 資源回收器,Garbage Collection) 當記憶體不夠時,GC 將回收不再被使用物件佔用的資源 使用物件變數 = Nothing 標示不再被使用 使用 GC.Collect() 強制回收資源 29 靜態 (Static) 成員 可建立全域變數 全域方法或常數 ( 隱含的靜態成員 ) 靜態成員不屬於任何物件, 可以使用類別名稱直接存取 double radius = 10 ; Double area = Math.PI * Math.Pow(radius, 2) ; 若將類別中的某個成員宣告為 static, 該成員稱為靜態成員 30 10

11 靜態成員 靜態成員 VS 實體成員 靜態成員直接由類別存取 ; 實體成員由物件存取 靜態成員是屬於類別 : 實體成員則屬於類別的實體 物件 靜態方法為類別所有, 因此不用建立類別的實體就可以叫用 例如 System.Math 類別 31 靜態資料成員 允許一個類別的多個實體共用相同的欄位 使用 static 關鍵字 存取修飾詞 class 類別名稱 { public static 資料類型欄位名稱 ; 直接使用類別名稱來存取 static 欄位 類別名稱. 欄位名稱 = 值 ; // 無需建立物件 32 靜態方法成員 使用 static 關鍵字 存取修飾詞 class 類別名稱 { public static 資料類型方法名稱 ( 參數宣告 ) { 使用類別名稱來存取 static 方法成員 類別名稱. 方法名稱 ( 引數 ) ; // 無需建立物件 靜態方法成員只能存取類別中的靜態資料成員 33 11

12 命名空間 (Namespace) 使用命名空間來組織類別 ( 邏輯的儲存位置 ) 增強可讀性, 例如 System.IO 降低類別名稱的衝突 namespace 命名空間名稱 1 { 存取修飾詞 class 類別名稱 { 命名空間名稱 1. 類別名稱命名空間名稱 2. 類別名稱 類別實際的儲存位置是組件 (dll), 與命名空間無直接關係 34 命名空間 完全引用 從命名空間的最外層開始引用 NS1.Class1 c; 匯入命名空間 在程式碼檔上方使用 using 關鍵字匯入要使用的命名空間 using NS1 ; using Other = NS2 ; Class1 c1; Other.Class1 c2 ; // 命名空間的別名 (Alias) 35 部分類別 (Partial Class) C# 2.0 可以將類別 結構或介面的定義拆分到一個以上的原始碼檔案中 public class BankAccount { private double _blance; 在類別宣告前加入 partial 關鍵字 public partial class BankAccount { public double WithDraw(double ) {; 36 12

13 部分類別 什麼情況下使用部分類別? 開發大型專案時, 將一個類別分佈於多個獨立檔案中可以讓多位程式開發人員同時對該類別進行處理 將視覺化設計器自動建立的原始碼與開發人員編寫的原始碼分開, 避免誤動作造成錯誤 (Visual Studio 在建立 Windows 表單 ASPX 網頁時都使用此方法 ) 37 部分類別 部分類別的限制 同一類別的所有部分都必頇定義在同一組件 各個部分必頇使用相同的存取修飾詞 如果將任意部分宣告為抽象, 則整個類別都被視為抽象類別 如果將任意部分宣告為 sealed, 則整個類別都被視為 sealed 如果將任意部分宣告時指定父類別, 則整個類別都將繼承該類別 38 繼承 (Inheritance) 繼承是使用已存在的類別為基礎建立新類別的技術 子類別從父類別獲取 public internal 和 protected 成員 ( 不包含建構函式和解構函式 ), 而且可以定義自己的成員 C# 只支援單一繼承, 子類別有且僅有一個父類別, 也就是繼承關係是一對一 使用繼承我們可以衍生出無數個子類別, 子類別還可以建立自己的子類別 39 13

14 繼承 為什麼要使用繼承? 原始碼重用, 減少撰寫相同的程式碼 設計重用, 在父類別定義公開的成員, 然後由其衍生新的子類別, 子類別可以有自己的成員 通常用於表示 "is a" 的關係, 如果 A 類別是從 B 類別中繼承而來, 即 A 是 B 的子類別, 則我們可以說 :"class A is-a class B" 40 繼承 使用冒號 (:) 宣告類別子類別繼承某個父類別 如果沒有明確指定繼承哪一個父類別, 則 C# 預設繼承自 object 存取修飾詞 class 類別名稱 { 存取修飾詞 class 子類別名稱 : 父類別名稱 { 41 繼承 使用 abstract 宣告的類別必頇被繼承, 不能被實體化, 這種類別又稱為抽象類別 使用 sealed 宣告的類別不能被繼承 ( 防止繼承 ) 42 14

15 繼承 :Demo NumericTextBox 只允許輸入數字的文字方塊 步驟 繼承自 System.Windows.Forms.TextBox 覆寫 OnKeyPress 方法, 檢查輸入字元 if (! Char.IsDigit(e.KeyChar)) { e.handled = true ; 43 使用 base 關鍵字 在子類別中叫用父類別的方法成員 可以叫用 public protected 和 internal 方法 存取修飾詞 Class 子類別名稱 : 父類別名稱 { public 資料類型方法名稱 ( 參數宣告 ) { base. 方法名稱 ( 參數 ) ; base 不是一個真正的物件 44 課程大綱 多形 (Polymorphism) 重載 (Overload) 覆寫 (Overrides) 介面 (Interface) 委派 (Delegate) 事件 (Event) 45 15

16 多形 (Polymorphism) 同一個操作作用在不同的類別實體 ( 物件 ), 不同的類別有不同的解釋, 產生不同的執行結果 多個類別具有同名方法, 但有不同的操作 樂器可以演奏歌曲, 不同的樂器有不同的演奏方式, 例如 : 鋼琴 : 用手彈鍵盤提琴 : 用手拉琴弓長笛 : 用嘴吹口管 46 多形 實作方式 類別 : 使用重載 (Overload) 來實現多形 在編譯時, 根據參數類型和傳回類型等資訊來決定執行哪一個操作 繼承 : 透過子類別覆寫 (Overrides) 父類別的 Overridable 方法來實作多形 在執行時, 才會根據實際情況來決定執行哪一個操作 介面 : 類別實作在介面所定義的成員 一個類別可實作多個介面 47 重載 (Overload) 編譯時期的多形性通過重載方法來實現, 使用參數類型來確認叫用哪一個方法 在一個類別中的方法可以有多個不同的版本 : 有相同的函式名稱, 但參數的個數 順序和資料類型必頇不同 public OrderItem GetOrderItem() { return new OrderItem(); public OrderItem GetOrderItem(int itemid) { return this.orderitems(itemid) ; 48 16

17 覆寫 (Override) 執行時期的多形性通過子類別覆寫父類別中的虛擬方法來實現 子類別為了滿足個別需求重新定義某個方法的不同實作, 也就是在子類別中覆寫從父類別繼承而來的方法 只有虛擬方法和抽象方法才能被覆寫 49 覆寫 使用 override 關鍵字來覆寫父類別的 virtual 或 abstract 方法 方法名稱, 參數宣告和傳回類型都必頇相同 執行時期將確定叫用物件是什麼類別的實體, 然後叫用適當的覆寫方法 50 虛擬 (Virtual) 方法 使用 virtual 關鍵字宣告虛擬方法 [ 存取修飾詞 ] virtual 資料類型方法名稱 ( 參數宣告 ); 類別可以定義虛擬方法 虛擬屬性以及虛擬索引子 它的子類別能夠覆寫這些成員, 實現類別的多形性 虛擬方法可以有實作 51 17

18 抽象 (abstract) 方法 在父類別只定義全部子類別所共用的一般形式, 讓每個子類別各自實作其細節, 父類別本身必提供這些方法的實作細節 使用 abstract 關鍵字宣告抽象方法, 可以看成是沒有實作的虛擬方法 [ 存取修飾詞 ] abstract 資料類型方法名稱 ( 參數宣告 ); 繼承抽象類別的子類別, 它必頇實作抽象類別中的所有抽象方法 52 抽象方法 包含一個或多個抽象方法的類別, 必頇宣告成抽象類別 [ 存取修飾詞 ] abstract class 類別名稱 ( 參數宣告 ) { // 抽象方法 因為抽象類別沒有完整的實作, 所以不能建立抽象類別的物件 53 Override VS Overload Override Overload 位置存在於繼承關係的類別同一個類別 方法名稱相同 參數宣告相同 傳回類型相同 相同 必頇不同 可以不同 54 18

19 介面 (Interface) 介面為類別提供了藍圖 (blueprint), 只提供定義, 但不含實作部分 實現介面的類別必頇提供介面成員的實作 介面本身可以從多個基底 ( 父 ) 介面衍生而來 55 介面 定義方法 屬性和事件的簽章 (Signature) 使用 interface 關鍵字 interface 介面名稱 { 資料類型屬性名稱 { set; get; void 方法名稱 ( 參數宣告 ); 資料類型方法名稱 ( 參數宣告 ); 介面也可以繼承, 使用冒號 (:) 56 委派 (Delegate) 委派是函式的封裝, 代表某一類函式 這些函式都具有相同的簽章 : 相同的參數類型和傳回值類型 委派類型指定它所代表的方法之傳回類型和參數宣告, 也就是它可以代表具有相同的參數列和傳回類型的任何一個方法 委派是一個類型, 當實體化時需提供一個函式參考作為建構函數的參數, 此函數必頇和委派具有相同的簽章 57 19

20 委派 為什麼要使用委派? 提供更靈活的方法叫用 用於非同步回呼 (Asynchronous Callback): 由於產生委派實體是一個物件, 所以可以將其作為參數來傳遞, 也可以將其賦值給屬性 此時非同步方法便可以將一個委派作為參數, 並且以後可以叫用該委派 多執行緒程式設計中使用委派來指定啟動一個執行緒時叫用的方法 提供事件處理機制, 使用委派指定某個事件的處理函式 58 委派 委派的宣告方式與方法的宣告方式相似 使用 delegate 宣告一個委派物件, 宣告時需指定委派所代表函式的參數宣和傳回值類型 存取修飾詞 delegate 資料類型委派類型名稱 ( 參數宣告 ) ; 委派類型均繼承自 Delegate 或 MulticaseDelegate 代表一組具有相同參數宣告與傳回值類型的函式 public 資料類型方法名稱 ( 參數宣告 ) { 59 委派 使用委派 : 先宣告委派類型, 再產生實體並指定所代表具體函式 使用 new 關鍵字建立委派的實體, 同時在括號內指定一個具體的函式 委派類型名稱委派物件變數 ; 委派物件變數 = new 委派類型名稱 ( 函式名稱 ) ; 使用委派實體, 並傳入給委派所代表方法的參數來叫用其代表的函式 委派物件變數.Invoke ( 引數 ) ; 60 20

21 委派 使用 delegate 叫用來排序陣列 SortAscending 遞增排序 : 2, 1, 3 1, 2, 3 SortDescending 遞減排序 : 2, 1, 3 3, 2, 1 宣告 delegate 類型 delegate void SortMethod (int[] intarray) ; 61 委派 定義 SortAscending 與 SortDescending 方法 private void SortAscending (int[] IntArray) { Array.Sort(IntArray) ; private void SortDescending (int[] IntArray) { Array.Sort(IntArray) ; Array.Reverse(IntArray) ; 62 委派 建立委派實體並指定所代表的具體函式, 然後叫用函式 private void SortArray(bool Ascending, int[] IntArray) { SortMethod del; if (Ascending == true) del = New SortMethod(AddressOf SortAscending) ; else del = New SortMethod(AddressOf SortDescending) ; del.invoke(intarray) ; 63 21

22 事件 使用委派來實作事件處理機制, 稱為事件委派 事件委派的基本形式 public delegate void EventHandler (object sender, object, EventArgs e) ; object sender: 來源物件 EventArgs e,system.eventargs 類別的實體或衍生類別實體, 包含事件的相關訊息 64 事件.NET Framework 定義了許多的事件委派 public delegate void KeyEventHandler(object sender, KeyEventArgs e) ; public delegate void MouseEventHandler(object sender, MouseEventArgs e) ; 自訂事件委派 public delegate void NameEventHandler(object source, NameEventArgs e) ; 必頇定義 NameEventArgs 類別 65 事件委派.NET Framework 的事件委派實例 最常見的 Button Click Event Handler 66 22

23 事件 使用 event 關鍵字宣告事件名稱, 它的類型為事件委派 public event NameEventHandler OnNameHandler ; 觸發事件 OnNameListEvent(this, new NameListEventArgs()) ; 建立物件 Protected NameList MyList = New NameList(); 67 事件 事件處理函式, 參數宣告必頇與事件委派一致 private void ShowNameListInfo(object sender, NameListEventArgs e) { 使用 += 動態建立事件與處理函式的關聯 NameListEventHandler EventHandlerDelegate = new OnNameListEventHandler(ShowNameListInfo); mylist.onnamelistevent += EventHandlerDelegate; 68 事件 建立事件與事件處理函式的關聯 ( 續 ) mylist.namelistevent += new OnNameListEventHandler(ShowNameListInfo); 使用 -= 動態取消關聯 NameListEventHandler EventHandlerDelegate = new OnNameListEventHandler(ShowNameListInfo); mylist.onnamelistevent -= EventHandlerDelegate; mylist.namelistevent - = new OnNameListEventHandler(ShowNameListInfo); 69 23

24 Q & A 24

Visual Basic 2005 程式語言

Visual Basic 2005 程式語言 Visual Basic 2008 程式語言物件導向程式設計 講師 : 林賢達 Peter.lin@imestech.com 1 課程大綱 物件導向基礎概念 類別 (Class) 類別成員 (Class Member) 封裝 繼承 (Inherits) 2 物件導向基礎概念 什麼是物件導向 (Object Oriented)? 物件導向是將問題領域中涉及的人 事 物予以物件化, 透過這些物件之間的訊息傳遞,

More information

運算子多載 Operator Overloading

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

More information

前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii

前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii 前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii C# 7 More Effective C# C# C# C# C# C# Common Language Runtime CLR just-in-time

More information

Microsoft Word - 投影片ch11

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

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

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

untitled

untitled 1 Outline 類别 欄 (1) 類 類 狀 更 易 類 理 若 類 利 來 利 using 來 namespace 類 ; (2) namespace IBM class Notebook namespace Compaq class Notebook 類别 類 來 類 列 欄 (field) (property) (method) (event) 類 例 立 來 車 類 類 立 車 欄 料

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

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

Microsoft PowerPoint - chap08.ppt

Microsoft PowerPoint - chap08.ppt 第八章繼承 資訊科技系 林偉川 類別繼承使用 extends 關鍵字 修飾字 class 子類別 extends 父類別 1 { // 區塊內的程式敘述 類別以 final 宣告時, 不能做為父類別 extends 關鍵字之後只能接一個父類別 2 1 例子 : class A{ class B extends A { class C extends A { class D extends B { final

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

CHAPTER VC#

CHAPTER VC# 1. 2. 3. 4. CHAPTER 2-1 2-2 2-3 2-4 VC# 2-5 2-6 2-7 2-8 Visual C# 2008 2-1 Visual C# 0~100 (-32768~+32767) 2 4 VC# (Overflow) 2-1 2-2 2-1 2-1.1 2-1 1 10 10!(1 10) 2-3 Visual C# 2008 10! 32767 short( )

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

PowerPoint Presentation

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

More information

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

投影片 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

untitled

untitled Inside ASP.NET 2.0- ASP.NET 1.1 2. 理念 讀 了 了 度 讀 了 理 類 來 來說 流 了 來 來 來 來 理 來 不 讀 不 不 力 來參 流 讀 了 異 行 來了 錄 行 不 了 來 了 來 行 論說 了 更 不 例 來了 力 行 樂 不 說 兩 例 利 來 了 來 樂 了 了 令 讀 來 不 不 來 了 不 旅行 令 錄 錄 來 了 例 來 利 來 ManagerProvide

More information

《大话设计模式》第一章

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

More information

Microsoft PowerPoint - C_Structure.ppt

Microsoft PowerPoint - C_Structure.ppt 結構與其他資料型態 Janet Huang 5-1 結構的宣告 struct 結構名稱 struct 結構名稱變數 1, 變數 2,, 變數 m; struct 結構名稱 變數 1, 變數 2,, 變數 m; student; student; 5-2 1 結構變數初值的設定 struct 結構名稱 struct 結構名稱變數 = 初值 1, 初值 2,, 初值 n student="janet","1350901",100,95

More information

(Microsoft Word - wes _\246p\246\363\250\317\245\316LED\277O\305\343\245\334\252\254\272A.doc)

(Microsoft Word - wes _\246p\246\363\250\317\245\316LED\277O\305\343\245\334\252\254\272A.doc) 作者 Amber 版本 1.0.0 日期 2012/04/25 頁數 1/7 如何使用 LED 燈顯示狀態? 適用於 : 平台 作業系統版本 XPAC utility 版本 XP-8000 系列 N/A N/A XP-8000-Atom 系列 WES2009 所有版本 N/A: Not applicable to this platform and OS. 注意! 欲變更系統的任何設定之前, 請先關閉

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 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

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

More information

Microsoft Word - chap12.doc

Microsoft Word - chap12.doc 94 12. Inheritance in Java Java 的類別同樣有繼承的功能, 衍生類別同樣會繼承基本類別所有的資料成員與函式成員, 當繼承而來的函式成員不適於衍生類別時, 同樣可以在衍生類別之定義內將其重新定義 (override), 並可進一步加入新的成員 ( 資料或函式 ), 以符合衍生類別應有的屬性與行為 一基本類別 ( 父類別 ) 可以有需多繼承它的衍生類別 ( 子類別 ), 與

More information

Microsoft PowerPoint - 08_Class

Microsoft PowerPoint - 08_Class 第八章認識類別 認識類別的基本架構在類別裡使用資料成員與成員函數學習 this 關鍵字的用法在類別裡設計 method 的多載學習如何使用類別裡的公有與私有成員 1 8.1 認識類別 類別的基本概念 每一個 Java 程式, 至少會存在一個或一個以上的類別 類別是由資料成員與成員函數封裝而成 矩形有寬 (width) 與高 (height) 兩個基本屬性 根據這兩個屬性, 可求出面積 (area)

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

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

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

KillTest 质量更高 服务更好 学习资料   半年免费更新服务 KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 70-536Chinese(C++) Title : TS:MS.NET Framework 2.0-Application Develop Foundation Version : DEMO 1 / 10 1. Exception A. Data B. Message C.

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

2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF

2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF Chapter 2 WF 2.1 WF 2.2 2. XAML 2. 2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF WF WF WF WF EDI API WF Visual Studio Designer 1 2.1 WF Windows Workflow Foundation 2 WF 1 WF Domain-Specific

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

extend

extend (object oriented) Encapsulation Inheritance Polymorphism Dynamic Binding (base class) (derived class) 1 class Base { int I; void X(); void Y(); class Derived: public Base { private: int j; void z(); Derived

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

新・解きながら学ぶJava

新・解きながら学ぶJava 481! 41, 74!= 40, 270 " 4 % 23, 25 %% 121 %c 425 %d 121 %o 121 %x 121 & 199 && 48 ' 81, 425 ( ) 14, 17 ( ) 128 ( ) 183 * 23 */ 3, 390 ++ 79 ++ 80 += 93 + 22 + 23 + 279 + 14 + 124 + 7, 148, 16 -- 79 --

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 - 01.DOC

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

More information

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

More information

Slide 1

Slide 1 Java 程式設計入門 講師 : 陳昭源 CSIE, NTU 2005/07/16 Outline 物件基礎 Object Basics 類別與成員 Classes & Members Exercise July 16, 2005 Page 2 物件導向程式設計 Object-Oriented Programming (OOP) 類別 Class 模板 樣板, 可根據此規格建立物件 Hidden Implementation

More information

C/C++基礎程式設計班

C/C++基礎程式設計班 C/C++ 基礎程式設計 C++: 物件導向程式設計 - 使用類別 (Class) 決不 決不 決不 決不放棄! Never, never, never, never give up. -Steve Jobs 講師 : 張傑帆 CSIE, NTU 課程大綱 類別 (Class) 物件導向 類別, 物件, 成員 權限 建構式與解構式 作業 C++ 物件導向 以物件為基礎的程式設計, 將程式中互動的單元視為一個個的物件

More information

Excel VBA Excel Visual Basic for Application

Excel VBA  Excel Visual Basic for Application Excel VBA Jun5,00 Sub 分頁 () Dim i As Integer Dim Cname As String Dim Code As Variant Set score=thisworkbook.sheets("sheet") Code=Array(" 專北一 "," 專北二 "," 專北三 "," 專桃園 "," 專桃竹 "," 專中苗 ", " 專台中 "," 專台南 ","

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

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

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

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

More information

09_Constructor

09_Constructor 物件的建構 物件的建構 幫物件設定初始狀態 物件的建構方法 (Constructor) 建構方法 是一種 method Constructor 在建立物件時由系統系統自動自動呼叫, 例如當在建構物件時 Ootest ot = new Ootest(); () 就是系統自動呼叫的作用 若類別中沒有定義建構方法, 則 Java 編譯器會自動幫該類別定義一個預設建構方法 (Defualt constructor)

More information

Microsoft PowerPoint - chap07.ppt

Microsoft PowerPoint - chap07.ppt 第七章類別類別與物件 資訊科技系 林偉川 類別的定義語法 修飾字 class 類別名稱 { // 類別的標頭 // 屬性宣告 // 建構子定義 // 方法定義 2 1 類別的修飾字 public- 公開類別, 宣告成此種類別可以被任何類別所使用 無修飾字 (default) 類別, 此種類別僅能被同一套件 (package) 內的類別使用 final- 此種類別不可被繼承 abstract- 此為抽象類別的修飾字

More information

Chapter 16 集合

Chapter 16 集合 Chapter 16 集合 20 ArrayList StringCollection 16 本章學習目標 : ArrayList ArrayList Array StringCollection 16-1 21 10-3-8 System.Array Clear Clear 16-1 Clear System.Array Microsoft System.Collection IList 542

More information

導讀 ASP.NET HTML ASP 第一篇 基礎篇第 1 章 認識 ASP.NET ASP.NET ASP.NET ASP.NET ASP.NET 第 2 章 認識 Visual Studio 20 開發環境 Visual Studio 20 Visual Studio 20 第二篇 C# 程式

導讀 ASP.NET HTML ASP 第一篇 基礎篇第 1 章 認識 ASP.NET ASP.NET ASP.NET ASP.NET ASP.NET 第 2 章 認識 Visual Studio 20 開發環境 Visual Studio 20 Visual Studio 20 第二篇 C# 程式 導讀 ASP.NET HTML ASP 第一篇 基礎篇第 1 章 認識 ASP.NET ASP.NET ASP.NET ASP.NET ASP.NET 第 2 章 認識 Visual Studio 20 開發環境 Visual Studio 20 Visual Studio 20 第二篇 C# 程式語言篇第 3 章 C# 程式語言基礎 C# C# 3.0 var 第 4 章 基本資料處理 C# x

More information

Strings

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

More information

105Tr_CIS1

105Tr_CIS1 准考證號碼 : 國立臺中教育大學 105 學年度學士班日間部轉學招生考試 計算機概論試題 適用學系 : 資訊工程學系二 三年級 一 選擇題 (40%, 每題 2%) 1. 在物件導向程式設計中, 一個抽象類別 (Abstract Class) 為 A. 一個沒有方法 (method) 的類別 B. 一個不能被繼承 (inherit) 的類別 C. 一個不能被實體化 (instantiated) 的類別

More information

基于ECO的UML模型驱动的数据库应用开发1.doc

基于ECO的UML模型驱动的数据库应用开发1.doc ECO UML () Object RDBMS Mapping.Net Framework Java C# RAD DataSetOleDbConnection DataGrod RAD Client/Server RAD RAD DataReader["Spell"].ToString() AObj.XXX bug sql UML OR Mapping RAD Lazy load round trip

More information

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP:  ******************* * 关于 Java 测试试题 ****** ******************* * 关于 Java 测试试题 ******************* 問 1 运行下面的程序, 选出一个正确的运行结果 public class Sample { public static void main(string[] args) { int[] test = { 1, 2, 3, 4, 5 ; for(int i = 1 ; i System.out.print(test[i]);

More information

C/C++ Programming

C/C++ Programming 265 第九講 結構 講師 : 李根逸 (Ken-Yi Lee), E-mail: feis.tw@gmail.com 266 課程 大綱 結構 (struct) 結構宣告 [P.267] 結構定義 [P.268] 結構變數宣告 [P.269] 結構變數的初始化 [P.272] 存取結構成員 [P.244] 傳送 大型資料型態參數 [P.277] 267 結構宣告 結構是 一種衍 生的 自訂資料型態,

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

單步除錯 (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

Microsoft Word - chap10.doc

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

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

<4D6963726F736F667420506F776572506F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

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

More information

Microsoft PowerPoint htm

Microsoft PowerPoint htm Java 程式設計基礎班 (5) 莊坤達台大電信所網路資料庫研究室 Email: doug@arbor.ee.ntu.edu.tw Class 5 1 回顧 繼承概念 Java Interface Class 5 2 套件或包裹 (Package) 套件 (a group of classes) 很類似函式庫 (library ), 組織管理一群類別 編譯單位 : Java 類別中的程式碼就是一個編譯單位

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

透過.NET C# 程式實作 OO 建國科技大學資管系饒瑞佶

透過.NET C# 程式實作 OO 建國科技大學資管系饒瑞佶 透過.NET C# 程式實作 OO 建國科技大學資管系饒瑞佶 物件導向程式設計 OOP 只要可以依據前述類別與物件方式設計程式的語言都可以來實現 OO 包括 :JAVA C++ C#... 也就是 OO 是設計方式, 不專屬於哪個程式語言 這裡選用.NET C# 開始前 -C# 程式語法與觀念對應 觀念 語法關鍵字 類別 class 實做類別 / 建立物件 new 繼承 : 不可以繼承 final

More information

第二章 簡介類別

第二章  簡介類別 Instructor 曾學文 hwtseng@nchu.edu.tw http://wccclab.cs.nchu.edu.tw/www/index.php/c ourse/2017-03-20-07-38-21/105-105-2-c TA 王昱彬 第一章概觀 C++ 1-2 二種版本的 C++ 1-5 初步檢視類別 1-1 何謂物件導向程式設計 1-8 C++ 的關鍵字 1-2 二種版本的 C++

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

mvc

mvc Build an application Tutor : Michael Pan Application Source codes - - Frameworks Xib files - - Resources - ( ) info.plist - UIKit Framework UIApplication Event status bar, icon... delegation [UIApplication

More information

文档 3

文档 3 1 2 3 4 5 6 / A B A B B A 7 8 9 10 11 12 OO A B A B 13 14 15 16 17 18 19 20 21 22 OOA OOA 23 24 25 OOA OOA 26 27 28 29 30 31 32 use case 33 use case 34 35 36 37 OOD OOA OOD 38 OOA 39 OOD 40 41 / 42 OOD

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

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

untitled

untitled 1 行 行 行 行.NET 行 行 類 來 行 行 Thread 類 行 System.Threading 來 類 Thread 類 (1) public Thread(ThreadStart start ); Name 行 IsAlive 行 行狀 Start 行 行 Suspend 行 Resume 行 行 Thread 類 (2) Sleep 行 CurrentThread 行 ThreadStart

More information

INTRODUCTION TO COM.DOC

INTRODUCTION TO COM.DOC How About COM & ActiveX Control With Visual C++ 6.0 Author: Curtis CHOU mahler@ms16.hinet.net This document can be freely release and distribute without modify. ACTIVEX CONTROLS... 3 ACTIVEX... 3 MFC ACTIVEX

More information

untitled

untitled PowerBuilder Tips 利 PB11 Web Service 年度 2 PB Tips PB9 EAServer 5 web service PB9 EAServer 5 了 便 web service 來說 PB9 web service 力 9 PB11 release PB11 web service 力更 令.NET web service PB NVO 論 不 PB 來說 說

More information

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM CHAPTER 6 SQL SQL SQL 6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM 3. 1986 10 ANSI SQL ANSI X3. 135-1986

More information

多層次傳銷與獎金系統

多層次傳銷與獎金系統 醒 吾 技 術 學 院 資 訊 管 理 系 ( 五 專 部 ) 九 十 六 學 年 度 畢 業 專 題 多 層 次 傳 銷 與 獎 金 系 統 組 員 : 921506122 游 濬 瑋 921506126 陳 彥 宇 921506139 林 龍 華 921506144 陳 昶 志 921506149 楊 璧 如 指 導 老 師 : 汪 淵 老 師 中 華 民 國 九 十 七 年 一 月 十 一 醒

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

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

untitled

untitled ArcGIS Server Web services Web services Application Web services Web Catalog ArcGIS Server Web services 6-2 Web services? Internet (SOAP) :, : Credit card authentication, shopping carts GIS:, locator services,

More information

Microsoft Office SharePoint Server MOSS Web SharePoint Web SharePoint 22 Web SharePoint Web Web SharePoint Web Web f Lists.asmx Web Web CAML f

Microsoft Office SharePoint Server MOSS Web SharePoint Web SharePoint 22 Web SharePoint Web Web SharePoint Web Web f Lists.asmx Web Web CAML f Web Chapter 22 SharePoint Web Microsoft Office SharePoint Server MOSS Web SharePoint Web SharePoint 22 Web 21 22-1 SharePoint Web Web SharePoint Web Web f Lists.asmx Web Web CAML f Views.asmx View SharePoint

More information

ASP.NET MVC Visual Studio MVC MVC 範例 1-1 建立第一個 MVC 專案 Visual Studio MVC step 01 Visual Studio Web ASP.NET Web (.NET Framework) step 02 C:\M

ASP.NET MVC Visual Studio MVC MVC 範例 1-1 建立第一個 MVC 專案 Visual Studio MVC step 01 Visual Studio Web ASP.NET Web (.NET Framework) step 02 C:\M ASP.NET MVC Visual Studio 2017 1 1-4 MVC MVC 範例 1-1 建立第一個 MVC 專案 Visual Studio MVC step 01 Visual Studio Web ASP.NET Web (.NET Framework) step 02 C:\MvcExamples firstmvc MVC 1-7 ASP.NET MVC 1-9 ASP.NET

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 PowerPoint - ch6 [相容模式]

Microsoft PowerPoint - ch6 [相容模式] UiBinder wzyang@asia.edu.tw UiBinder Java GWT UiBinder XML UI i18n (widget) 1 2 UiBinder HelloWidget.ui.xml: UI HelloWidgetBinder HelloWidget.java XML UI Owner class ( Composite ) UI XML UiBinder: Owner

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

untitled

untitled 1 .NET sln csproj dll cs aspx 說 料 料 利 來 料 ( 來 ) 利 [] [] 來 說 切 切 理 [] [ ] 來 說 拉 類 類 [] [ ] 列 連 Web 行流 來 了 不 不 不 流 立 行 Page 類 Load 理 Click 滑 料 Response 列 料 Response HttpResponse 類 Write 料 Redirect URL Response.Write("!!

More information

提问袁小兵:

提问袁小兵: C++ 面 试 试 题 汇 总 柯 贤 富 管 理 软 件 需 求 分 析 篇 1. STL 类 模 板 标 准 库 中 容 器 和 算 法 这 部 分 一 般 称 为 标 准 模 板 库 2. 为 什 么 定 义 虚 的 析 构 函 数? 避 免 内 存 问 题, 当 你 可 能 通 过 基 类 指 针 删 除 派 生 类 对 象 时 必 须 保 证 基 类 析 构 函 数 为 虚 函 数 3.

More information

<ADB6ADB1C25EA8FAA6DB2D4D56432E706466>

<ADB6ADB1C25EA8FAA6DB2D4D56432E706466> packages 3-31 PART 3-31 03-03 ASP.NET ASP.N MVC ASP.NET ASP.N MVC 4 ASP.NET ASP.NE MVC Entity Entity Framework Code First 2 TIPS Visual Studio 20NuGetEntity NuGetEntity Framework5.0 CHAPTER 03 59 3-3-1

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

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

ASP.NET实现下拉框二级联动组件

ASP.NET实现下拉框二级联动组件 ASP.NET 实现下拉框二级联动组件 namespace WebApplicationDlh using System.Drawing; using System.Web; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using Db; / / Area 的摘要说明 /

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

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

KillTest 质量更高 服务更好 学习资料   半年免费更新服务 KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 310-065Big5 Title : Sun Certified Programmer for the Java 2 Platform, SE 6.0 Version : Demo 1 / 14 1. 35. String #name = "Jane Doe"; 36. int

More information

Microsoft Word - 104高考-程式語言.doc

Microsoft Word - 104高考-程式語言.doc 類科 : 資訊處理科目 : 程式語言 104 年公務人員高等考試三級考試試題 一 請就解釋方式 ( 組譯 直譯 編譯 ) 程式結構 ( 程序導向 物件導向 ) 標記文字 ( 是 否 ) 等特性, 分類說明程式語言 C, CSS, C#, HTML, Java, PHP, Python, SQL 特性 請繪製表格作答 擬答 : 解譯方式程式結構標記文字 C 編譯程序導向否 CSS 直譯程序導向是 C#

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

Microsoft PowerPoint - plan08.ppt

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

More information

FY.DOC

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

More information

X6-04_How_do_I_write_a_com_port_communicate_program_of_XPAC_tc

X6-04_How_do_I_write_a_com_port_communicate_program_of_XPAC_tc Author WeiKai Version 1.0.0 Date 2013/4/14 Page 1/11 我如何在 XPAC 上建立一個 COM port 通訊程式 Applies to: Platform OS version XPAC utility version XPAC series All versions (WinCE6) All versions XPAC SDK 提供 XPAC 結合

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

C++

C++ 第五講 泛型程式設計 講師 : 李根逸 (Ken-Yi Lee), E-mail: feis.tw@gmail.com 130 課程 大綱 模版 (template) 簡介實作多個相似內容的函式函式模版類別模版 自製陣列模版 static 的 用法修飾全域變數或 一般函式修飾區域變數修飾類別成員 C++ STL 的陣列模版 (std::vector) 131 實作多個相似內容的函式 [1] 寫 C/C++

More information

踏出C++的第一步

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

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

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

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

untitled

untitled 1 .NET 利 [] [] 來 說 切 切 理 [] [ ] 來 說 拉 類 類 [] [ ] 列 連 Web 行流 來 了 不 不 不 流 立 行 Page 類 Load 理 Response 類 Write 料 Redirect URL Response.Write("!! ives!!"); Response.Redirect("WebForm2.aspx"); (1) (2) Web Form

More information

Microsoft Word

Microsoft Word 考試時間 : 2 小時座號 : 全五頁第一頁 注意 : 禁止使用電子計算器 不必抄題, 作答時請將試題題號及答案依照順序寫在試卷上, 於本試題上作答者, 不予計分 本科目除專門名詞或數理公式外, 應使用本國文字作答 一 表一為用來實現兩數運算的 C# 程式碼,Operation.cs 檔案定義了三個類別 ;IFactory.cs 定義了一個介面及兩個類別 ;Program.cs 則定義了 Program

More information