類別的繼承 Vehicle Car.

Slides:



Advertisements
Similar presentations
主要内容 Java 的常用包 Java 的常用包 “ == ” 和 “ equals ” 的用法 “ == ” 和 “ equals ” 的用法 基本数据类型与引用类型 基本数据类型与引用类型 String 和 StringBuffer String 和 StringBuffer 对象的克隆( clone.
Advertisements

多元評量與 Greenfoot 簡介 南港高中高慧君. 演講大綱 多元評量 高中階段程式設計教學目標與困境 Greenfoot 快速入門 – 袋熊吃樹葉 – 沙灘螃蟹 Greenfoot 臺灣社群介紹 2.
系統分析與設計 楊子青 H-1 H 、物件導向技術 n 物件導向的基本概念 – 物件、類別 – 封裝、繼承 – 同名異式 ( 多型 ) 、超荷 ( 過載 ) n 物件導向分析與設計及塑模工具 n UML 塑模工具.
第3-2章 类与 对象 Java类的特性 教学内容: 类的私有成员与公共成员 方法的重载 构造方法 实例成员与静态成员 重点: 重载 难点:
Java语言的特点 Java开发环境的搭建
单元二:面向对象程序设计 任务二:借书卡程序设计.
第四章 类、对象和接口.
第三讲 面向对象(上).
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
JAVA 编 程 技 术 主编 贾振华 2010年1月.
项目6 通用堆栈.
四資二甲 第三週作業 物件導向程式設計.
面向对象的程序设计(一).
第一章 面向对象程序设计.
第二章 JAVA语言基础.
第15章 繼承與多重繼承 15-1 繼承的基礎 15-2 覆寫與隱藏父類別的成員 15-3 子類別的建構與解構子 15-4 多重繼承
類別的繼承-一般關係: 繼承是宣告的類別繼承現存類別的部份或全部的成員資料和方法 , 新增額外的成員資料和方法或覆寫和隱藏繼承類別的方法
Ch07 介面與多重繼承 物件導向程式設計(II).
JAVA程序设计 (03) JAVA Programming
第5章 进一步讨论对象和类.
1 Department of Computing.
再回首: Java关键字 数据类型:byte boolean char double float int long short ,
第5章 Java中类、对象、接口 及包的概念 5.1 类的基本概念 5.2 类的继承概念 5.3 抽象类和接口 5.4 包.
Ch08 巢狀類別 物件導向程式設計(II).
程式設計實作.
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
第5章 面向对象程序设计 本章要点 5.1 面向对象程序设计概述 5.2 Java语言的面向对象程序设计 5.3 方法的使用和对象数组
H、物件導向技術 物件導向的基本概念 物件、類別 封裝、繼承 同名異式(多型) 、超荷(過載) 物件導向分析與設計及塑模工具 UML塑模工具.
Java基础 JavaSE异常.
Classes Lecturer: 曾學文.
程序與函數的類別方法 目的:模組化程式設計 方法:由上而下設計 注意事項:(1)獨立性 (2)結合問題 (3)子問題間的溝通.
第六章 类的扩展与继承.
程式敘述執行順序的轉移 控制與重複、方法 Lecturer:曾學文.
西南科技大学网络教育系列课程 高级语程序设计(Java) 第五章 继承、接口与范型.
Ch10 類別與物件-方法 Java程式設計(2).
程式設計實作.
抽象类 File类 String类 StringBuffer类
CH09 套件 物件導向程式設計(II).
Java软件设计基础 5. 继承与多态.
Java程序设计 第9章 继承和多态.
Ch01 物件與類別複習 物件導向系統實務.
中国矿大计算机学院杨东平 第5章 接口和包 中国矿大计算机学院杨东平
第6章 继承和接口设计 6.1 继 承 6.2 多态性 6.3 抽象类 6.4 接口 6.5 接口在集合排序中的应用.
3.1 数据类型 3.2 标识符与关键字 3.3 常量 3.4 变量 3.5 运算符与表达式 3.6 一个编程实例
第9讲 Java的继承与多态(一) 类的继承 子类的创建 方法覆盖.
2019/1/16 Java语言程序设计-类与对象 教师:段鹏飞.
Ch02-基礎語法.
C/C++/Java 哪些值不是头等程序对象
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
* 單元:電腦與問題解決 主題:Java物件導向程式設計-類別與物件 台南縣國立善化高中 蕭嘉民 老師
第16章 虛擬與多形 16-1 虛擬函數 16-2 純虛擬函數與抽象類別 16-3 多形 16-4 虛擬繼承與虛擬解構子.
JAVA 编 程 技 术 主编 贾振华 2010年1月.
第二章 Java基本语法 讲师:复凡.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
Interfaces and Packages
第二章 Java语法基础.
Review 1~3.
第二章 Java基本语法 讲师:复凡.
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
第6單元 6-1 類別的繼承 (Class Inheritance) 6-2 抽象類別 (Abstract Class)
Class 2005/05/25.
JAVA 程式設計與資料結構 第三章 物件的設計.
第2章 Java语言基础.
第4讲 类和对象、异常处理 ggao.
對於成員(member)存取權的限制 成員的資料被毫無限制的存取,任誰都可以指定任意值給成員,Java語言為了防止這種現象的產生,規定:有一種成員的資料不能任由類別外部的任何人隨意存取。
判斷(選擇性敘述) if if else else if 條件運算子.
第二章 Java基础语法 北京传智播客教育
輸出執行結果到螢幕上 如果要將執行結果的文字和數值都「輸出」到電腦螢幕時,程式要怎麼寫? class 類別名稱 {
第6章 继承和多态 伍孝金
Summary
Presentation transcript:

類別的繼承 Vehicle Car

類別的繼承 Vehicle Truck Car Motorcycle SportsCar Jeep

類別的繼承 class Car { private int engineNum; private int color; public void setNum(int num){engineNum = num;} public void setColor(int color){ this.color = color;} public void printVehicle(){ } }

類別的繼承 class 子類別 名稱 extends 父類別名稱 { ....//額外的成員資料和方法 } class Nissan extends Car private double price; public Nissan (int num, int color , double price) { } public void printNissan() { }

類別的繼承 子類別不能存取父類別宣告成private 的成員資料和方法。 父類別的建構子不屬於類別的成員, 所以子類別並不能繼承父類別的建構 子,只能呼叫父類別的建構子。

類別的繼承 class Car { ....... 覆寫(override)與 public static void printName(){...}//隱藏 public void printCar(){...}//覆寫 } class Nissan extends Car public Static void printName(){....} public void printCar() {....} 覆寫(override)與 隱藏(hide)父類別的方法

類別的繼承 隱藏父類別的成員資料 class Car { ….. public int color; } class Nissan extends Car private String color;

類別的繼承 使用父類別的建構子 class Vehicle // Vehicle類別宣告 { // 成員資料 class Car extends Vehicle // Car類別宣告 { private String name; // 隱藏父類別的成員變數 private int engineNo; private int doors; // 幾門 public Car(String name, int no, int doors) super(name, no); // 呼叫父類別的建構子 ……… } public void printVehicle() ………. super.printVehicle(); System.out.println("名稱(父): " + super.name); System.out.println("引擎號碼(父): " + super.engineNo); ……….. class Vehicle // Vehicle類別宣告 { // 成員資料 public static int count; // 車輛數 public int engineNo; // 引擎號碼 public String name; // 名稱 // 建構子 public Vehicle(String name, int no) {…………………} // 成員方法: 顯示車輛資料 public void printVehicle() }

常數與抽象類別 final class Customer extends Person { ..... } class Person final char getName(){return nmae;} final int getAge(){return age;} final void setName(char c){ name = c; } final void setAge(int age) { this.age = age; }

常數與抽象類別 <<abstract>> Shape +x:double +y:double area() abstract class Shape { public double x; public double y; abstract void area(); } class Circle extends Shape public double r; public Circle(double x, double y, double r) { ..... } public void area() { System.out.println("圓面積: " + 3.1416*r); } <<abstract>> Shape +x:double +y:double area() Circle +r:double +area()

多形 ch6_3 Circle Shape.area() Shape.area() Shape.area() Triangle class Circle extends Shape { ....... public void area(){.....} } class Rectangle extends Shape class Triangel extends Shape Circle Shape.area() ch6_3 Shape.area() Rectangle Shape.area() Triangle

隨堂練習 Abstract<<Test>> MidTerm +max : int +min : int +avg : float MidTerm m = new MideTerm(90, 45, 67.8); Quiz q = new Quiz(70, 34, 78.5); Final f = new Final(87, 64, 76.3); Test t = m; t.print(); t = q; t = f; print() print() Quiz Final print() print()

隨堂練習 T1 +a : int +b : int +c : int T1 t1 = new T1(6, 6, 6); Abstract<<Triangle>> T1 +a : int +b : int +c : int T1 t1 = new T1(6, 6, 6); T2 t2 = new T2(3, 4, 5); T3 t3 = new T3(8, 8, 12); T t = t1; t.area(); t = t2; t = t3; +area : float area() T3 T2 +area : float +area : float

import java.lang.*; public class Ch1_4_1 { // 主程式 public static void main(String[] args) { // 顯示訊息 System.out.println(Math.sqrt(9)); }

<<interface>> 類別的繼承 Java的介面 <<interface>> IPrice getPrice():double Car -price:double -name:String +getPrice():double +getName():String

類別的繼承 介面的宣告 public interface 介面名稱 { final 資料型態 常數值 ; ….. 傳回值型態 介面方法(參數列) ; } Interface IArea { final double PI=3.1415926; void area(); }

類別的繼承 類別實作介面 Class 類別名稱 implements 介面名稱1、介面名稱2 { ….. //實作介面的方法 } Class Circle implements IArea { …… public void area() System.out.println(“圓面積 :”+PI*r*r); }

<<interface>> 類別的繼承 <<interface>> IArea area() Ch_9_2_2 Circle -x:double -y:double -r :double +area()

類別的繼承 Ch_9_2_3 在類別實作多個介面 <<interface>> IShow show() <<interface>> IArea area() Circle -x:double -y:double -r :double +area() +show()

<<interface>> 類別的繼承 類別架構與介面 Ch_9_2_4 Vehicle -engineNo:int -name:String -price:double +print() <<interface>> IPrint print() Car -door:int +print()

類別的繼承 Ch9_3 <<interface>> IArea area() IShape perimeter() Circle -x:double -y:double -r :double +area() +perimeter()

類別的繼承 介面的多重繼承 interface 介面名稱 extends 繼承介面1,繼承介面2 { …..//額外的常數和方法 } interface Ishape extends IArea, IShow { void perimeter(); }

類別的繼承 Ch_4_2 <<interface>> <<interface>> IArea IShow show() <<interface>> IShape perimeter() Circle -x:double -y:double -r :double +area() +show() +perimeter()

Student Class Student { private int stdNo; … public float score; public Student(…) { ….} public int getNo() {…..} public String getName() public String getAddress() } Class GraduateStudent { private String department; public GraduateStudent(…) super.stdNo = no; …… } public int getNo() System.out.println(“No” + super.getNo());

練習 <<interface>> I1 sum() <<interface>> I2 printout() FloatArray -buf: float[] -no : int +sum() IArray -buf: int [] -no : int +sum() +printout()

<<interface>> 練習 Triangle -a: Point -b : Point -c: Point +area() +printout() <<interface>> IArea area() Triangle1 +area() Triangle2 +area() Triangle3 +area()