Microsoft PowerPoint htm
|
|
|
- 叠蛙 徐
- 7 years ago
- Views:
Transcription
1 Java 程式設計基礎班 (4) 莊坤達台大電信所網路資料庫研究室 Class 4 1 回顧 Java 物件概念 Class 4 2
2 Java 物件的建立與初始化 建構子 (Constructor) 重載建構子 this 關鍵字的使用 欄位與方法的初始值設定 靜態初始函式 實體初始函式 Class 4 3 重載 (overloaded) 的方法 重載方法 : 可以在同一個類別中定義許多同名的方法 overloaded method 是多重變形法則中的一種 多重參數變形 / 多型 (parametric polymorphism) 當要執行到某個重載的方法時, 編譯器會針對傳入的參數型態對應到正確的方法 ( 所以是在編譯的時候就會決定 ) 每個同名的方法都會有不同數量或不同型態的參數 ( 這樣才不會造成混淆 ), 藉此來區別之! 重載的方法只會出現在同一個類別裡面 ( 不包括繼承的子類別 ) Class 4 4
3 重載 (overloaded) 的方法 Java PrintStream 的 print() 就是一個多重載的方法,print() 可以印出基本型態與物件 class PrintStream { void print( Object arg ) { void print( String arg) { void print( char [] arg ) { Class 4 5 Java 物件的建立與初始化 欄位與方法的初始值設定 public static final double PI = 3.14; public double r = 1.0; public class TestClass { public int len = 10; public [] int = new int [len]; public TestClass() { for ( int i = 0; i < len; I++ ) { table[i] = i; Class 4 6
4 Java 物件的建立與初始化 靜態初始函式 跟類別方法一樣, 不能使用 this 或是該類別中任何的實體欄位或方法 public class TrigCircle { private static final int NUMPTS = 500; private static double sines [] = new double[numpts]; static { double x = 0.0, delta_x; double delta_x = (Circle.PI/2) / (NUMPTS - 1); for( int m = 0; x = 0.0; m++, x =+ delta_x ) { sines[m] = Math.sin(x); Class 4 7 Java 物件的建立與初始化 實體初始函式 private static final int NUMPTS = 500; private int [] data = new int [NUMPTS]; { for( int m = 0; m < NUMPTS; m++ ) { data [m] = m; 較少以這方式來初始化實體方法 Just for your information! Class 4 8
5 Java 物件的摧毀與終結 不同於 C/C++ 使用 free() or delete operator 來釋放掉物件所佔用的記憶體空間, Java 會自動作資源回收 (garbage collection) 若需要手動終結, 可使用 finalize() finalize() 是實體方法, 沒有任何引數或傳回值 每個類別只能有一個終結函式 protected void finalize() throws Throwable { tempfile.delete(); // 假設有 tempfile 這暫存檔 Class 4 9 Java 子類別與繼承 (Inheritance) Java 只允許單一繼承, 但提供以介面 (interface) 的方式, 來替代 C++ 中的多重繼承 遮蔽 (shadowed) 超類別的欄位當一系列繼承的物件有相同名稱的方法時, 下層的方法會永遠遮蔽上層的方法 改寫或覆蓋 (overrided) 超類別的方法若不想被改寫, 只要宣告它為 final 即可 final 也可以用在類別上, 如此它將不會再有子類別 Class 4 10
6 Java 子類別與繼承 對於類別靜態欄位與方法, 只能被遮蔽, 不能被改寫 Class 4 11 類別的延伸 public class Circle { public static final double PI = ; public static double radstodegrees(double rads) { return rads * 180 / PI; public double r; public double area() { return PI * r * r; public double circumference() { return 2 * PI * r; [next] Class 4 12
7 public class PlaneCircle extends Circle { // 自動繼承 Circle 的類別靜態欄位與方法 PI = 與 radstodegrees() // 也繼承了 Circle 中的實體方法 area() 與 circumference() // 定義新的子類別欄位與方法 public double cx, cy; public PlaneCircle(double r, double x, double y) { super( r ); this.cx = x; this.cy = y; public boolean isinside( double x, double y ) { double dx = x cx, dy = y cy; double distance = Math.sqrt( dx*dx + dy*dy ); return ( distance < r ); Circle PlaneCircle Class 4 13 子類別與繼承 Another Simple Example class Animal { float weight; void eat() { class Mammal extends Animal { int heartrate; // inherits weight from Animal class void breathe() { // inherits eat() class Cat extends Mammal { boolean longhair; // inherits weight and hearrates void purr() { //inherit eat() and breathe() Animal Mammal Cat Class 4 14
8 超 ( 父 ) 類別及類別階層 public PlaneCircle( double r, double x, double y ) { super( r ); // 引用超類別的建構子 Cricle () this.cx = x; this.cy = y; 依賴超類別建構子 super() 這種用法來作繼承物件的初始化, 有一些規則 : super() 必須出現在子類別的建構子中 必須出現在第一行敘述裡, 也必須出現在變數宣告之前 super( 參數 ) 括號內所傳的參數需與父類別建構子內的參數一致 Class 4 15 超 ( 父 ) 類別及類別階層 ( 續 ) 如果建構子的第一行敘述中沒有使用 this() 或 super() 來明確呼叫及他的建構子, 則 Java 會自動暗中插入 super() 呼叫, 這個預設的建構子除了呼叫超類別建構子之外, 什麼事都不做 public PlaneCircle() { super(); Class 4 16
9 超 ( 父 ) 類別及類別階層 結語 ( 每個被啟用的建構子會有三個程序 ): 如果建構子的第一行敘述是一個普通的敘述, 不是 this() 或 super(), 則 Java 會自動加入一個 super() 來啟動父類別的預設建構子, 由它所傳回的初始化實體來進行子類別接下來的敘述 如果建構子的第一行敘述即呼叫了 super(), 則 Java 會啟用這個選定好的父類別建構子, 由其所傳回的已初始化實體來進行接下來的敘述 若建構子第一行敘述是呼叫 this(), 則 Java 會啟用特定的重載建構子 ( 並暗中呼叫父類別建構子 ), 然後回來進行接下的敘述 Class 4 17 遮蔽 (shadowed) 超類別的欄位 對於實體的欄位與方法 : 當一系列繼承的物件有相同名稱的方法時, 下層的方法會永遠改寫上層的方法 若不想被改寫, 只要宣告它為 final 即可 欄位 (data) 只會被遮蔽 若一個父類別的欄位或方法是 static 時, 在子類別中, 也只能以 static 的欄位方法來遮蔽 對於類別靜態欄位與方法 : 只能被遮蔽, 不能被改寫 Class 4 18
10 遮蔽超類別的欄位 class IntegerCalculator { int sum; class DecimalCalculator extends IntegerCalculator { double sum; // shadowed the var. sum from super class this.sum double super.sum int Class 4 19 public class PlaneCircle extends Circle {.. r // PlaneCircle 的欄位 this.r // PlaneCircle 的欄位 super.r // Circle 的欄位強制轉換! ((Circle) this).r // 指到 Circle 的欄位 若有三個類別 : A, B extends A, C extends B x // C 的 x 欄位 this.x // 指的是 C 的 x 欄位 super.x // 指的是 B 的 x 欄位 ((B) this).x // 指的是 B 的 x 欄位 ((A) this).x // 指的是 A 的 x 欄位 super.super.x // 沒這樣的寫法喔, 只能得到父親, 看不到祖父的!! 若有一個實體物件 c, 則我們有如下的寫法 : c.x // 指的是 C 的 x 欄位 ((B).c).x // 指的是 B 的 x 欄位 ((A) c).x // 指的是 A 的 x 欄位 Circle PlanCircle Class 4 20
11 改寫 (overrided) 超類別的方法 物件導向程式語言的特色 多重變形法則 (Polymorphism) simple example: Class 4 21 class A { int I = 1; int f() { return I; static char g() { return A ; class B extends A { int I = 2; int f() { return -I; static char g() { return B ; public class OverrideTest { B b = new B(); // 建立 B 物件 System.out.println(b.I); // 意指 :B.I 印出 -2 System.out.println(b.f()); // 意指 :B.f() 印出 -2 System.out.println(b.g()); // 意指 :B.g() 印出 B System.out.println(B.g()); // 引用 B.g() 較好的方法 A a = (A) b; // 意指 : 將 b 強制轉型為 A 的物件 System.out.println(a.I); // 意指 :A.I 印出 1 System.out.println(a.f()); // 意指 :B.f() 印出 -2 System.out.println(a.g()); // 意指 :A.g() 印出 A System.out.println(A.g()); // 引用 A.g() 較好的方式 Class 4 22
12 改寫方法與動態連結 重載的方法 (overload) 會在編譯時就決定 改寫的方法 (overwrite) 會在執行的時會才動態確定 若我們同時擁有 Circle 與 PlaneCircle 物件, 各自定義了 area() 這方法, 當直譯器在執行的時候, 會做動態查詢的動作, 已決定使用哪以方法 這方式, 基本上與 C++ 中的虛擬函數做的事情是一樣的 Class 4 23 介面 (Interface) 問題 : 若一個類別已經延伸某個父類別, 但我們又想加進其它的欄位或方法? 答案 : 因為只能有單一繼承, 解決的方法是 實作介面 Class 4 24
13 介面 (Interface) 介面 : 是一種參考型態 ( 會與實作這介面的類別有親密關係 ) 定義一個介面 (= 等待實作的 API): 介面內所有的方法都是 abstract( 即使沒加上 abstract 修飾元 ) 介面只能包含抽象 ( 實體 ) 方法與 static final 欄位 介面是 public 的, 其內的抽象方法也一定都要是 public, 就算沒明寫也都內定是 public 介面不包含建構子, 所以不能被實體化 Class 4 25 介面 (Interface) example: public interface Centered { static final double original_point = 0.0; public abstract void setcenter(double x, double y); public double getcenterx(); public double getcentery(); // 一般的介面都會取名為 [a-z]*able Class 4 26
14 實作一個介面 實作一個介面 implements 若實作兩個以上的介面以, 逗號區隔 一個類別若要 implements 某個介面, 就一定要把所有的抽象方法都作出來 Class 4 27 實作一個介面 example A interface Scalable { static final BIG = 0, MEDIUM = 1, SMALL = 2; void setscale( int size ); Class Box implements Scalable { void setscale( int size ) { Switch( size ) { case BIG: case MEDIUM: case SMALL: Class 4 28
15 實作一個介面 example B, importance! public class CenteredRectangle extends Rectangle implements Centered { private double cx, cy; public CenteredRectangle( double cx, double cy, double w, double h ) { super( w, h ); this.cx = cx; this.cy = cy; // implements all abstract methods in interface Centered public void setcenter( double x, double y ) { cx = x; cy = y; public double getcenterx() { return cx; public double getcentery() { return cy; Class 4 29 使用一個介面 example C, importance! 像上一個程式範例, 若我們實作了 CenteredCircle CenteredSquare 且 Circle Square Rectangle 都繼承了 Shape( 抽象類別的範例程式 ), 所以 CenteredRectangle CenteredCircle CenteredSquare 都是 Shape 的實體 ; 同時, 也是 Centered 型態的實體 // 建立一個陣列儲存一些形狀, 不需要強制轉換 ( 放大 ) Shape [] shapes = new Shape [3]; shapes [0] = new CenteredCircle( 1.0, 1.0, 1.0 ); shapes [1] = new CenteredSquare( 2.5, 2, 3 ); shapes [2] = new CenteredRectangle( 2.3, 4.5, 3, 4 ); [ next page ] Class 4 30
16 使用一個介面 double totalaera = 0; double totaldistance; for ( int I = 0; I < shapes.length; I++ ) { totalarea = totalarea + shapes[i].area(); if ( shapes[i] instanceof Centered ) { Centered c = (Centered) shapes[i]; // Shape Centered 縮小轉換 double cx = c.getcenterx(); double cy = c.getcentery(); totaldistance += Math.sqrt( cx*cx + cy*cy ); System.out.println( Average area: + totalaverage/shapes.length ); System.out.println( Average distance: + totaldistance/shapes.length ); Class 4 31 多重介面 public class SuperDuperSquare extends Shape implements Centered, UpperRightCornered, Scalable { 別忘了! 每個實作的介面中所有抽象方法都要實體化! Class 4 32
17 介面的延伸 ( 子介面 ) 子介面 (subinterface): 一個介面可以繼承父介面 (superinterface) 中所有的抽象方法與常數, 並且可以定義新的抽象方法與常數 不同於類別的繼承, 一個介面可以同時繼承多個的介面 public interface Positionable extends Centered { public void setupperrightcorner( double x, double y ); public double getupperrightx(); public double getupperrighty(); public interface Transformable extends Scalable, Translatable, Rotatable { public interface SuperShape implements Positionable, Transformable { Class 4 33 介面的延伸 ( 子介面 ) Herein, we can define one interface based on another by using the keyword extends to identify the base interface name. This is essentially the same from we use to derive one class from another. Some care is necessary if we do implements multiple interfaces. All methods and constants that are members of these interfaces will be incorporated. If both super-interfaces have a method with the same signature, that is, with identical name and parameters, they must also have the same return type, otherwise the compiler will report errors. ( 若兩個父介面定義了同一個特徵, 則這兩個特徵的回傳值必須也相同 : 編譯器必須把他們視為同一個特徵 )This is because it would be impossible for a class to implement both, as they have the same signature. Class 4 34
18 介面的延伸 ( 子介面 ) class Dog implements PetOutput void sound() { interface PetOutPut void sound(); class Cat implements PetOutput void sound() { class Duck implements PetOutput void sound() { class Spaniels extends Dog Class 4 35 標示介面 ( 空介面 ) 一個類別可以 implements 某個介面 ( 空介面 ), 不需實作任何方法 在這樣的情形之下, 該類別的任何實體便成為該介面的合法實體 example: 先前提過 : 不是任何物件參照都是可以被 clone(), 只有 implements cloneable 介面的物件始能被 clone() 在 java.lang 的定義中, cloneable 介面是個空介面 裡頭沒有定義任何抽象方法, 其目的只是用來辨別 : 某物件是否允許以 clone() 的方式來複製內部資料 Class 4 36
19 介面與抽象類別的階層 public class CenteredRectangle extends Rectangle implements Centered { Class Hierarchy Interface Hierarchy Shape Rectangle CenteredRectangle Centered Class 4 37 抽象類別? 介面? 對一介面, 所有的類別都可以實作它, 即使該類別延伸的某個完全不相干的父類別 介面只是一個 API, 使用需要實作它, 每 implements 一次, 就得完全地 重複地實作所有的抽象方法 這情況會在, 多重介面的情況下更加繁複 類別的繼承特性可讓子類別免於繁複的實作動作 但是, 類別的繼承上規定了單一繼承的限制, 這有時會功能設計上的困擾 還好, 抽象類別內可以有非抽象的方法, 這提供了部分的彈性 : 爾後可以調整抽象類別內所提供的方法 Class 4 38
20 抽象類別? 介面? 相容性! 當一個介面被定義完後, 會成為公用的 API, 爾後若在該介面中又加進一個新的方法, 則先前使用該介面的來實作的類別將會出現相容性的問題 抽象類別允許爾後可以加入非抽象的方法於該類別中, 且無須對之前繼承該抽象類別的類別進行任何的修改 Class 4 39
運算子多載 Operator Overloading
多型 Polymorphism 講師 : 洪安 1 多型 編譯時期多型 ( 靜態多型 ) function overloading 如何正確呼叫同名的函數? 利用參數個數與型態 operator overloading 其實同 function overloading 執行時期多型 ( 或動態多型 ) 如何正確呼叫不同物件的相同名稱的成員函數 利用繼承與多型 2 子類別與父類別物件間的指定 (assignment)
The Embedded computing platform
嵌入式系統及實驗 Embedded System and Experiment 詹曉龍 長庚大學電機系 Java 的類別與物件 : 宣告類別 建構子 public class Customer { private String name; private String address; // Customer 類別宣告 // 成員資料 public int age; // 建構子 : 使用參數設定成員資料初始值
Microsoft Word - 投影片ch11
Java2 JDK5.0 教學手冊第三版洪維恩編著博碩文化出版書號 pg20210 第十一章抽象類別與介面 本章學習目標認識抽象類別學習介面的使用認識多重繼承與介面的延伸 抽象類別與介面 11-2 11.1 抽象類別 抽象類別的目的是要依據它的格式來修改並建立新的類別 11.1.1 定義抽象類別 定義抽象類別的語法如下 : abstract class 類別名稱 { 宣告資料成員 ; // 定義抽象類別
詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入
100 年 特 種 考 試 地 方 政 府 公 務 人 員 考 試 試 題 等 別 : 三 等 考 試 類 科 : 資 訊 處 理 科 目 : 系 統 分 析 與 設 計 一 請 參 考 下 列 旅 館 管 理 系 統 的 使 用 案 例 圖 (Use Case Diagram) 撰 寫 預 約 房 間 的 使 用 案 例 規 格 書 (Use Case Specification), 繪 出 入
软件工程文档编制
实训抽象类 一 实训目标 掌握抽象类的定义 使用 掌握运行时多态 二 知识点 抽象类的语法格式如下 : public abstract class ClassName abstract void 方法名称 ( 参数 ); // 非抽象方法的实现代码 在使用抽象类时需要注意如下几点 : 1 抽象类不能被实例化, 实例化的工作应该交由它的子类来完成 2 抽象方法必须由子类来进行重写 3 只要包含一个抽象方法的抽象类,
投影片 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
Microsoft PowerPoint - ch6 [相容模式]
UiBinder [email protected] 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
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
Microsoft Word - chap12.doc
94 12. Inheritance in Java Java 的類別同樣有繼承的功能, 衍生類別同樣會繼承基本類別所有的資料成員與函式成員, 當繼承而來的函式成員不適於衍生類別時, 同樣可以在衍生類別之定義內將其重新定義 (override), 並可進一步加入新的成員 ( 資料或函式 ), 以符合衍生類別應有的屬性與行為 一基本類別 ( 父類別 ) 可以有需多繼承它的衍生類別 ( 子類別 ), 與
Microsoft Word - 01.DOC
第 1 章 JavaScript 简 介 JavaScript 是 NetScape 公 司 为 Navigator 浏 览 器 开 发 的, 是 写 在 HTML 文 件 中 的 一 种 脚 本 语 言, 能 实 现 网 页 内 容 的 交 互 显 示 当 用 户 在 客 户 端 显 示 该 网 页 时, 浏 览 器 就 会 执 行 JavaScript 程 序, 用 户 通 过 交 互 式 的
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
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
<4D6963726F736F667420506F776572506F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>
程 序 设 计 实 习 INFO130048 3-2.C++ 面 向 对 象 程 序 设 计 重 载 继 承 多 态 和 聚 合 复 旦 大 学 计 算 机 科 学 与 工 程 系 彭 鑫 [email protected] 内 容 摘 要 方 法 重 载 类 的 继 承 对 象 引 用 和 拷 贝 构 造 函 数 虚 函 数 和 多 态 性 类 的 聚 集 复 旦 大 学 计 算 机 科 学
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 =
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
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
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
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
用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應
專題進度 老師 : 趙啟時老師 學生 : 陳建廷 2013/10/13 用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應 程式碼 : package com.example.phone; import java.util.arraylist;
主程式 : 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,
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
Strings
Inheritance Cheng-Chin Chiang Relationships among Classes A 類 別 使 用 B 類 別 學 生 使 用 手 機 傳 遞 訊 息 公 司 使 用 金 庫 儲 存 重 要 文 件 人 類 使 用 交 通 工 具 旅 行 A 類 別 中 有 B 類 別 汽 車 有 輪 子 三 角 形 有 三 個 頂 點 電 腦 內 有 中 央 處 理 單 元 A
C/C++程序设计 - 字符串与格式化输入/输出
C/C++ / Table of contents 1. 2. 3. 4. 1 i # include # include // density of human body : 1. 04 e3 kg / m ^3 # define DENSITY 1. 04 e3 int main ( void ) { float weight, volume ; int
Microsoft PowerPoint - P766Ch06.ppt
PHP5&MySQL 程式設計 第 6 章物件導向 6-1 認識物件導向 物件 (object) 或 案例 (instance) 屬性 (property) 欄位 (field) 或 成員變數 (member variable) 方法 (method) 或 成員函式 (member function) 事件 (event) 類別 (class) 物件導向程式設計 (OOP) 具有下列特點 : 封裝
Strings
Polymorphism and Virtual Functions Cheng-Chin Chiang Virtual Function Basics 多 型 (Polymorphism) 賦 予 一 個 函 數 多 種 意 涵, 存 在 於 同 一 類 別 之 內 祖 先 類 別 與 後 代 類 別 間 物 件 導 向 程 式 設 計 基 本 原 理 虛 擬 函 數 (Virtual Function)
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
9, : Java 19., [4 ]. 3 Apla2Java Apla PAR,Apla2Java Apla Java.,Apla,,, 1. 1 Apla Apla A[J ] Get elem (set A) A J A B Intersection(set A,set B) A B A B
25 9 2008 9 M ICROEL ECTRON ICS & COMPU TER Vol. 25 No. 9 September 2008 J ava 1,2, 1,2, 1,2 (1, 330022 ; 2, 330022) :,. Apla - Java,,.. : PAR ;Apla - Java ; ;CMP ; : TP311 : A : 1000-7180 (2008) 09-0018
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
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:
chp6.ppt
Java 软 件 设 计 基 础 6. 异 常 处 理 编 程 时 会 遇 到 如 下 三 种 错 误 : 语 法 错 误 (syntax error) 没 有 遵 循 语 言 的 规 则, 出 现 语 法 格 式 上 的 错 误, 可 被 编 译 器 发 现 并 易 于 纠 正 ; 逻 辑 错 误 (logic error) 即 我 们 常 说 的 bug, 意 指 编 写 的 代 码 在 执 行
基于CDIO一体化理念的课程教学大纲设计
Java 语 言 程 序 设 计 课 程 教 学 大 纲 Java 语 言 程 序 设 计 课 程 教 学 大 纲 一 课 程 基 本 信 息 1. 课 程 代 码 :52001CC022 2. 课 程 名 称 :Java 语 言 程 序 设 计 3. 课 程 英 文 名 称 :Java Programming 4. 课 程 类 别 : 理 论 课 ( 含 实 验 上 机 或 实 践 ) 5. 授
FY.DOC
高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主
Mac Java import com.apple.mrj.*;... public class MyFirstApp extends JFrame implements ActionListener, MRJAboutHandler, MRJQuitHandler {... public MyFirstApp() {... MRJApplicationUtils.registerAboutHandler(this);
untitled
1 7 7.1 7.2 7.3 7.4 7.5 2 7.1 VFT virtual 7.1 3 1 1. 2. public protected public 3. VFT 4. this const volatile 4 2 5. ( ) ( ) 7.1 6. no-static virtual 7.2 7. inline 7.3 5 3 8. this this 9. ( ) ( ) delete
前言 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
投影片 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) 巢狀類別強調類別之間的關聯性,
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
(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
Microsoft Word - chap10.doc
78 10. Inheritance in C++ 我 們 已 介 紹 了 物 件 導 向 程 式 的 第 一 個 主 要 特 性, 即 程 式 可 模 組 化 成 為 類 別 ( 物 件 ), 類 別 具 有 資 料 封 裝 的 特 性 接 下 來 我 們 要 介 紹 物 件 導 向 程 式 的 另 一 個 主 要 特 性, 那 就 是 類 別 具 有 繼 承 的 功 能 繼 承 就 是 重 複
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
投影片 1
資料庫管理程式 ( 補充教材 -Part2) 使用 ADO.NET 連結資料庫 ( 自行撰寫程式碼 以實現新增 刪除 修改等功能 ) Private Sub InsertButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles InsertButton.Click ' 宣告相關的 Connection
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
int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;
Memory & Pointer [email protected] 2.1 2.1.1 1 int *p int a 0x00C7 0x00C7 0x00C7 2.1.2 2 int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; 2.1.3 1. 2. 3. 3 int A,
ch_code_infoaccess
地 產 代 理 監 管 局 公 開 資 料 守 則 2014 年 5 月 目 錄 引 言 第 1 部 段 數 適 用 範 圍 1.1-1.2 監 管 局 部 門 1.1 紀 律 研 訊 1.2 提 供 資 料 1.3-1.6 按 慣 例 公 布 或 供 查 閱 的 資 料 1.3-1.4 應 要 求 提 供 的 資 料 1.5 法 定 義 務 及 限 制 1.6 程 序 1.7-1.19 公 開 資
第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
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
新版 明解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,
Microsoft Word - JAVA Programming Language Homework I ans
JAVA Programming Language Homework I - OO concept Student ID: Name: 1. Which of the following techniques can be used to prevent the instantiation of a class by any code outside of the class? A. Declare
JBuilder Weblogic
JUnit ( [email protected]) < >6 JUnit Java Erich Gamma Kent Beck JUnit JUnit 1 JUnit 1.1 JUnit JUnit java XUnit JUnit 1.2 JUnit JUnit Erich Gamma Kent Beck Erich Gamma Kent Beck XP Extreme Programming CRC
一、
考試時間 : 1 小時 30 分座號 : 全五頁第一頁 注意 : 禁止使用電子計算器 不必抄題, 作答時請將試題題號及答案依照順序寫在試卷上, 於本試題上作答者, 不予計分 一 就下列 Java 程式片斷中加入一個 for 迴圈, 使其印出右側結果 (15 分 ) public class AllNumbers number square cube 0 0 0 public static void
文档 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
(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
《大话设计模式》第一章
第 1 章 代 码 无 错 就 是 优? 简 单 工 厂 模 式 1.1 面 试 受 挫 小 菜 今 年 计 算 机 专 业 大 四 了, 学 了 不 少 软 件 开 发 方 面 的 东 西, 也 学 着 编 了 些 小 程 序, 踌 躇 满 志, 一 心 要 找 一 个 好 单 位 当 投 递 了 无 数 份 简 历 后, 终 于 收 到 了 一 个 单 位 的 面 试 通 知, 小 菜 欣 喜
IoC容器和Dependency Injection模式.doc
IoC Dependency Injection /Martin Fowler / Java Inversion of Control IoC Dependency Injection Service Locator Java J2EE open source J2EE J2EE web PicoContainer Spring Java Java OO.NET service component
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
資料結構之C語言重點複習
鏈結串列自編教材 ( 一 ) 本教材 ( 一 ) 目標問題 : 每次以亂數產生一 [0,1000] 之整數值, 若該值 >100, 則以同方式繼續產生下一亂數值, 若該值
CC213
: (Ken-Yi Lee), E-mail: [email protected] 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++
java2d-4.PDF
75 7 6 G r a d i e n t P a i n t B a s i c S t r o k e s e t P a i n t ( ) s e t S t o r k e ( ) import java.awt.*; import java.awt.geom.*; public class PaintingAndStroking extends ApplicationFrame { public
CC213
: (Ken-Yi Lee), E-mail: [email protected] 49 [P.51] C/C++ [P.52] [P.53] [P.55] (int) [P.57] (float/double) [P.58] printf scanf [P.59] [P.61] ( / ) [P.62] (char) [P.65] : +-*/% [P.67] : = [P.68] : ,
全国计算机技术与软件专业技术资格(水平)考试
全 国 计 算 机 技 术 与 软 件 专 业 技 术 资 格 ( 水 平 ) 考 试 2008 年 上 半 年 程 序 员 下 午 试 卷 ( 考 试 时 间 14:00~16:30 共 150 分 钟 ) 试 题 一 ( 共 15 分 ) 阅 读 以 下 说 明 和 流 程 图, 填 补 流 程 图 中 的 空 缺 (1)~(9), 将 解 答 填 入 答 题 纸 的 对 应 栏 内 [ 说 明
Scott Effective C++ C++ C++ Roger Orr OR/2 ISO C++ Effective Modern C++ C++ C++ Scoot 42 Bart Vandewoestyne C++ C++ Scott Effective Modern C++ Damien
Effective Modern C++ C++ C++ C++11/C++14 C++ Scott Meyers Gerhard Kreuzer Siemens AG Effective Modern C++ Effective Modern C++ Andrei Alexandrescu Facebook Modern C++ Design C++ C++ Nevin Liber DRW Trading
第二章 簡介類別
Instructor Hsueh-Wen Tseng 曾學文,[email protected] Textbook C++ 程式設計風格與藝術 (O Reilly). Requirements Assignment x? 100% TAs 第一章概觀 C++ 1-2 二種版本的 C++ 1-5 初步檢視類別 1-1 何謂物件導向程式設計 1-8 C++ 的關鍵字 1-2 二種版本的 C++ //
概述
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
運算子多載 Operator Overloading
多載 Overloading 講師 : 洪安 1 多型 編譯時期多型 ( 靜態多型 ) function overloading 函數多載 如何正確呼叫同名的函數? 利用參數個數與型態 operator overloading 運算子多載 其實同 function overloading 執行時期多型 ( 或動態多型 ) 如何正確呼叫不同物件的相同名稱的成員函數 利用繼承與多型 2 函數多載 Function
<4D6963726F736F667420576F7264202D2032303037C4EAC6D5CDA8B8DFB5C8D1A7D0A3D5D0C9FAC8ABB9FACDB3D2BBBFBCCAD4CEC4BFC6D7DBBACDCAD4BEEDBCB0B4F0B0B82DD6D8C7ECBEED2E646F63>
2007 年 普 通 高 等 学 校 招 生 全 国 统 一 考 试 ( 重 庆 卷 ) 文 综 试 卷 第 一 部 分 本 部 分 共 35 题, 每 题 4 分, 共 140 分 在 每 题 给 出 的 四 个 选 项 中, 只 有 一 项 最 符 合 题 目 的 要 求 的 读 图 1, 回 答 1-3 题 1. 某 两 洲 面 积 之 和 与 某 大 洋 面 积 十 分 接 近, 它 们 是
untitled
1 Outline 料 類 說 Tang, Shih-Hsuan 2006/07/26 ~ 2006/09/02 六 PM 7:00 ~ 9:30 聯 [email protected] www.csie.ntu.edu.tw/~r93057/aspnet134 度 C# 力 度 C# Web SQL 料 DataGrid DataList 參 ASP.NET 1.0 C# 例 ASP.NET 立
Adobe® Flash® 的 Adobe® ActionScript® 3.0 程式設計
337 18 Adobe Flash CS4 Professional MovieClip ActionScript Flash ActionScript Flash Flash Flash MovieClip MovieClip ActionScript ( ) MovieClip Flash Sprite ActionScript MovieClip ActionScript 3.0 Shape
C/C++语言 - C/C++数据
C/C++ C/C++ Table of contents 1. 2. 3. 4. char 5. 1 C = 5 (F 32). 9 F C 2 1 // fal2cel. c: Convert Fah temperature to Cel temperature 2 # include < stdio.h> 3 int main ( void ) 4 { 5 float fah, cel ;
BOOL EnumWindows(WNDENUMPROC lparam); lpenumfunc, LPARAM (Native Interface) PowerBuilder PowerBuilder PBNI 2
PowerBuilder 9 PowerBuilder Native Interface(PBNI) PowerBuilder 9 PowerBuilder C++ Java PowerBuilder 9 PBNI PowerBuilder Java C++ PowerBuilder NVO / PowerBuilder C/C++ PowerBuilder 9.0 PowerBuilder Native
單步除錯 (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)
Microsoft PowerPoint - course2.ppt
Java 程 式 設 計 基 礎 班 (2) 莊 坤 達 台 大 電 信 所 網 路 資 料 庫 研 究 室 Email: [email protected] Class 2 1 回 顧 Eclipse 使 用 入 門 Class 2 2 Lesson 2 Java 程 式 語 言 介 紹 Class 2 3 Java 基 本 知 識 介 紹 大 小 寫 有 差 (Case Sensitive)
任務二 : 產生 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
CU0594.pdf
8 SOHO 1 3 003 SOHO SOHO Coder Programmer HTML CSS PHP JavaScrip 009 LECTURE 1-1 1 048 PART 2 LECTURE 1-1 1 049 SOHO Landing Page Landing 050 PART 2 LECTURE 1-1 1 SEO SEO P.093 SEO SEO SEO SEO SEO 051
无类继承.key
无类继承 JavaScript 面向对象的根基 周爱 民 / aimingoo [email protected] 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
