程式码及函式库管理

上传人:xmg****18 文档编号:112015087 上传时间:2019-11-04 格式:PPT 页数:34 大小:207KB
返回 下载 相关 举报
程式码及函式库管理_第1页
第1页 / 共34页
程式码及函式库管理_第2页
第2页 / 共34页
程式码及函式库管理_第3页
第3页 / 共34页
程式码及函式库管理_第4页
第4页 / 共34页
程式码及函式库管理_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《程式码及函式库管理》由会员分享,可在线阅读,更多相关《程式码及函式库管理(34页珍藏版)》请在金锄头文库上搜索。

1、Java2程式實務 1 第八章 package 程式碼及函式庫管理 傳統的程式語言,C 及 PASCAL,抑或是較新的 物件導向程式語言如 C+ 等: 程式語言本身並沒有任何的機制去管理程式碼及函式 庫等瑣碎繁雜的檔案。 Java: 以類別為主的程式編譯方式, 以 package 來管理組織類別,使得系統發展能夠以一 種有效率的方式進行。 Java2程式實務 2 第八章 package 程式單元(.class 檔案) 一般的程式語言 以檔案為單位來編譯程式,很自然的,原始程式在編 譯後就產生以檔案名稱為主的目標檔案 (object file)。 無論在原始檔案中包含了多少個函數或是類別的定義

2、,程式設計師所面對的就是一個包含多個函數或類別 的目標檔案。 遭遇的困難: 因此,如果想在函數或類別撰寫時就作好分門別類的 管理,幾乎是不可能的事。 Java2程式實務 3 第八章 package Java 所有的類別在編譯後都會產生一個或一個以上的 ,以程式中類別的名稱為主,且附加名為 class 的檔案。 所有的 Java 程式都是以類別為主的,一個 .class 檔案 (其中只包含一個類別的定義),就稱為一個 程式單元。 Java2程式實務 4 第八章 package 一個名為A.java的檔案: class A class B class C 在編譯後,這個 A.java 檔 案就會產

3、生 3 個 class 檔案 ,分別為 A.class,B.class 及 C.class。 Java2程式實務 5 第八章 package Java 程式寫作規定: 在 Java 的程式寫作規範上(詳見本書附錄)有 特別規定,那就是在一個 Java 程式中衹可以定 義一個 public 類別,或是一個 public 類別加上其 他的非 public 類別所組合而成。當然,檔案名稱 也必須與這個 public 類別的名稱一致,否則就會 產生編譯錯誤。 (注意,在 Win32 系統中,檔案名稱的大小寫與程式中 所定義類別的名稱是相同的) Java2程式實務 6 第八章 package 因此,在以

4、 Java 發展軟體時,原始碼的管理 變得較以往簡單。 一個檔案中祇有定義一個 public 類別,我們可以 很輕易的由檔案名稱就知道這些 public 類別的原 始程式所在位置。 Java2程式實務 7 第八章 package -什麼是 package (包裹) 設計概念 將類別於系統發展階段時就將其做分類管理,以 便於系統在日後的發展及使用上能夠更為便利。 Java2程式實務 8 第八章 package 如何定義 package? package 的定義是十分簡單的,那就是在程式中 非註解的第一行程式用以下的方式定義 package: package package名稱; 例: packa

5、ge myFirstPackage; package basicPackage; Java2程式實務 9 第八章 package package 名稱可以是一個簡單名稱也可以是 一串以 . 連結的字串所形成的名稱: package graphics; package java.io; package java.awt.swing.plaf.basic; package org.omg.CORBA; package java.awt.dnd.peer; Java2程式實務 10 第八章 package -在專案中定義 package 在程式中定義了 package 後,就是將程式中 所定義的類別

6、歸屬於所定義的 package 中。 如果在程式中並沒有定義任何 package 的話 ,這些未定義任何 package 的類別都自動歸 屬於一個沒有名字的 package。 這個沒有名字的 package,Java 稱它為 default package (預設包裹)。 Java2程式實務 11 第八章 package 在 Java 中可以將不同性質、用途的類別分別 歸屬到不同的 package 中。 / 檔案名稱:Draw.java package graphics; /定義類別 Draw 屬於 package graphics。 class Draw / 檔案結束 / 檔案名稱:Pain

7、t.java package graphics; /定義 Paint 類別屬於 package graphics class Paint / 檔案結束 Java2程式實務 12 第八章 package 注意:一個 Java 檔案衹能定義有一個 package 敘述,也就是說,在一個 Java 檔案 中的所有類別,只能屬於一個 package。 如果在程式中完全沒有定義任何 package, Java 會將所有沒有定義 package 的類別歸屬 於預設 package 之下。 也就是說,這些類別都是定義於同一個預設的 package scope (生存範圍) 之中,而在同一個 package

