CH09 套件 物件導向程式設計(II).

Slides:



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

软件编程基础 一、程序的编辑 Java 源程序是以 Java 为后缀的简单的文本文件,可以用各种 Java 集成开发环境中的源代码编辑器来编写,也可以用其他文 本编辑工具,如 Windows 中的记事本或 DOS 中的 EDIT 软件等。 利用文字编辑器编写下列程序 public class Hello.
第 2 章 Java 运行环境搭建 2.1 Java 的运行系统 2.1 Java 的运行系统 2.2 JDK 的安装与配置2.2 JDK 的安装与配置 2.3 Java 开发工具包 2.4 Java 源文件编辑环境的选择 2.5 Application 和 Applet 程序的编写与运行.
1 Java 语言程序设计 计算机系 鲍金玲. 2 引子 甲骨文 甲骨文是全球最大的信息管理软件及服务供应商,成立于 1977 年,公司总部 设在美国加利福尼亚州的红木城( Redwood Shores ),全球员工达 名, 包括 名开发人员、 7500 多名技术支持人员和.
Java 程序分类 Java Application :是完整程序,需要独立的解 释器解释运行;以 “.java” 为后缀的文件,以 main() 方法作为程序入口,由 java 编译器编译生 成字节码,由 Java 解释器加载执行字节码。 Java Applet 没有 main() 方法作为程序入口,是嵌在.
第一章 Java 程序设计技术 概述  什么是 Java 语言  一个简单的 Java 程序  程序的编译和运行  常见错误  使用 Java 核心 API 文档.
程序设计语言基础 软件工程系 秦晓燕. 课程目标 了解面向对象程序设计的思想,以及软件 开发流程。 学习 Java 语言的基本概念和编程方法,基 本掌握 Java 类库的使用。 能够利用所学的方法开发简单的小型应用 程序.
Java 程序设计 案例教程 北京大学出版社 第 01 章. Java 程序设计案例教程 第 01 章 Java 语言与面向对象程序设计 Java 语言的历史 Java 语言的特点 Java 程序的分类 Java 环境配置 Eclipse 的安装 Java 程序的调试 教学目标.
Java 程序设计(第二版) 普通高等教育 “ 十一五 ” 国家级规划教材 辛运帷等 编著 徐小平 主讲.
第6章 对象和类.
单元二:面向对象程序设计 任务二:借书卡程序设计.
第四章 类、对象和接口.
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
JAVA 编 程 技 术 主编 贾振华 2010年1月.
第 9 章 物件的建構.
《 Java开发环境配置》 主讲人:耿力.
Java 2实用教程(第3版)教学课件 主讲教师:张国平
Java程序设计教程 第一讲 Java概述.
第4章 类与对象 本章导读 0. 面向对象编程 1. 类声明和类体 2. 类体的构成 3. 构造方法与对象的创建 4. 对象的引用与实体
Hello小程序的运行和编译 Java AppletJava小程序的构成 1、关键字
《Java程序设计之网络编程》 教学课件 重庆大学计算机学院
计算机学院计算机科学与技术系 中德联合软件技术研究所 李波
中国公务员制度 主讲:吴春华 教授 温志强 副教授.
第11章 Java多媒体技术.
第二章 JAVA语言基础.
第二部分 Java语言基础篇 第4章 Java语言与面向对象 (之一).
第 13 章 套件 (Packages).
第1章 java简介及环境搭建 第1章 Java简介及开发环境搭建.
科學科 污染 空氣 成因 的 : 題目 及 減少空氣污染的方法 陳玉玲 (4) 姓名 : 去到目錄.
Ch07 介面與多重繼承 物件導向程式設計(II).
JAVA程序设计 (03) JAVA Programming
第5章 进一步讨论对象和类.
第5章 Java中类、对象、接口 及包的概念 5.1 类的基本概念 5.2 类的继承概念 5.3 抽象类和接口 5.4 包.
Ch02 視窗Swing套件 物件導向系統實務.
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
第5章 面向对象程序设计 本章要点 5.1 面向对象程序设计概述 5.2 Java语言的面向对象程序设计 5.3 方法的使用和对象数组
2018/11/20 第一章 Java概述 武汉大学计算机学院计算机应用系 2018/11/20 14:33.
武汉大学国际软件学院 面向对象程序设计 武汉大学国际软件学院
CHAPTER 9 建構方法 ROBERT.
Java软件设计基础 5. 继承与多态.
2018/12/7 Java语言程序设计 教师:段鹏飞.
Java基础入门 第1章 Java开发入门 · Java语言的特点 · Java开发环境的搭建 · 环境变量的配置 · Java的运行机制.
類別的繼承 Vehicle Car.
中国矿大计算机学院杨东平 第5章 接口和包 中国矿大计算机学院杨东平
辅导课程九.
3.1 数据类型 3.2 标识符与关键字 3.3 常量 3.4 变量 3.5 运算符与表达式 3.6 一个编程实例
2019/1/16 Java语言程序设计-类与对象 教师:段鹏飞.
2019/1/17 Java语言程序设计-程序流程 教师:段鹏飞.
第一章 Java语言概述.
Ch02-基礎語法.
CH04 視窗中元件排排坐 物件導向系統實務.
第11章 系统结构与包模型模型.
* 單元:電腦與問題解決 主題:Java物件導向程式設計-類別與物件 台南縣國立善化高中 蕭嘉民 老師
第7章 包及访问控制权限 7.1 包的基本概念 7.2 系统常见包 7.3 包的导入 7.4 访问控制权限修饰符 7.5 jar命令的使用.
JAVA 编 程 技 术 主编 贾振华 2010年1月.
第二章Java基本程序设计.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
Interfaces and Packages
第二章 Java语法基础.
第二章 Java基本语法 讲师:复凡.
第6章 面向对象的高级特征 学习目标 本章要点 上机练习 习 题.
JAVA 程式設計與資料結構 第三章 物件的設計.
第2章 Java语言基础.
對於成員(member)存取權的限制 成員的資料被毫無限制的存取,任誰都可以指定任意值給成員,Java語言為了防止這種現象的產生,規定:有一種成員的資料不能任由類別外部的任何人隨意存取。
只要功夫深 铁杵磨成针 —— 写在前面的话.
第 5 章 常用类的使用 伍孝金
第二章 Java基础语法 北京传智播客教育
Java语言程序设计.
Summary
变量定位图形 Java中数据的类型分为四种:基本数据类型、数组类型、类类型以及接口类型。任何常量和变量都一定是上述四种数据类型中的一种。简单数据类型的实例化有两种:变量和常量。 变量名和常量名必须是Java语言中合法的标识符。 常量是在程序运行期间值不改变的量。 变量是在程序运行期间值可通过赋值改变的量,
Presentation transcript:

