Course Introduction CLASS II. 1-2 Previous studies What is constructor? How to use this()? –Where I can call this()? –Can I call this() twice in one constructor?

Slides:



Advertisements
Similar presentations
6-1 指標簡介 6-2 指標與陣列 6-3 動態配置記憶體 6-4 本章綜合練習
Advertisements

Chapter 10 馬可夫鏈 緒言 如果讀者仔細觀察日常生活中所發生的 諸多事件,必然會發現有些事件的未來 發展或演變與該事件現階段的狀況全然 無關,這種事件稱為獨立試行過程 (process of independent trials) ;而另一些 事件則會受到該事件現階段的狀況影響。
1 Chemical and Engineering Thermodynamics Chapter 2 Conservation of mass and energy Sandler.
布林代數的應用--- 全及項(最小項)和全或項(最大項)展開式
Introduction to Java Programming Lecture 13 Classes I OO Programming.
第 10 章 Java 的執行緒 10-1 執行緒的基礎 10-2 Java 執行緒的使用方法 10-3 Java 執行緒的同步 10-4 管道串流的執行緒.
第七章 抽樣與抽樣分配 蒐集統計資料最常見的方式是抽查。這 牽涉到兩個問題: 抽出的樣本是否具有代表性?是否能反應出母體的特徵?
Mathcad 基本認識 再mathcad中等於(=)的符號有區分為三種: 第一種:冒號等於(:=)是代表我們要定義ㄧ個參數
LHU_ME 魏慶隆 李瑞宗老師 實體特徵的建立  特徵之基本概念 特徵之基本概念  建立實體基本特徵 建立實體基本特徵  建立設計特徵 建立設計特徵  實體特徵的複製 實體特徵的複製.
第二章 太陽能電池的基本原理 及其結構 2-1 太陽能電池的基本原理 2-2 太陽能電池的基本結構 2-3 太陽能電池的製作.
Reference, primitive, call by XXX 必也正名乎 誌謝 : 部份文字取於前輩 TAHO 的文章.
Introduction to Constructor, Overloading, and Accessibility CS340100, NTHU Yoshi.
More Inheritance and LSP CS340100, NTHU Yoshi. More about Inheritance Reuse? – Q1: 你有沒有程式 ” 砍掉重練 ” 的經驗 ? – Q2: 你有沒有 ” 再造輪子 ” 的經驗 ? class Rectangle – Firstly,
What is static?. Static? 靜態 ? class Test { static int staticX; int instanceX; public Test(int var1, int var2) { this.staticX = var1; this.instanceX =
Reference, primitive, call by XXX 必也正名乎 誌謝 : 部份文字取於前輩 TAHO 的文章 CS340100, NTHU Yoshi.
中央大學。范錚強 1 其他 ER 相關觀念 以及 OO 模型 國立中央大學 資訊管理系 范錚強 2007.
Review of Chapter 3 - 已學過的 rules( 回顧 )- 朝陽科技大學 資訊管理系 李麗華 教授.
建立靜態資料成員 關鍵字: static 靜態資料成員不屬於特定物件,而是該類物件 所共同擁有的,可做為類別範圍裡的靜態變數。
第一章 變數、常數及資料型態. 變數 C 程式語言的變數名稱 第一個字必須是英文字母或底線 (_) 之後可以是數字, 英文字母或底線 (_) 不可以是保留字 例: Num (Ο) _score (Ο) C&C (X) 8num (X)
消費者物價指數反映生活成本。當消費者物價指數上升時,一般家庭需要花費更多的金錢才能維持相同的生活水準。經濟學家用物價膨脹(inflation)來描述一般物價持續上升的現象,而物價膨脹率(inflation rate)為物價水準的變動百分比。
JAVA 程式設計與資料結構 第二章 JAVA 程式基本概念及操作. 第一個程式 /* * 這是第一個程式 (FirstP.java) */ class FirstP{ public static void main(String args[]){ System.out.println("Whatever.
STAT0_sampling Random Sampling  母體: Finite population & Infinity population  由一大小為 N 的有限母體中抽出一樣本數為 n 的樣 本,若每一樣本被抽出的機率是一樣的,這樣本稱 為隨機樣本 (random sample)
第 13 章 常數、靜態成員與朋友關 係 13-1 常數物件與成員 13-1 常數物件與成員 13-2 物件成員與巢狀類別 13-2 物件成員與巢狀類別 13-3 靜態成員資料與函數 13-3 靜態成員資料與函數 13-4 朋友關係 13-4 朋友關係.
1. 假設以下的敘述為一未提供 “ 捷徑計算 ” 能力的程式段,試用程 式設計的技巧,使此敘述經此改 寫的動作後,具有與 “ 捷徑計算 ” 之 處理方法相同之處理模式。 if and then E1 else E2 endif.
例外處理. 內 容 大 綱 例外的產生 捕捉例外 丟出例外 例外的產生 (1/4) 一般常見的執行時期錯誤包括整數除法分母為 0(divide by zero) ,陣列索引值越限 (array index out of range) ,輸入輸出錯誤 (I/O error) 、檔案 不存在或無法存取.
第 18 章 名稱空間與例外處理 18-1 名稱空間 18-1 名稱空間 18-2 例外處理 18-2 例外處理.
第三章 變數與繫結 陳維魁 博士 儒林圖書公司. 2 大綱  變數的定義  變數元件  儲存區配置問題  參考的透明性  完全計算  捷徑計算  繫結 (binding)  繫結時間  精選習題.
系統分析與設計【第八版】 第六章 物件塑模.
基礎物理總論 基礎物理總論 熱力學與統計力學(三) Statistical Mechanics 東海大學物理系 施奇廷.
Integrated single vendor single buyer model with stochastic demand and variable lead time 指導教授:林燦煌 博士 指導教授:林燦煌 博士 研 究 生:黃笙源 研 究 生:黃笙源 M. Ben-Daya, M. Hariga.
桁架分析.
第 7 章 程序與函數 7-1 模組化程式設計 7-1 模組化程式設計 7-2 VB.NET 的程序與函數 7-2 VB.NET 的程序與函數 7-3 程序與函數的變數範圍 7-3 程序與函數的變數範圍 7-4 VB.NET 常用的內建函數 7-4 VB.NET 常用的內建函數 7-5 遞迴函數 7-5.
具備人臉追蹤與辨識功能的一個 智慧型數位監視系統 系統架構 在巡邏模式中 ,攝影機會左右來回巡視,並 利用動態膚色偵測得知是否有移動膚色物體, 若有移動的膚色物體則進入到追蹤模式,反之 則繼續巡視。
Introduction to Java Programming Lecture 5: Using Java Classes : String & Math Spring 2009.
© The McGraw-Hill Companies, Inc., 2008 第 6 章 製造流程的選擇與設計.
Introduction to Java Programming Lecture 15 Objects and Classes.
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 貳 研究設計.
Chapter 13 塑模靜態觀點:物件圖 Static View : Object Diagram.
Introduction to Java Programming Lecture 17 Abstract Classes & Interfaces.
: The largest Clique ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11324: The largest Clique 解題者:李重儀 解題日期: 2008 年 11 月 24 日 題意: 簡單來說,給你一個 directed.
最新計算機概論 第 5 章 系統程式. 5-1 系統程式的類型 作業系統 (OS) : 介於電腦硬體與 應用軟體之間的 程式,除了提供 執行應用軟體的 環境,還負責分 配系統資源。
CH 15- 元件可靠度之驗證  驗證方法  指數模式之可靠度驗證  韋式模式之可靠度驗證  對數常態模式之可靠度驗證  失效數為零時之可靠度估算  各種失效模式之應用.
: Ahoy, Pirates! ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11402: Ahoy, Pirates! 解題者:李重儀 解題日期: 2008 年 8 月 26 日 題意:有一個海盜島有 N 個海盜,他們的編號 (id)
Fugacity Coefficient and Fugacity
: Multisets and Sequences ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11023: Multisets and Sequences 解題者:葉貫中 解題日期: 2007 年 4 月 24 日 題意:在這個題目中,我們要定義.
資料結構實習-一 參數傳遞.
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2008.
Section 4.2 Probability Models 機率模式. 由實驗看機率 實驗前先列出所有可能的實驗結果。 – 擲銅板:正面或反面。 – 擲骰子: 1~6 點。 – 擲骰子兩顆: (1,1),(1,2),(1,3),… 等 36 種。 決定每一個可能的實驗結果發生機率。 – 實驗後所有的實驗結果整理得到。
Chapter 3 Entropy : An Additional Balance Equation
第 17 章 樣板 17-1 樣板的基礎 17-1 樣板的基礎 17-2 樣板函數 17-2 樣板函數 17-3 樣板類別 17-3 樣板類別 17-4 非型態參數的樣板類別 17-4 非型態參數的樣板類別 17-5 樣板類別的繼承 17-5 樣板類別的繼承 17-6 特化樣板與靜態成員 17-6 特化樣板與靜態成員.
Chapter 10 m-way 搜尋樹與B-Tree
Inheritance and Polymorphism
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2009.
連續隨機變數 連續變數:時間、分數、重量、……
Visual C++重點複習.
1 Introduction to Java Programming Lecture 3 Mathematical Operators Spring 2008.
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2010.
What is static? CS340100, NTHU Yoshi. Static? 靜態 ? class Test { static int staticX; int instanceX; public Test(int var1, int var2) { this.staticX = var1;
Introduction to Java Programming Lecture 16 Super and Sub Classes.
: Finding Paths in Grid ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11486: Finding Paths in Grid 解題者:李重儀 解題日期: 2008 年 10 月 14 日 題意:給一個 7 個 column.
幼兒行為觀察與記錄 第八章 事件取樣法.
Mapping - 1 Mapping From ER Model to Relational DB.
1 Introduction to Java Programming Lecture 3 Mathematical Operators Spring 2009.
CH 14-可靠度工程之數學基礎 探討重點 失效時間之機率分配 指數模式之可靠度工程.
VHDL語法(3).
: How many 0's? ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 11038: How many 0’s? 解題者:楊鵬宇 解題日期: 2007 年 5 月 15 日 題意:寫下題目給的 m 與 n(m
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
1 柱體與錐體 1. 找出柱體與錐體的規則 2. 柱體的命名與特性 3. 柱體的展開圖 4. 錐體的命名與特性 5. 錐體的展開圖
Presentation transcript:

Course Introduction CLASS II

1-2 Previous studies What is constructor? How to use this()? –Where I can call this()? –Can I call this() twice in one constructor? –What is the meaning between this() and this.XX?

1-3 Previous studies How to use Inheritance? How to use super()? –Where can I call super()? –What is the meaning between super() and super.XX? What is polymorphism?

Synopsis of Polymorphism The polymorphism principle Polymorphism means that an operation may behave differently (in different classes). There are two kinds of polymorphism –static (overloading) – dynamic Example –GeomFigure (display(), remove(), position()) Rectangle Circle 1-4

再談 inheritance 矩型 – 我們先擁有這個 class ,並且進行了系統開發 正方形 – 之後有了正方型的需求,再寫了一個正方形的 class –Square “IS A” kind of rectangle Reuse? –Q1: 你有沒有程式 ” 砍掉重練 ” 的經驗 ? –Q2: 你有沒有 ” 再造輪子 ” 的經驗 ? 1-5

Class Rectangle class Rectangle { double width; double height; public double getHeight() { return height; } public void setHeight(double height) { this.height = height; } public double getWidth() { return width; } public void setWidth(double width) { this.width = width; } } 1-6

Class Square class Square extends Rectangle { public void setHeight(double height) { super.setHeight(height); super.setWidth(height); } public void setWidth(double width) { super.setHeight(width); super.setWidth(width); } } 1-7

void g(Rectangle r) { r.setWidth(5); r.setHeight(4); if (r.getWidth() * r.getHeight() != 20) { throw new RuntimeException(); } } //some other place Rectangle square = new Square(); g(square); 1-8

Liskov Substitution Principle (LSP) Functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it Very difficult problem!! –Further study: OOAD –Software design principals Please google it if you are interested in it One of the principals –Prefer Composition over inheritnace –Why? Can you give an example? 1-9

1-10 類別( Class )架構 「類別架構」( Class Hierarchy ) – 將整個類別關係的樹狀結構繪出來 – 繼承的子類別可以有多層 如果父類別不只一個,即繼承多個類別,稱為 「多重繼承」( Multiple Inheritance )。

1-11 類別( Class )類別關係 類別關係是指不同類別間的關係,例如: – 繼承是一種 Is-a 的類別關係 Nissan” 是 ” 車子的一種 (Is-a) – 「成品和零件」( Whole-Part )關係,即 Part-of 和 Has-a 關係。 輪胎是車子的 ” 一部份 ”(Part-of) 車子 ” 有 ” 輪胎 (Has-a)

1-12 「 is a 」和「 has a 」 在描述類別時,常以「 is a 」和「 has a 」描述類別的父類 別和類別中的資料成員。「 is a 」描述句通常會導出類別 的父類別,而「 has a 」則是會導出類別中的資料成員。 –A man is a human that has a name, a father, and a mother. public class Man extends Human { Name theName; Father theFather; Mother theMother; }

1-13 Wrong program // 建立一個 Vehicle 的類別 class Vehicle { Vehicle(String x){ System.out.println(“Vehicle’s Constructor”); } public void drive(){ System.out.println(“I’m driving”); }

1-14 Wrong program // 建立一個 Car 的類別 extend Vechicle class Car extends Vehicle { } public class app{ public static void main(String[] args){ Car aCar=new Car(); } Why this program is wrong??

1-15 How to fix it! // 建立一個 Vehicle 的類別 class Vehicle { Vehicle(){ System.out.println(“Vehicle’s Constructor”); } Vehicle(String x){ System.out.println(“Vehicle’s Constructor”); } public void drive(){ System.out.println(“I’m driving”); }

1-16 How to fix it!! // 建立一個 Car 的類別 extend Vechicle class Car extends Vehicle { Car(){ Super(“X”); } public class app{ public static void main(String[] args){ Car aCar=new Car(); }

1-17 How to fix it!! // 建立一個 Car 的類別 extend Vechicle class Car extends Vehicle { Car(String x){ Super(x); } public class app{ public static void main(String[] args){ Car aCar=new Car(“x”); }

1-18 Example class Circle{ double radius; void setRadius(double radius){ this.radius=radius; } void showRadius(){ System.out.println(“ 半徑為 ”+radius); } double showArea(){ return Math.PI*Math.pow(radius,2); }

1-19 API search Search java api document For example pow(a,b) –Key in java api pow

1-20 Example public class Application{ public static void main(String argv[]){ Circle aCircle; aCircle = new Circle(); aCircle.setRadius(12.0); aCircle.showRadius(); System.out.println(“aCircle 的面積等於 ” + aCircle.showArea()); }

1-21 How to know new object’s hashCode? public class RealWorld { public static void main(String[] args){ Car aCar=new Car();// 產生一個 Car 的實體 String x=aCar.toString(); System.out.println(x); Car bCar=aCar; System.out.println(aCar.toString()); System.out.println(bCar.toString()); }

1-22 Example detail Circle aCircle; aCircle = new Circle(); aCircle 的記憶體 location l-value:0x1111 指向 Circle Type 的 reference 的 variable aCircle l-value:0x1111 Circle 某一個 instance 其 l-value:0x3333 aCircle = new Circle(); aCircle l-value:0x1111 aCircle r-value:0x3333 Circle 某一個 instance 其 l-value:0x3333

1-23 Example detail bCircle=aCircle; Circle 物件 aCircle bCircle bCircle=null; Circle 物件 aCircle bCircle Problem: aCircle=null; 結果會如何 ?

1-24 物件的空間配置 class Vehicle{// 定義的類別 int wheel; // 定義一個實體變數 } Vehicle newCar1 = new Vehicle();// 實體化一個類別 Vehicle newCar2 = new Vehicle();// 再實體化一個類別 Vehicle rCar = newCar1;// 只是一個參考

1-25 變數型態 種類 – 基本型態 (Primitive Type) 8 種 – 參考型態 (Reference Type) 基本型態 – 整數、浮點數、字元、或布林值 參考型態 – 由物件所組成的型態 So, what is “static”? – We have not explained it, let us do it now.