1 抽象類別與介面 (Abstract Classes and Interfaces) 鄭士康國立台灣大學 電機工程學系 / 電信工程研究所 / 資訊網路與多媒體研究所.

Slides:



Advertisements
Similar presentations
1 Chemical and Engineering Thermodynamics Chapter 2 Conservation of mass and energy Sandler.
Advertisements

Introduction to Java Programming Lecture 13 Classes I OO Programming.
EBI European Bioinformatics Institute. EBI The European Bioinformatics Institute (EBI) part of EMBL is a centre for research and services in bioinformatics.
中華通訊大學部課程規劃流程圖 基礎課程核心課程應用課程 程式設計 I,II 微處理機 I,II 數位邏輯 FPGA 無線通訊 MAC 靭體設計 計算機應用 / 通訊靭體設計專業領域 大ㄧ大二 大三大四 嵌入式 系統專題 專業選修專題設計 II 硬體描述語言 FPGA+HDL 無線通訊 嵌入式系統 專題設計.
校園線上技術服務之使用意圖與 建置成功因素的研究 2011/04/22 淡江大學 資管所碩二 李依倫 鄭佳容.
Introduction to Constructor, Overloading, and Accessibility CS340100, NTHU Yoshi.
C/C++ 語言程式設計 課程說明 教學大綱 上課方式 講師介紹 參考用書. 課程說明 課程大綱講師介紹參考用書 2  C/C++ 語言是程式設計師需要具備的基本工具, 其不僅執行效率高又具有跨平台的特性,不論在 軟體設計或硬體控制的開發上,都能看到 C 語言 的蹤跡。另外,學習 C++ 的 OOP.
數位學習經驗分享 「 E 化教學教室與虛擬攝影棚」推廣經驗分享暨觀摩 高高屏活動 義守大學應用數學系郎正廉.
在 Ad-hoc 網路中實現點對 點發送訊息與廣播訊息. 檔案下載  範例程式可在下列網址取得  DEMO 程式可在下列網址取得
1 Advanced Chemical Engineering Thermodynamics Appendix BK The Generalized van der Waals Partition Function.
Chapter 0 Computer Science (CS) 計算機概論 教學目標 瞭解現代電腦系統之發展歷程 瞭解電腦之元件、功能及組織架構 瞭解電腦如何表示資料及其處理方式 學習運用電腦來解決問題 認知成為一位電子資訊人才所需之基本條 件 認知進階電子資訊之相關領域.
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
Review of Chapter 3 - 已學過的 rules( 回顧 )- 朝陽科技大學 資訊管理系 李麗華 教授.
建立靜態資料成員 關鍵字: static 靜態資料成員不屬於特定物件,而是該類物件 所共同擁有的,可做為類別範圍裡的靜態變數。
計算機視覺研究室 專題實作簡報 張元翔 老師.
WEBPAT專利資料庫檢索. 2 WEBPAT 全球專利資訊網 n 網址:
成大電腦網路服務課程 報告者: 陳明輝 §§I. 成大計算機與網路中心
第 13 章 常數、靜態成員與朋友關 係 13-1 常數物件與成員 13-1 常數物件與成員 13-2 物件成員與巢狀類別 13-2 物件成員與巢狀類別 13-3 靜態成員資料與函數 13-3 靜態成員資料與函數 13-4 朋友關係 13-4 朋友關係.
程式語言實習 - JAVA Class1 1. 介紹 Java 編寫、編譯、執行 2. 請同學完成作業二.
Department of Air-conditioning and Refrigeration Engineering/ National Taipei University of Technology 模糊控制設計使用 MATLAB 李達生.
液晶顯示控制器之研究 謝曜式 中華大學電機工程學系 Department of Electrical Engineering Chung-Hua University Hsinchu, Taiwan.
南投縣社區大學 Excel 實務應用入門 講師 : 林泉成
1 Chemical and Engineering Thermodynamics Chapter 8 Phase equilibrium in mixtures Parts B : Illustration Sandler.
第 1 章 PC 的基本構造. 本章提要 PC 系統簡介 80x86 系列 CPU 及其暫存器群 記憶體: Memory 80x86 的分節式記憶體管理 80x86 的 I/O 結構 學習組合語言的基本工具.
個人居家生活閘道 - 情境示範. 系統功能 失智評量系統 目的:建置評量系統,及早發現病情 技術: WWW 與 Media Center 成效:臨床效度評估與專科醫師的診斷分 析,相關係數高達 0.73 無線健康照護整合服務系統 (WI-CARE) 目的:提供緊急求救與走失搜尋等功能 技術:整合 GSM.
論文研討 2 學分 授課教師:吳俊概.
國家地震工程研究中心 National Center for Research on Earthquake Engineering 1 國立台灣海洋大學 河海工程學系 耐震設計 ( 一 ) 結構之基本振動週期 鍾立來.
Introduction to Java Programming Lecture 17 Abstract Classes & Interfaces.
1 數位控制(一) 2 數位控制 課程計畫 課程目標 介紹數位控制理論 與工業界常用之數位控制器比較 實習數位控制器之模擬與設計 課程綱要 Introduction to Digital Control System The z Transform z-Plane Analysis of Discrete-Time.
最新計算機概論 第 5 章 系統程式. 5-1 系統程式的類型 作業系統 (OS) : 介於電腦硬體與 應用軟體之間的 程式,除了提供 執行應用軟體的 環境,還負責分 配系統資源。
電子計算機概論電子計算機概論 教科書 計算機概論 Introduction to Computers 原著: Peter Norton 審閱: 陳正雄‧趙立本‧簡文山‧林碧蘭 編譯:普羅數位科技 總審閱:林志敏 NT 590 洽助教.
Hung-Hsiang WuWindows Processing Design1 Chapter 3 基本觀念 變數宣告與型態 特殊運算子符號 字串與數值的轉換 類別與物件的觀念 建立新的專案 WinMain 程式進入點 Include Header File.
Ubiquitous News(Unews) 的設計與實作 指導教授:黃毅然 教授 學生:葉雅琳 系別:資訊工程學系.
1 Syllabus Computer Network 計算機網路 賴秉樑 Dept. of Electronic Engineering National Chin-Yi University of Technology Spring 2008.
Embedded Systems Design
行政院國家科學委員會工程技術發展處自動化學門 * 試以國立成功大學製造工程研究所 鄭芳田教授 產學合作計畫 : 智慧預測保養系統之設計與實作 成果報告盤點為範例 國科會工程處專題計畫成果典藏 自動化學門成果報告盤點範例.
數位化論文典藏聯盟數位化論文典藏聯盟 Digital Dissertation Consortium.
結構學(一) 第七次作業 97/05/15.
鄭瑞興的個人簡介 中山資工所 鄭瑞興.
教材名稱:網際網路安全之技術及其應用 (編號: 41 ) 計畫主持人:胡毓忠 副教授 聯絡電話: 教材網址: 執行單位: 政治大學資訊科學系.
1 高等演算法 授課老師 : 陳建源 研究室 : 法 401 網站
「防止青少年吸煙」 回顧與前瞻. 流程:  計劃簡介  服務特色  報告研究事項  回顧工作內容  展望未來.
安全性管理員 Java 學習手冊 p.p SecurityManager 觀念  Java Application 的系統資源存取權限的設 定  可以由 SecurityManager 完全控制 如 : 檔案系統, Thread, 執行外部 process, 網路存取 一旦 Security.
國家地震工程研究中心 National Center for Research on Earthquake Engineering 1 國立台灣海洋大學 河海工程學系 耐震設計 ( 一 ) 單自由度無阻尼結構之 強迫振動 鍾立來.
寬頻通訊系統基礎教育計畫 分項計畫二 寬頻網路通訊 主要參與人員 黎碧煌 教 授 鍾順平 副教授
1 影像處理 99/02 revised 課程簡介 1 課程目標 2 課程內容 3 教科書與主要參考書 4 成績計算 5 教學網頁.
統計計算與模擬 政治大學統計系余清祥 2010 年 2 月 23 日 第一週:導論
報告人:陳錦生 校長 日 期: 99 年 10 月 21 日. 自我評鑑報告內容簡介 校務評鑑五大項目 自我評鑑過程 簡述自我評鑑過程 學校現況 校地、教職員生數、圖書冊數、院系所學位學程.
2 期末程式第一份報告 報告內容 撰寫此程式的動機和目的以及預期達到的功能和結果 流程圖 繼承關係 資料結構 檔案上傳格式 第 n 組程式流程圖.doc 組別於近日內公告 5/31, 17:00 前交.
資訊教育 吳桂光 東海大學物理系助理教授 Tel: 3467 Office: ST223 Office hour: Tue, Fri. (10-11am)
高性能混凝土最經濟配比設計系統 HPC2N 葉怡成 教授 中華大學土木工程學系. 一、前言 高性能混凝土 (High Performance Concrete) 在材料的選用上較傳統混凝土多,除了傳統混凝 土組成所需的基本構材之外,更添加了多種工業 副產品及化學添加料,如飛灰、爐石粉、強塑劑 等,在配比設計上更為複雜,並沒有像傳統混凝.
職涯進路圖 國立台灣科技大學 電子工程學系.
論文閱讀報告 論文題目:應用模糊理論於颱風降雨量之推估 作者:陳正彬. 模糊化類神經網路 ‧模糊系統的建立 1. 由人類專家建立規則 ex:if 風速大 then 降雨量高 效果受到規則庫完整的影響 2. 經由訓練法則從數值資料得到模糊規則.
Visual C++重點複習.
1 高等管理資訊系統. 2 授課教師 : 王耀德 研究室 : 主顧 686 電話 : (04) # 課輔時間 Wednesday 09:00~13:00 介紹.
南台科技大學 應用英語系碩士班 張孟文. 主題 : 1. 如何準備研究所考試 2. 現在修課情況.
全國奈米科技人才培育推動計畫辦公室 中北區奈米科技K -12 教育發展中心計畫 簡 報 報告人:楊鏡堂教授 計畫執行單位:國立清華大學動力機械工程學系 計畫種子學校:教育部顧問室 94 年度奈米科技人才培育先導型計畫年度成果報告 中華民國九十四年十月十四日.
二十一世紀數位化公務員應具備數位化基 本能力 一 應了解每日數位媒體所提供的日常數位 資訊的常識(乃至知識)及常使用的標準 化技能 二 搜尋與公務相關的資訊,相關工作資料 庫的能力 三 快速中文輸入的能力.
數位系統實驗 -- 課程介紹 教師:潘欣泰. 課程目標  數位系統導論課程之實習課程  接續數位電路學課程  養成學生動手做的習慣  使學生對數位電路設計有實際的體驗.
MIS之何去何從 朝陽資管 劉熒潔.
結構學 ( 一 ) 第八次作業 97/05/22. 題目一 題目一 (a) 先決定放鬆哪個束制,成為靜定結構 以支承 C 之水平反力為贅力,則 C 點滾支 承變成自由端,即形成靜定基元結構 C 點滿足變位諧和  Δ CH =0.
1 Introduction to Java Programming Lecture 3 Mathematical Operators Spring 2009.
1 Chemical and Engineering Thermodynamics Chapter 1 Introduction Sandler.
第 1 章 PC 的基本構造. 本章提要 PC 系統簡介 80x86 系列 CPU 及其暫存器群 記憶體: Memory 80x86 的分節式記憶體管理 80x86 的 I/O 結構 學習組合語言的基本工具.
南台科技大學 資訊工程系 Arduino 與電腦端互動設計之三 報告人:洪賢麟 指導老師:李育強 日期: 2013/11/20 報告人:洪賢麟 指導老師:李育強 日期: 2013/11/20.
Ch17 專案 (1)- 賽馬 物件導向系統實務. 2015/12/52 五匹馬賽跑 _DOS 版 1/2 1.class Horse5_DOS 2.{ 3.static Horse[] h = new Horse[5]; 4.static Thread[] t = new Thread[h.length];
1 運算子多載 鄭士康國立台灣大學 電機工程學系 / 電信工程研究所 / 資訊網路與多媒體研究所.
Sun Educational Service 第九單元 實作封裝與建構式. Sun Educational Service Module 9, slide 2 of 43 單元概論 單元目標: – 利用封裝 (encapsulation) 來保護資料 – 設計建構式來初始化物件 問題與討論.
> Polymorphism. Polymorphism - 2 多型的功能 多型提供了「介面與實作分離」的一個重 要性,能將 what (是什麼)自 how (怎麼 做)之中抽離。 多型( polymorphism )除去型別之間的耦 合關係。
1 類別與物件 II (Classes and Objects II) 鄭士康國立台灣大學 電機工程學系 / 電信工程研究所 / 資訊網路與多媒體研究所.
Presentation transcript:

1 抽象類別與介面 (Abstract Classes and Interfaces) 鄭士康國立台灣大學 電機工程學系 / 電信工程研究所 / 資訊網路與多媒體研究所

2 AbstractClass.Program (1/4) using System; namespace AbstractClass { /* /* * 示範抽象類別之應用 * 示範抽象類別之應用 * skj 5/7/2007 * skj 5/7/2007 */ */ class Program class Program { static void Main(string[] args) static void Main(string[] args) { double a = 5.0; double a = 5.0; Square sq = new Square(a); Square sq = new Square(a); Console.WriteLine(" 正方形 sq 之面積為 " + sq.Area()); Console.WriteLine(" 正方形 sq 之面積為 " + sq.Area());

3 AbstractClass.Program (2/4) Circle c = new Circle(a); Console.WriteLine(" 圓形 c 之面積為 " + c.Area()); Console.WriteLine(" 圓形 c 之面積為 " + c.Area()); Console.ReadLine(); Console.ReadLine(); } } public abstract class Shape public abstract class Shape { private string shape; private string shape; public Shape(string shape) public Shape(string shape) { this.shape = shape; this.shape = shape; Console.WriteLine(" 建立 " + shape); Console.WriteLine(" 建立 " + shape); } abstract public double Area(); abstract public double Area(); }

4 AbstractClass.Program (3/4) public class Square : Shape { double a; double a; public Square(double a) : base(" 正方形 ") public Square(double a) : base(" 正方形 ") { this.a = a; this.a = a; } public override double Area() public override double Area() { return a * a; return a * a; } }

5 AbstractClass.Program (4/4) public class Circle : Shape { double r; double r; public Circle(double r) public Circle(double r) : base(" 圓形 ") : base(" 圓形 ") { this.r = r; this.r = r; } public override double Area() public override double Area() { return Math.PI * r * r; return Math.PI * r * r; } }}

6 UsingInterface.Program (1/4) using System; namespace UsingInterface { /* /* * 示範介面之應用 * 示範介面之應用 * 5/7/2007 * 5/7/2007 */ */ class Program class Program { static void Main(string[] args) static void Main(string[] args) { double a = 5.0; double a = 5.0; Square sq = new Square(a); Square sq = new Square(a); Console.WriteLine(" 正方形 sq 之面積為 " + sq.Area()); Console.WriteLine(" 正方形 sq 之面積為 " + sq.Area());

7 UsingInterface.Program (2/4) Circle c = new Circle(a); Console.WriteLine(" 圓形 c 之面積為 " + c.Area()); Console.WriteLine(" 圓形 c 之面積為 " + c.Area()); Console.ReadLine(); Console.ReadLine(); } } interface Shape interface Shape { double Area(); double Area(); }

8 UsingInterface.Program (3/4) public class Square : Shape public class Square : Shape { double a; double a; public Square(double a) public Square(double a) { this.a = a; this.a = a; } public double Area() public double Area() { return a * a; return a * a; } }

9 UsingInterface.Program (4/4) public class Circle : Shape { double r; double r; public Circle(double r) public Circle(double r) { this.r = r; this.r = r; } public double Area() public double Area() { return Math.PI * r * r; return Math.PI * r * r; } }}

10 抽象類別與介面 修飾語 修飾語 欄位變數 欄位變數 建構式 建構式 函式方法覆寫與實作 函式方法覆寫與實作 多重繼承 多重繼承

11 MultiInterface.Program (1/3) using System; namespace MultiInterface { /* 示範多重介面之實作 /* 示範多重介面之實作 * skj 5/8/2007 * skj 5/8/2007 */ */ class Program class Program { static void Main(string[] args) static void Main(string[] args) { SeaPlane sp = new SeaPlane(); SeaPlane sp = new SeaPlane(); sp.Sail(); sp.Sail(); sp.Fly(); sp.Fly(); Console.ReadLine(); Console.ReadLine(); } }

12 MultiInterface.Program (2/3) interface Plane { void Fly(); void Fly(); } interface Ship interface Ship { void Sail(); void Sail(); }

13 MultiInterface.Program (3/3) public class SeaPlane : Plane, Ship { public SeaPlane() public SeaPlane() { Console.WriteLine(" 建立水上飛機 "); Console.WriteLine(" 建立水上飛機 "); } public void Sail() public void Sail() { Console.WriteLine(" 水上滑行 "); Console.WriteLine(" 水上滑行 "); } public void Fly() public void Fly() { Console.WriteLine(" 空中飛行 "); Console.WriteLine(" 空中飛行 "); } }}

14 CastMultiInterfaces.Program (1/4) using System; namespace CastMultiInterfaces { class Program class Program { static void Main(string[] args) static void Main(string[] args) { double a = 5.0; double a = 5.0; Square sq = new Square(a); Square sq = new Square(a); Rhombus rhomb = sq as Rhombus; Rhombus rhomb = sq as Rhombus; Console.WriteLine( Console.WriteLine( "sq 的面積以菱形公式計算得 "+rhomb.Area() ); "sq 的面積以菱形公式計算得 "+rhomb.Area() );

15 CastMultiInterfaces.Program (2/4) if( sq is Rectangle ) { Rectangle rec = (Rectangle) sq; Rectangle rec = (Rectangle) sq; Console.WriteLine( Console.WriteLine( "sq 的面積以矩形公式計算得 "+rec.Area() ); "sq 的面積以矩形公式計算得 "+rec.Area() ); } Console.ReadLine(); Console.ReadLine(); } } interface Rectangle interface Rectangle { double Area(); double Area(); }

16 CastMultiInterfaces.Program (3/4) interface Rhombus { double Area(); double Area(); } public class Square : Rectangle, Rhombus { private double a; private double a; private double d; private double d; public Square(double a) public Square(double a) { this.a = a; this.a = a; d = Math.Sqrt(2.0) * a; d = Math.Sqrt(2.0) * a; }

17 CastMultiInterfaces.Program (4/4) double Rectangle.Area() double Rectangle.Area() { return a * a; return a * a; } double Rhombus.Area() double Rhombus.Area() { return 0.5 * d * d; return 0.5 * d * d; } }}