CH09 套件 物件導向程式設計(II)

Java的套件 Java語言的「套件」(Package)是一組相關的類別和介面形成一集合,套件能夠提供存取保護,如同其它程式語言的「函式庫」(Library),稱為Java API(Applications Programming Interface)。 如何建立自己的套件、在Java程式匯入其它套件和存取修飾子protected。

Java API的套件(1/2) API是一種軟體的工具箱,Java標準API是一個名為class的大型套件,擁有數個子套件lang、awt和io等,每個子套件擁有許多的類別,如下圖所示:

Java API的套件(2/2)

JDK的API套件架構(1/4) JDK-API的原始程式碼

JDK的API套件架構(2/4) 「套件架構」就是「目錄架構」

JDK的API套件架構(3/4) 查看System.java原始檔

JDK的API套件架構(4/4) rt.jar內的架構

類別與介面檔案的管理-說明 在之前的Java程式範例都是將類別和介面宣告放在同一個程式檔案,如果覺得程式碼太長,可以將每一個類別和介面都獨立成副名為.java的檔案,並且將它放置於同一個資料夾。 套件基本上就是使用目錄。因此,儘管有許多同名的類別檔,只要類別檔是位於不同的目錄,就不會發生衝突。

類別與介面檔案的管理-檔案清單

類別與介面檔案的管理-範例 每個Java程式檔案的類別都是宣告成public,以便其它類別可以使用,例如:Shape.java的內容,如下所示: /* 程式範例: Shape.java */ public abstract class Shape // Shape類別宣告 { // 成員資料 public double x; // X座標 public double y; // y座標 }

