精華區beta NTU-YP 關於我們 聯絡資訊
因為要做presentation,把自己隨手做的手稿post出來 希望各位網友不吝指正,謝謝. Java程式設計 Introduction Java虛擬機器的觀念 Java虛擬機器和一般傳統環境不同的是因為Java要達到它最重要的跨平台功能. 一般程式語言的方式是編譯出目的檔或可執行檔. 然後由作業系統載入,以行程(process)的方式配合系統呼叫(System call) 和作業系統及硬體溝通. 而Java則是編譯出類別物件檔(.class)然後在使用者client端透過Intepreter 或支援Java的Browser建立一個Java虛擬機器,並由該虛擬機器和使用者的 "任何"作業系統或硬體溝通.以達到跨平台的效果 接下來先簡單介紹一下Java這個語言的特色 @ 程式結構方面,Java單一原始碼檔(.java)可含有多個物件(class)或 介面(interface),但一個檔中只有一個物件可被定義為公用(public) @ 沒有全域變數或函數,所有的定義或宣告都在物件中,沒有程序式語言最重要的 函數,更落實了物件導向程式語言的觀念.皆以物件的方法(method)取代之. @ 程式包裹(package),包含了公用物件或介面,都是有一般標準的,以提高程式 可讀性,每個人所引用的程式包裹不會有不相容的情形發生,也不用像C, 看程式必須去讀.C檔外還須讀該程式師的.h檔.故Java去除了前置處理器 (preprocessor),而以import指令取代 ex.import java.awt.* 引入java.awt這個packcage import java.awt.Graphics 引入java.awt這個package中的Graphics物件 沒有了程序式語言循序執行的特色,Java物件該如何操作呢? C++中對每個物件定義建構子(constructor)和解構子(destructor) Java因為管理記憶體的方式和C++不同,因為安全性的問題,不須由程式師負責 釋放或收回記憶體的工作,而全部由系統來管理,稱為"垃圾收集"法(garbage collection),所以,Java仍然保留建構子,而沒有了解構子,但可以覆寫(override) "結束"(finalize)這個method完成garbage collection所無法完成的工作,也 可以呼叫finalize(),來提早釋放等待被garbage collection回收的物件 Java的資料型態 Java的資料型態可分為兩類,但全部都可視為物件, @ 一種是簡單型態,這種型態的儲存大小都是已經定義好的 (1)byte(8 bit) (2)short(16 bit) (3)int(32 bit) (4)long (64 bit) (5)float(32 bit) (6)double(64 bit) (7)char(16 bit 採Unicode以對應多國語言) (8)boolean(True/False) @ 另一種是組合型態,Java中的物件以參考型態方式實現,物件實體必須明確的 以new宣告,以分配記憶體空間,且每個物件都是Object的子物件(當然Object 本身是個例外) * 陣列(Array) Java沒有了指標,陣列該如何完成呢?在Java中,陣列依然是一個物件 但何其他物件不同的是,陣列無法明顯的作為任一物件的子物件 且都有一個物件實體"length" ex.int[] intarray = new int[256]; System.out.println(intarray.length); 和C,C++不同的則是Java的陣列無法動態的改變大小,在宣告時已確定 * 類別物件(class) 命名:以" 程式包裹名稱.類別物件名稱 "格式 宣告:以[修飾子] class "類別物件名稱" [extends 父類別物件名稱] [implements 介面名稱 {,介面名稱}] 雖然Java沒有了C++中的多重繼承,但可引入多個介面來達成相同目的 * 介面(interface) interface可說是為了解決Java去除了多重繼承的缺點,但又希望能達到C++多重 繼承的威力,而設計的一種抽象資料型態,interface和abstract class相同, 不能產生instance,且其中的method也沒有implement,只有name,modifier和傳回型態 其中所有的資料,method等都是static的,舉個例來說,如果要建立一個"鯨魚"的類別 則必須由"哺乳類"繼承而來,但鯨魚又有許多魚的特性,則implement魚的interface 然後在鯨魚的class中實作這些魚的method -- ▍ ╭─────────╮ ⊿≡﹢ ∠ ,我來煩你啦! █ ▍ α ╰─────────╯ █◣ ˍˍˍ≠︻~ ~ ~ ˍˍˍˍ◢██▇█▇▆▅▄▃▂◎◥◎ˍˍ ˍ ˍ ˍˍ ˍˍˍ ˍˍ ˍ ˍˍˍˍ -- ※ 發信站: 批踢踢實業坊(ptt.twbbs.org) ◆ From: javatea.m1.ntu.