8、的類別相互之間則可以互相叫用。 Java2程式實務 13 第八章 package 建議在發展程式時,先將程式設定為某一個 package,那麼,程式中的資源就能夠獲得 package 的保護,而不會被其他程式意外的 破壞。 Java2程式實務 14 第八章 package java utillangio 在 java 這個專案之下,可以再分為 util,lang 及 io 等 子專案。 為了要表示專案間相互的從屬關係,我們就可以將其 表示為 java.util,java.lang 及 java.io 等。 Java2程式實務 15 第八章 package 例如: 在 java.lang 之中定

9、義的 String 類別,其完整的 名稱就是 java.lang.String。 定義在 java.util 之中的例外 EmptyStackException 的完整名稱就成為 java.util.EmptyStackException , 定義在 java.io 中的例外 NotActiveException 的完 整名稱就成為 java.io.NotActiveException。 Java2程式實務 16 第八章 package 以程式為例: package java.io; class NotActiveException extends Exception . Java2程式實務

10、17 第八章 package -如何編譯及執行 package 中的程式 在 jdk 中編譯已定義 package 的 java 檔案: 需要在 javac 後加上 -d 這個選項。 這個選項的意義是:將要產生的 package 及編譯後所 產生的 class 檔案放置在 -d 後所指定的路徑中,在 編譯後,javac 才會幫我們依照 package 的定義,在目 錄中去產生 .class 檔案。 程式中所定義的 package,其實就是檔案系統中 的相對路徑。 Java2程式實務 18 第八章 package 例如: 就之前的 graphics package 範例: javac d . D

11、raw.java javac d . Paint.java 分別在 java 檔案所在的現行工作目錄下編譯產 生 class 檔案。 編譯後的 Draw.class 及 Paint.class 將會被存放於: .graphicsDraw.class .graphicsPaint.class Java2程式實務 19 第八章 package 執行 package 中的程式: 在編譯完後直接執行。 特別注意的是:千萬不要進入 package 的目錄中去執 行 .class 檔案,祇要在 package 所在的根目錄,用以 上的例子來說,就只需留在原工作目錄執行即可。 如:java graphics

12、.Draw 使用 javac 的 -classpath 選項。 如:java classpath .;c:MyJavaMyClass graphics.Draw Java2程式實務 20 第八章 package 定義 jdk 所使用的環境變數 classpath。 將路徑直接定義在 classpath 的環境變數中。 set classpath=c:MyJavaMyClass 可以在任何路徑下執行下面這個命令: java graphics.Draw Java2程式實務 21 第八章 package -如何產生 jar 檔案 Java 中的 jar,是 Java ARchive (Java 文件

13、檔) 的簡稱。 jar 是類別所成的集合。 Java2程式實務 22 第八章 package c產生新的文件檔案輸出於 stdout t將 stdout 的輸出內容列表顯示 x files從 stdout 中擷取所有檔案,或其中某些指定於 files 中的檔案。如果 沒有指定,則擷取所有檔案。 f file指定使用的檔案名稱。如與 c 配合使用,則產生新的以 file 為名的 jar 檔案。如與 t 配合使用,則將以 file 為名的檔案內容列表輸出。 如與 x 配合使用,則將擷取以 file 為名的 jar 檔案。 v將 jar 的運作過程顯示出來。 u更新 jar 的內容。 Java2程式

14、實務 23 第八章 package 以 8-3 中的程式為例,在工作目錄中使用以 下命令: jar cvf myPackage.jar graphics jar 將會自動將子目錄 graphics 中的所有子目錄及檔案 加入新檔 myPackage.jar 中。 如果有新版本的 graphics.Draw.class 檔,也 可以以下列命令加以更新: jar uvf myPackage.jar graphicsDraw.class Java2程式實務 24 第八章 package -使用其他的 package 及類別來發展程式 jdk1.3 中所有的系統 package 是不用在 classp

15、ath 中設定,它們能夠被系統自動確認 其所在位置 (系統安裝時的預設路徑)。 其他外來的 package,jdk 則需要一種方式來 搜尋這些外來的 jar 檔案。那就是在前面所 提,經由 classpath 環境變數去設定。 Java2程式實務 25 第八章 package 在程式中使用 package 的方式,有二種方式 使用 import 敘述。 在 Java 程式的開頭部分,我們常常可以看到一行或 數行程式,如: import java.io.*; import java.util.*; import java.awt.Font; 將其他的 package 引入目前 package 的生存範圍中, 使得程式設計師能夠在程式中直接使用 package 中的 類別名稱。 Java2程式實務 26 第八章 package import java.io.*; class Main public static void main(String args) BufferedReader in = new BufferedReader(); / BufferReader 是定義在 java.io 中的類別。 ; Java2程式實務 27 第八章 package import 敘述中的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号