package和import指令敘述的使用-建立套件 將類別和介面宣告的檔案建立成套件,我們需要在每一個欲組成套件的Java程式檔案前加上package指令敘述,如下所示: /* 程式範例: Shape.java */ package Ch7_3_3; public abstract class Shape { ……… }

package和import指令敘述的使用-匯入套件 在建立好套件後,如果其它Java程式需要使用此套件,就可以使用import指令敘述匯入套件,如下所示: import Ch7_3_3.Circle; import Ch7_3_3.Rectangle; 如果Java程式需要匯入整個Ch7_3_3套件,可以在import指令敘述後使用”*”符號表示所有類別,如下所示: import Ch7_3_3.*;

protected存取修飾子的使用-說明 Java語言的存取修飾子protected是指宣告的成員方法或變數可以在同一類別、其子類別或同一套件存取,其存取權限介於public和private之間。

protected存取修飾子的使用-範例 例如:在Ch7_3_4套件的Point類別宣告座標的成員變數x和y,其存取修飾子為protected,如下所示: protected double x; protected double y; 此時,在同一個套件繼承Point類別的Line類別可以存取x和y,單純匯入此套件的類別並無法存取x和y。不屬於同一套件,繼承Point類別的子類別ColorPoint,仍然可以存取x和y。

Java存取修飾子的使用-存取範圍 Java語言的存取修飾子public、private和protected擁有不同的存取權限範圍,筆者整理如下所示: public:擁有全域範圍,任何類別都可以存取,包含子類別。 private:只可以在同一個類別存取,不可以在子類別存取。 protected:可以在同一個類別、其子類別或同一套件中存取。 沒有使用修飾子:預設範圍是同一個類別和套件中存取,但不包含不同套件的子類別,protected包含不同套件的子類別,所以其存取範圍比protected小。

引用JDK套件 引入單一類別的語法: import 套件.子套件. … .類別; 引入單一介面的語法: 引入套件內所有類別的語法: import 套件.子套件. … .*;

引用JDK套件 引入某套件的所有類別及介面時,並不包含下一層的類別或介面。 import java.awt.*; 並不包含下式引入的任何類別或介面。 import java.awt.event.*;

引用JDK套件 JDK常用套件的簡單說明 package 說明 java.lang 一般常用的功能,此套件會自動被編譯器引入程式裡。 java.io 程式的輸入和輸出資料功能。 java.applet 含建立applet相關的類別及介面。 java.util 含工具類別及介面,如日期、時間、亂數相關類別等。 java.awt 抽象視窗工具套組,包含繪圖、視窗程式元件等。 java.beans 建立可重用軟體元件之類別及介面。 java.net 網路通訊類別。 javax.swing 新一代的圖形化使用者介面(GUI)元件。

classpath設定套件所在位置 使用–classpath參數指出引入之類別檔的位置 執行程式時 javac –classpath <路徑一>;<路徑二>;… 程式.java 執行程式時 java –classpath <路徑一>;<路徑二>;… 程式

classpath設定套件所在位置

classpath設定套件所在位置 解壓縮my.jar至套件目錄

自訂套件 自訂套件語法: package 套件.子套件.…; // 引入類別或介面 // 類別或介面定義 套件在命名時,第一層名稱為組織的類型,如:公司為com,非營利性組織為org等。第二層名稱為組織名稱,第三層以下則是依據功能分類。 com.riarock.tools

都是為了「程式碼的再利用」 定義方法時,方法內的變數不可以重複宣告,表示方法內為一個名稱空間(Name Space)。 定義類別時,方法被類別所包裹,類別內的屬性或方法不可以重複宣告,表示類別內為另一個名稱空間。 套件可以區隔同名的類別,又是另一個名稱空間。 三層的名稱空間可以讓「程式碼的再利用」發揮到最佳的情況,也有益於程式碼的管理。

靜態引入(Static Import) 靜態引入可以引入類別的靜態成員 靜態引入發生同名衝突時,類別本身定義的方法或屬性優先取用。 import static 套件.子套件. … .類別.靜態屬性; import static 套件.子套件. … .類別.靜態方法; import static 套件.子套件. … .類別.*; 靜態引入發生同名衝突時,類別本身定義的方法或屬性優先取用。 區域變數也會遮蔽靜態引入的靜態屬性。