總學(xué)時數(shù): 90(54/36) 學(xué)分:3 適用專業(yè):全校各本科專業(yè)
• 課程的教學(xué)目標(biāo)
通過本課程的學(xué)習(xí),幫助學(xué)生掌握面向?qū)ο蟮木幊淘O(shè)計(jì)思想,,并能運(yùn)用 Java技術(shù)和基本開發(fā)工具進(jìn)行計(jì)算機(jī)軟件代碼設(shè)計(jì),。培養(yǎng)學(xué)生用新一代程序設(shè)計(jì)思想和邏輯思維方式進(jìn)行計(jì)算機(jī)編程研究,啟發(fā)學(xué)生的創(chuàng)新意識,,提高學(xué)生在軟件設(shè)計(jì)過程中分析問題和解決問題的實(shí)際動手能力,,使學(xué)生的理論知識和實(shí)踐技能得到共同發(fā)展,從而為今后步入新世紀(jì)知識經(jīng)濟(jì)領(lǐng)域打下堅(jiān)實(shí)基礎(chǔ),。
• 課程的性質(zhì),、目的和任務(wù)
本課程屬于教育部規(guī)定的非計(jì)算機(jī)專業(yè)計(jì)算機(jī)基礎(chǔ)教學(xué)的第二層次,即計(jì)算機(jī)(軟件)技術(shù)基礎(chǔ),。在修完“大學(xué)計(jì)算機(jī)基礎(chǔ)”課程后,,使學(xué)生進(jìn)一步掌握一門程序設(shè)計(jì)語言( Java語言),為全校學(xué)生必修課,。
Java語言是美國SUN公司1995年推出的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,,該語言充分考慮了互聯(lián)網(wǎng)時代的特點(diǎn),在設(shè)計(jì)上具有跨平臺性,、面向?qū)ο?、安全等特性,因此一?jīng)推出就受到IT界的廣泛重視并大量采用,,同時也成為教育界進(jìn)行程序設(shè)計(jì)教學(xué)的一門重要編程語言,。通過本門課程的學(xué)習(xí)可以使學(xué)生掌握J(rèn)ava語言的基本語法和編程規(guī)范;尤其是掌握用Java語言進(jìn)行網(wǎng)絡(luò)編程的技巧,;同時Java語言是一門面向?qū)ο蟮恼Z言,,通過學(xué)習(xí)可以掌握用面向?qū)ο筮M(jìn)行編程的思想和實(shí)踐,,能夠根據(jù)實(shí)際需求編制出一些實(shí)用的程序,。
• 課程教學(xué)的基本要求
1、熟練掌握J(rèn)ava語言的基本數(shù)據(jù)類型,,運(yùn)算符及表達(dá)式,,控制結(jié)構(gòu),字符串的應(yīng)用,。
2,、學(xué)會運(yùn)用面向?qū)ο缶幊烫攸c(diǎn),使用抽象,、封裝,、繼承,、多態(tài)編寫簡單的類和使用類對象編程。
3,、掌握J(rèn)ava語言基礎(chǔ)類,、字符串類的應(yīng)用。
4,、掌握異常的應(yīng)用方法,,進(jìn)行異常處理設(shè)計(jì)。
5,、掌握線程的使用方法,。
6、掌握J(rèn)ava語言的I/O編程及應(yīng)用方法,。
7,、掌握J(rèn)ava圖形用戶界面設(shè)計(jì)方法及其編程。
8,、掌握Applet小應(yīng)用程序的設(shè)計(jì)方法,,設(shè)計(jì)小型網(wǎng)絡(luò)應(yīng)用程序。
9,、掌握Application應(yīng)用程序的設(shè)計(jì)方法,,設(shè)計(jì)小型網(wǎng)絡(luò)應(yīng)用程序。
10,、了解Java典型技術(shù)的原理和應(yīng)用,。
11、了解Java服務(wù)器端的編程技術(shù)和分布式網(wǎng)絡(luò)應(yīng)用系統(tǒng)的開發(fā)過程,。
12,、進(jìn)一步理解Web工作原理。
• 課程教學(xué)內(nèi)容
第 1章:Java語言概述(2學(xué)時)
• 教學(xué)基本要求
了解 Java語言的產(chǎn)生,、應(yīng)用前景和特點(diǎn),。
掌握 Java語言和C++語言的異同點(diǎn)。
掌握 Java的運(yùn)行環(huán)境JDK和Java Applet程序,、Java Application程序的編輯,、編譯和運(yùn)行過程。
• 要求學(xué)生掌握的基本概念,、理論,、原理
第一節(jié) 了解 Java(1學(xué)時)
• Java的產(chǎn)生
• Java的特點(diǎn)
• Java的實(shí)現(xiàn)機(jī)制
• Java虛擬機(jī)
• 垃圾回收機(jī)制
• 代碼安全性檢測
• Java的發(fā)展
第二節(jié) Java的運(yùn)行環(huán)境JDK(1學(xué)時)
• JDK的安裝
安裝 Java Develop Kit(JDK)
安裝 java幫助文檔
配置類路徑
• java application和java applet的編輯、編譯與運(yùn)行
• 教學(xué)重點(diǎn)和難點(diǎn)
重點(diǎn): java 語言的特點(diǎn)
面向?qū)ο蟮木幊趟悸?
難點(diǎn): java 虛擬機(jī)
• 小結(jié)
1995年5月Sun公司正式發(fā)布Java的第一個辦公版本,。Java語言被美國的著名雜志PCMagazine評為1995年十大優(yōu)秀科技產(chǎn)品,。短短幾年間,隨著Internet的迅猛發(fā)展和WWW應(yīng)用的快速增長,,Java獲得迅速發(fā)展和壯大,,已成為Intemet上的主流編程語言,。近兩年Sun公司推出的J2ME、J2SE,、J2EE三大平臺更體現(xiàn)了Java語言強(qiáng)大的應(yīng)用能力,,從高性能計(jì)算,到移動計(jì)算(手機(jī)通信),、智能卡,,都無不體現(xiàn)著Java的存在。
本章主要介紹 Java的特點(diǎn),、實(shí)現(xiàn)機(jī)制,、核心技術(shù)以及運(yùn)行環(huán)境JDK,使讀者對Java有個初步認(rèn)識,,為后續(xù)各章的學(xué)習(xí)做好準(zhǔn)備,。
第 2章:Java語言基礎(chǔ)知識(6學(xué)時)
• 教學(xué)基本要求
掌握 Java語言各種數(shù)據(jù)類型的規(guī)定及其與C++語言在數(shù)據(jù)類型上的區(qū)別。
熟練使用各種數(shù)據(jù)類型的定義,,表示和引用,。
熟練掌握 Java 語言流程控制語句的功能及使用。
能熟練處理字符串
• 要求學(xué)生掌握的基本概念,、理論,、原理
第一節(jié) 標(biāo)志符與關(guān)鍵字( 0.25學(xué)時)
• 標(biāo)識符:在 Java中,所有的標(biāo)識符都必須以一個字母,、下劃線或美元符號“$”開頭,。后面可以包含字母、數(shù)字,、下劃線和美元符號,。
• 關(guān)鍵字:關(guān)鍵字是 Java語言本身使用的標(biāo)識符,它有其特定的語法含義,。所有的Java關(guān)鍵字將不能被用作標(biāo)識符,,關(guān)鍵字用英文小寫字母表示。
• 分隔符:分隔符是用來區(qū)分源程序中的基本成分,,可使編譯器確認(rèn)代碼在何處分隔,。分隔符有注釋、空白符和普通分隔符三種,。
• 注釋
第二節(jié) 基本數(shù)據(jù)類型( 0.5學(xué)時)
Java的數(shù)據(jù)類型可分為簡單類型,、引用類型,。
Java共定義了8種簡單類型,。
第三節(jié) 變量與常量( 0.25學(xué)時)
• 常量:常量是指在程序中直接給出的一個符號串,作用是為變量賦值或參與表達(dá)式的運(yùn)算,。它可以是一個具體的數(shù)值或字符串 ,。
• 變量:變量是程序中存儲單元的標(biāo)識符表示,,是內(nèi)存中的一塊空間,提供了可以存放信息和數(shù)據(jù)的地方,,具有記憶數(shù)據(jù)的功能,。通常用字母或單詞作為變量名 。
第四節(jié) 運(yùn)算符與表達(dá)式( 1學(xué)時)
• 運(yùn)算符: Java的運(yùn)算符代表著特定的運(yùn)算指令,,程序運(yùn)行時將對運(yùn)算符連接的操作數(shù)進(jìn)行相應(yīng)的運(yùn)算,。
• Java提供了十分豐富的運(yùn)算符,Java的運(yùn)算符主要分為4類:算術(shù)運(yùn)算符,、位運(yùn)算符,、關(guān)系運(yùn)算符和布爾運(yùn)算符。
• 表達(dá)式:表達(dá)式是算法語言的基本組成部分,,它表示一種求值規(guī)則,,通常由操作數(shù)、運(yùn)算符和圓括號組成,。操作數(shù)是參加運(yùn)算的數(shù)據(jù),,可以是常量、常數(shù),、變量或成員方法引用,。表達(dá)式中出現(xiàn)的變量名必須已經(jīng)被初始化。
第五節(jié) 流程控制( 2學(xué)時)
按程序的執(zhí)行流程,,程序的控制結(jié)構(gòu)可分為 3種:
• 順序結(jié)構(gòu):一般情況下,,程序按語句的書寫次序依次順序執(zhí)行,順序結(jié)構(gòu)是最簡單的一種基本結(jié)構(gòu),。
• 分支結(jié)構(gòu): Java有兩種分支語句實(shí)現(xiàn)分支結(jié)構(gòu),,if語句實(shí)現(xiàn)二路分支,swicth語句實(shí)現(xiàn)多路分支,。
• 循環(huán)結(jié)構(gòu):
1)for語句
2)while語句
3)do-while語句
第六節(jié) 數(shù)組( 1學(xué)時)
• 數(shù)組是有序數(shù)據(jù)的集合,,數(shù)組中的每個元素具有相同的數(shù)組名,根據(jù)數(shù)組名和下標(biāo)來唯一地確定數(shù)組中的元素,。
• 數(shù)組的使用:數(shù)組有一維數(shù)組和多維數(shù)組,,使用時要先聲明后創(chuàng)建。
第七節(jié) 字符串( 1學(xué)時)
• 聲明字符串變量
• 字符串運(yùn)算
• String類的常用方法
• 教學(xué)重點(diǎn)和難點(diǎn)
重點(diǎn):各種數(shù)據(jù)類型的定義,,表示和引用
各種控制語句
字符串的使用
難點(diǎn):動態(tài)初始化復(fù)雜類型數(shù)組
使用 StringBuffer類表示和操作字符串
• 小結(jié)
Java從C++繼承了大量的語言成份,,如運(yùn)算符、控制結(jié)構(gòu)等,。
本章介紹 Java語言的基礎(chǔ)知識,,包括標(biāo)識符與關(guān)鍵字、運(yùn)算符、表達(dá)式,、變量聲明,,實(shí)現(xiàn)程序控制結(jié)構(gòu)的語句,以及數(shù)組和字符串,。
第 3章:面向?qū)ο蠹夹g(shù)(8學(xué)時)
• 教學(xué)基本要求
掌握類的定義,,類的繼承,及相關(guān)語法規(guī)則,,掌握對類成員的使用,,理解類的封裝。
理解方法重載和方法重寫,。
理解面向?qū)ο蟮奶匦浴?
了解面向?qū)ο蟮能浖_發(fā)過程,。
• 要求學(xué)生掌握的基本概念、理論,、原理
第一節(jié) 類與對象( 0.5學(xué)時)
• 類( Class)是一種復(fù)雜的數(shù)據(jù)類型,,它是將數(shù)據(jù)和與數(shù)據(jù)相關(guān)的操作封裝在一起的集合體。類是普通數(shù)據(jù)類型的擴(kuò)展,,它不但包含數(shù)據(jù),,還包含了對數(shù)據(jù)進(jìn)行操作的方法(method)。方法反映的是數(shù)據(jù)的行為而不是數(shù)據(jù)本身,。
• 對象 ( Object)是類的實(shí)例,,它是類的變量。當(dāng)程序運(yùn)行時,,對象占用內(nèi)存單元,。對象與類的關(guān)系就像變量與類型的關(guān)系一樣。類與對象是密切相關(guān)的,,沒有脫離對象的類,,也沒有不依賴于類的對象。
• Java 中的所有數(shù)據(jù)類型都是用類來實(shí)現(xiàn)的,,Java語言是建立在類這個邏輯結(jié)構(gòu)之上,,所以Java 是一種完全面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,類是Java的核心,。
• 類中的數(shù)據(jù)稱為成員變量,。有時也稱為屬性、數(shù)據(jù),、域,。對成員變量的操作實(shí)際上就是改變對象的狀態(tài),使之能滿足程序的需要,。成員變量也有很多修飾符,,用來控制對成員變量的訪問。
第二節(jié) 類的創(chuàng)建( 0.5學(xué)時)
• 類的聲明
• 類主體
第三節(jié) 對象的創(chuàng)建( 1學(xué)時)
• 創(chuàng)建對象
• 對象的使用
• 對象的初始化
1)系統(tǒng)對變量的初始化
2)構(gòu)造方法
• 對象的銷毀
第四節(jié) 類的封裝( 2學(xué)時)
• Java中通過設(shè)置類的訪問權(quán)限和類中成員的訪問權(quán)限,來實(shí)現(xiàn)封裝的特性,。
• Java定義了4種訪問權(quán)限:公有的,、保護(hù)的,、默認(rèn)的和私有的,。
• 實(shí)例成員和類成員
第五節(jié) 類的繼承( 2學(xué)時)
• 新類從現(xiàn)有的類中產(chǎn)生,保留了現(xiàn)有類的屬性和方法并根據(jù)需要加以修改,。當(dāng)你建立一個新類時,,不必寫出全部成員變量和成員方法。只要簡單地聲明這個類是從一個已定義的類繼承下來的,,就可以使用被繼承類的全部成員,。被繼承的類稱為父類或超類,這個新類就是子類,。
• 創(chuàng)建子類
• this引用,、super引用和instanceof對象運(yùn)算符
• 最終類和抽象類
第六節(jié) 類的多態(tài)性( 2學(xué)時)
• 所謂多態(tài)( polymorphism),是指一個名字可具有多種語義,。在面向?qū)ο笳Z言中,,多態(tài)是指一個方法可能有多種版本,一次單獨(dú)的方法調(diào)用(invoke)可能是這些版本中的任何一種,,即實(shí)現(xiàn)“一個接口,多個方法”,。
• 方法的重載
• 方法的覆蓋
• 教學(xué)重點(diǎn)和難點(diǎn)
重點(diǎn):類和對象的概念
面向?qū)ο蟮木幊趟悸?
難點(diǎn): 理解方法重載和方法重寫,,不要混淆了兩者的使用
類變量和類方法的使用
• 小結(jié)
面向?qū)ο蠹夹g(shù)是一種基于對象概念的軟件開發(fā)方法, Windows平臺上的高級編程語言大多支持面向?qū)ο蟪绦蛟O(shè)計(jì)(Object Oriented Programming,,OOP),。
Java是一種完全面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,它的所有數(shù)據(jù)類型和函數(shù)都封裝在類中,。Java在繼承C++優(yōu)秀特性的同時,,放棄了那些模糊、復(fù)雜,、容易出錯的特性以及影響程序健壯性的部分,。Java所實(shí)現(xiàn)的封裝、繼承,、多態(tài)性等面向?qū)ο蟮膶傩?,降低了程序的?fù)雜性,實(shí)現(xiàn)了代碼的可重用性,,提高了運(yùn)行效率,,使Java不依賴于機(jī)器的結(jié)構(gòu),具有平臺無關(guān)性、分布式,、可移植性,、可重用性、健壯性,、安全性等特點(diǎn),。
本章首先介紹類與對象的基本概念、類的聲明,、對象的創(chuàng)建和使用,,然后介紹如何實(shí)現(xiàn)面向?qū)ο蟮娜齻€核心特性:類的封裝、繼承和多態(tài)性,。
第 4章:Java類和對象的高級特征(5學(xué)時)
• 教學(xué)基本要求
掌握 Java接口的定義和實(shí)現(xiàn),。
掌握 Java內(nèi)部類。
了解系統(tǒng)定義的類 (包) ,。
• 要求學(xué)生掌握的基本概念,、理論、原理
第一節(jié) 接口( 1學(xué)時)
• 接口是抽象類的一種,,只包含常量和方法的定義,,而沒有變量和方法的實(shí)現(xiàn),且其方法都是抽象方法,。
• 定義接口
接口是沒有實(shí)現(xiàn)的方法和變量的集合,。接口的定義與類的定義相似。
• 實(shí)現(xiàn)接口
接口的實(shí)現(xiàn)類似于繼承,,只是不用 extends,,而是用關(guān)鍵字implement聲明一個類將實(shí)現(xiàn)一個接口,其聲明格式如下:
[〈修飾符〉]class〈類名〉[extends〈超類名〉][implements〈接口名1〉,〈接口名2〉,,……]
第二節(jié) 內(nèi)部類( 2學(xué)時)
• 內(nèi)部類是在一個類的內(nèi)部嵌套定義的類,,它可以是其它類的成員,也可以在一個語句塊的內(nèi)部定義,,還可以在表達(dá)式內(nèi)部匿名定義,。
• 內(nèi)部類有如下特性:
1) 一般用在定義它的類或語句塊之內(nèi),在外部引用它時必須給出完整的名稱,。名字不能與包含它的類名相同,。
2) 可以使用包含它的類的靜態(tài)和實(shí)例成員變量,也可以使用它所在方法的局部變量,。
3) 可以定義為 abstract,。
4) 可以聲明為 private或protected。
5) 若被聲明為 static,,就變成了頂層類,,不能再使用局部變量,。
6) 若想在 Inner Class中聲明任何static成員,則該Inner Class必須聲明為static,。
• 內(nèi)部類的優(yōu)缺點(diǎn):
優(yōu)點(diǎn) :節(jié)省編譯后產(chǎn)生的字節(jié)碼文件的大小
缺點(diǎn) :使程序結(jié)構(gòu)不清楚
第三節(jié) 包( 2學(xué)時)
• 包( package)是Java提供的一種區(qū)別類名空間的機(jī)制,,是類的組織方式,包對應(yīng)一個文件夾,,包中還可以再有包,,稱為包等級。
• Java的API介紹
Java的常用包有:
Java.lang 語言包
Java.util 使用包
Java.awt 抽象窗口工具包
Java.text 文本包
Java.io 輸入輸出流的文件包
Java.applet Applet應(yīng)用程序
Java.net 網(wǎng)絡(luò)功能
• 引用 Java定義的包
• 自定義包
• 教學(xué)重點(diǎn)和難點(diǎn)
重點(diǎn):接口和包的使用
難點(diǎn):通過 package ,、 import 語句和設(shè)置環(huán)境變量 Classpath 訪問其它包中的類
• 小結(jié)
為使程序更適應(yīng)網(wǎng)絡(luò)傳輸,,提高運(yùn)行效率,,增加安全性,,降低程序復(fù)雜性, Java采用的是盡可能簡單的面向?qū)ο髾C(jī)制,。最明顯的特點(diǎn)就是,,它只支持單重繼承,而不支持C++等語言中的多重繼承,。但Java引入了接口概念,,接口和單重繼承的結(jié)合可以實(shí)現(xiàn)多重繼承的功能。
本章進(jìn)一步討論 Java面向?qū)ο蟮膶?shí)現(xiàn)機(jī)制,,包括接口,、內(nèi)部類和包。
第 5章:異常處理(3學(xué)時)
• 教學(xué)基本要求
掌握異常的概念和 Java異常處理的機(jī)制,。
掌握 Java異常類的產(chǎn)生,、捕獲與處理方法。
了解 Java 異常類的繼承和派生關(guān)系,。
掌握自定義異常類,。
• 要求學(xué)生掌握的基本概念、理論,、原理
第一節(jié) Java異常處理的基礎(chǔ)知識(0.5學(xué)時)
• 錯誤與異常
在程序運(yùn)行時經(jīng)常會出現(xiàn)一些非正常的現(xiàn)象,,如死循環(huán)、非正常退出等,,稱為運(yùn)行錯誤,。根據(jù)錯誤性質(zhì)運(yùn)行錯誤分為兩類:錯誤和異常。
• 異常處理機(jī)制
Java提供了異常處理機(jī)制,,它是通過面向?qū)ο蟮姆椒▉硖幚懋惓5摹?
1)拋出異常
2)捕獲異常
3)異常處理的類層次
第二節(jié) 異常類的產(chǎn)生,、捕獲與處理( 1學(xué)時)
• 異常的產(chǎn)生
• 使用 try-catch-finally語句捕獲和處理異常
• Exception 異常類的方法
第三節(jié) 異常的分類( 0.5學(xué)時)
• 異常類層次圖
程序?qū)﹀e誤與異常的三種處理方式:
1) 程序不能處理的錯誤
2) 程序應(yīng)避免而不捕獲的異常
3) 必須捕獲的異常
• 常見的公用異常類
1) 算術(shù)異常類ArithmeticException
2) 空指針異常NullPointerException
3) 類型強(qiáng)制轉(zhuǎn)換異常ClassCastException
第四節(jié) 拋出異常( 0.5學(xué)時)
• 使用 throw語句拋出異常
• 拋出異常的方法與調(diào)用方法處理異常
• 由方法拋出異常交系統(tǒng)處理
第五節(jié) 自定義異常類( 0.5學(xué)時)
雖然 Java已經(jīng)預(yù)定了很多異常類,但有的情況下,,程序員不僅需要自己拋出異常,,還要創(chuàng)建自己的異常類,,這時可以通過創(chuàng)建Exception的子類來定義自己的異常類。
• 教學(xué)重點(diǎn)和難點(diǎn)
重點(diǎn):在編寫程序時,,要正確地使用捕獲例外和聲明拋棄例外的兩種例外處理的方法
難點(diǎn):如何使用 Java中兩種例外處理機(jī)制,,拋棄例外和聲明拋棄例外的區(qū)別與聯(lián)系
• 小結(jié)
本章討論了 Java的異常處理機(jī)制,并學(xué)習(xí)如何合理應(yīng)用異常處理機(jī)制,,從而使我們編寫的Java程序具有穩(wěn)定性和可靠性,。
第 6章:圖形界面設(shè)計(jì)(10學(xué)時)
• 教學(xué)基本要求
掌握事件源、事件,、事件處理者等概念,,讓程序能夠響應(yīng)用戶的操作。
掌握 Java 的 GUI 設(shè)計(jì)技術(shù),。
掌握用 AWT來設(shè)計(jì)圖形用戶界面的方法,,尤其是組件、容器,、布局管理器等概念,。了解AWT各個組件的用法及所采用的事件處理接口。
掌握 Swing的基本用法,,了解其常用組件和容器的使用方法及功能,,知道其布局管理器和事件處理與AWT處理上的區(qū)別,了解其輔助特性,。
• 要求學(xué)生掌握的基本概念,、理論、原理
第一節(jié) 用 AWT 生成圖形化用戶界面(2學(xué)時)
• java.awt 包
• 組件和容器
• 常用容器
• 布局管理器
第二節(jié) AWT事件處理模型(2學(xué)時)
當(dāng) JAVA程序運(yùn)行時,,如果用戶在界面上進(jìn)行某種操作,,系統(tǒng)捕獲這些操作回產(chǎn)生相應(yīng)的 事件 (event),然后將執(zhí)行相應(yīng)的 事件處理程序 ,。
事件的來源 是用戶的操作,,如敲擊鍵盤、單擊鼠標(biāo),、雙擊鼠標(biāo)等,。當(dāng)用戶在 AWT組件上進(jìn)行操作時,AWT事件處理系統(tǒng)就會產(chǎn)生一個相應(yīng)的事件對象,。事件對象描述的是用戶所執(zhí)行的操作,,用戶操作不同,事件對象的內(nèi)容也不同
事件的處理 由事件處理程序完成,。
事件處理模型 ,,指事件產(chǎn)生后事件對象的傳遞準(zhǔn)則。 JAVA的事件處理模型有兩種:JDK1.0和JDK1.1
• 事件類
• 事件監(jiān)聽器
• AWT 事件及其相應(yīng)的監(jiān)聽器接口
• 事件適配器
第三節(jié) AWT組件庫(2學(xué)時)
第四節(jié) Swing簡介(2學(xué)時)
• 簡介
• Swing 的類層次結(jié)構(gòu)
• Swing 組件的多樣化
• MVC(Model-View-Control) 體系結(jié)構(gòu)
• 可存取性支持
• 支持鍵盤操作
• 設(shè)置邊框
• 使用圖標(biāo)( Icon )
• Swing 程序結(jié)構(gòu)簡介
第五節(jié) Swing組件和容器(2學(xué)時)
• 組件的分類
• 使用 Swing 的基本規(guī)則
• 各種容器面板和組件
• 布局管理器
• 教學(xué)重點(diǎn)和難點(diǎn)
重點(diǎn):事件處理模型
Swing的新增特性
難點(diǎn):內(nèi)部類匿名類在 AWT中的應(yīng)用
Swing新的容器模型以及眾多的組件的使用方法
• 小結(jié)
本章介紹如何使用 Java組件設(shè)計(jì)圖形界面程序,,內(nèi)容包括:創(chuàng)建框架,,設(shè)置界面布局,,使用按鈕、文本編輯框,、復(fù)選框,、選擇框、列表框,、對話框等常用組件,,使用菜單及彈出式菜單,以及在組件上繪圖等,。
通過使用組件制作 Windows窗口,,掌握J(rèn)ava圖形界面的設(shè)計(jì)方式,理解委托事件監(jiān)聽程序?qū)κ录奶幚頇C(jī)制,。
第 7章:多線程機(jī)制(5學(xué)時)
• 教學(xué)基本要求
掌握線程的調(diào)度和控制方法,,清楚地理解多線程的互斥和同步的實(shí)現(xiàn)原理,以及多線程的應(yīng)用,。
• 要求學(xué)生掌握的基本概念,、理論,、原理
• 線程的概念( 0.5學(xué)時)
• 程序,、進(jìn)程和多任務(wù)
程序 ( program)是對數(shù)據(jù)描述與操作的代碼的集合,是應(yīng)用程序執(zhí)行的腳本,。
進(jìn)程 ( process)是程序的一次執(zhí)行過程,,是系統(tǒng)運(yùn)行程序的基本單位。
多任務(wù) ( multitask)是指在一個系統(tǒng)中可以同時運(yùn)行多個程序,,即有多個獨(dú)立運(yùn)行的任務(wù),,每個任務(wù)對應(yīng)一個進(jìn)程。
• 線程
線程與進(jìn)程相似,,是一段完成某個特定功能的代碼,,是程序中單個順序的流控制;但與進(jìn)程不同的是,,同類的多個線程是共享一塊內(nèi)存空間和一組系統(tǒng)資源,,而線程本身的數(shù)據(jù)通常只有微處理器的寄存器數(shù)據(jù),以及一個供程序執(zhí)行時使用的堆棧,。所以系統(tǒng)在產(chǎn)生一個線程,,或者在各個線程之間切換時,負(fù)擔(dān)要比進(jìn)程小的多,,正因如此,,線程被稱為輕負(fù)荷進(jìn)程( light-weight process)。一個進(jìn)程中可以包含多個線程,。
• 線程的生命周期與線程的狀態(tài)
第二節(jié) Runnable接口與Thread類(0.5學(xué)時)
• Runnable 接口
• Thread 類
• 兩種創(chuàng)建線程方法的比較
• 線程組
第三節(jié) 線程的控制與調(diào)度( 2學(xué)時)
• 線程的生命周期
1)創(chuàng)建狀態(tài)
2)可運(yùn)行狀態(tài)
3)運(yùn)行中狀態(tài)
4)阻塞狀態(tài)
5)死亡狀態(tài)
• 線程調(diào)度與優(yōu)先級
• 改變線程狀態(tài)
1)線程睡眠sleep( )
2)暫停線程 yield( )
3)連接線程join()
4)中斷線程interrupt()
第四節(jié) 線程的同步機(jī)制( 2學(xué)時)
前面所提到的線程都是獨(dú)立的,,而且異步執(zhí)行,,也就是說每個線程都包含了運(yùn)行時所需要的數(shù)據(jù)或方法,而不需要外部的資源或方法,,也不必關(guān)心其它線程的狀態(tài)或行為,。但是經(jīng)常有一些同時運(yùn)行的線程需要共享數(shù)據(jù),此時就需考慮其他線程的狀態(tài)和行為,,否則就不能保證程序的運(yùn)行結(jié)果的正確性,。
• 共享數(shù)據(jù)的線程“互斥“鎖定
1)線程間的數(shù)據(jù)共享
2)Synchronized
• 傳送數(shù)據(jù)的線程同步運(yùn)行
1)線程間傳送數(shù)據(jù)
2)synchronized與“互斥鎖”標(biāo)志
3)在線程之間通信
• 死鎖問題
Java技術(shù)即不能發(fā)現(xiàn)死鎖也不能避免死鎖。所以程序員編程時應(yīng)注意死鎖問題,,盡量避免,。避免死鎖的有效方法是:
1)線程因?yàn)槟硞€條件未滿足而受阻,不能讓其繼續(xù)占有資源
2)如果有多個對象需要互斥訪問,,應(yīng)確定線程獲得鎖的順序,,并保證整個程序以相反的順序釋放鎖
• 教學(xué)重點(diǎn)和難點(diǎn)
重點(diǎn): 多線程的調(diào)度和控制
難點(diǎn):多線程的互斥和同步
• 小結(jié)
Java的特點(diǎn)就是內(nèi)在支持多線程,它的所有類都是在多線程的思路下定義的,。
本章介紹了 Java的多線程機(jī)制,,包括線程概念、線程的生命周期,、線程的控制與調(diào)度,、線程同步等問題。
第 8章:輸入輸出流(5學(xué)時)
• 教學(xué)基本要求
掌握數(shù)據(jù)流的概念,。
掌握字符流,、字節(jié)流的操作。
掌握文件操作方法
• 要求學(xué)生掌握的基本概念,、理論,、原理
第一節(jié) 數(shù)據(jù)流的基本概念( 1學(xué)時)
• 理解數(shù)據(jù)流
• Java的標(biāo)準(zhǔn)數(shù)據(jù)流
標(biāo)準(zhǔn)輸入輸出指在字符方式下(如 DOS),程序與系統(tǒng)進(jìn)行交互的方式,,分為三種:
1)標(biāo)準(zhǔn)輸入studin,,對象是鍵盤。
2)標(biāo)準(zhǔn)輸出stdout,,對象是屏幕,。
3)標(biāo)準(zhǔn)錯誤輸出stderr,對象也是屏幕,。
• Java.io包中的數(shù)據(jù)流及文件類
1)字節(jié)流InputStream和OutputStream
2)字符流Reader和Writer
3)文件類File和RandomAccessFile
第二節(jié) 字節(jié)流初步( 1學(xué)時)
• InputStream 和OutputStream 類
• 文件字節(jié)輸入流類 FileInputStream
• 文件字節(jié)輸出流類 FileOutputStream
第三節(jié) 文件操作( 1學(xué)時)
• File類
• 文件過濾器
• 文件對話框
• 隨機(jī)文件操作
第四節(jié) 字符流( 1學(xué)時)
• Reader類和Writer類
• 字符文件流 FileReader和FileWriter類
• 字符緩沖流 BufferedReader和BufferedWriter類
第五節(jié) 字節(jié)流的高級應(yīng)用( 1學(xué)時)
• 管道流
• 數(shù)據(jù)流
• 對象流
• 教學(xué)重點(diǎn)和難點(diǎn)
重點(diǎn): 遇到實(shí)際問題時,,要根據(jù)需要正確使用各種輸入/輸出流,特別是對中文使用適當(dāng)?shù)淖址斎肓鳌?
難點(diǎn):處理字符流時,,其構(gòu)造方法的參數(shù)是一個字節(jié)流,。
對象串行化的概念
• 小結(jié)
所有程序都離不開輸入和輸出。在面向?qū)ο蟮恼Z言中,,輸入輸出都是通過數(shù)據(jù)流來實(shí)現(xiàn)的,。
本章介紹了 Java數(shù)據(jù)流的概念及應(yīng)用,,包括字節(jié)流、字符流及文件操作,。
第 9章:Applet應(yīng)用程序(4學(xué)時)
• 教學(xué)基本要求
掌握 Apple的編程技巧與運(yùn)行環(huán)境
掌握在 HTML文件中嵌入Applet程序的方法
• 要求學(xué)生掌握的基本概念,、理論、原理
第一節(jié) Applet特點(diǎn)(0.5學(xué)時)
• Applet 需要嵌入瀏覽器運(yùn)行
• Applet 的安全性
第二節(jié) Applet類(2學(xué)時)
Applet類是一個特殊的圖形類,,在java.applet包中,。Applet類是Panel的一個子類,因此它具備Panel的特性,,而與Panel不同的是,,Applet類是一個可以運(yùn)行的類,所以創(chuàng)建一個Applet子類就可以運(yùn)行一個Applet應(yīng)用程序,。
• Applet的創(chuàng)建
• Applet的生命周期
1)init( )
2)start( )
3)stop( )
4)destroy( )
• Applet的顯示與刷新
1)自動執(zhí)行paint方法繪圖
2)調(diào)用repaint方法重新繪圖
第三節(jié) HTML和Applet(0.5學(xué)時)
• 超文本標(biāo)記語言
• HTML中嵌入Applet
第四節(jié) Applet應(yīng)用(1學(xué)時)
• 標(biāo)識網(wǎng)絡(luò)上的資源
• 顯示圖像
• 播放聲音
• 教學(xué)重點(diǎn)和難點(diǎn)
重點(diǎn): Applet和 Application的區(qū)別
難點(diǎn): Applet的生命周期
• 小結(jié)
Java的應(yīng)用程序分為兩大類:獨(dú)立應(yīng)用程序和Applet應(yīng)用程序,。在前幾章中所設(shè)計(jì)的程序稱為獨(dú)立應(yīng)用程序,它們可以獨(dú)立運(yùn)行,。
Applet應(yīng)用程序,,又稱為小應(yīng)用程序,是嵌入到瀏覽器中的程序,。它不能獨(dú)立運(yùn)行,,必須嵌入到瀏覽器中運(yùn)行。正是由于Applet應(yīng)用程序的特點(diǎn),,使得Web頁面豐富,,具有動感,充滿活力,,從而也使Java能夠隨著Internet的發(fā)展而逐步成長壯大,成為當(dāng)今網(wǎng)絡(luò)編程的主流語言,。
本章介紹了 Applet應(yīng)用程序的運(yùn)行方式,、生命周期等特征,顯示圖形圖像與播放聲音的方法,,使用線程制作動態(tài)圖形,、顯示動態(tài)圖像。
第 10章:網(wǎng)絡(luò)通信(6學(xué)時)
• 教學(xué)基本要求
理解計(jì)算機(jī)網(wǎng)絡(luò)編程的概念
理解和掌握在 Java中用URL訪問網(wǎng)絡(luò)資源的方法
理解和掌握 Socket通信機(jī)制
• 要求學(xué)生掌握的基本概念,、理論,、原理
第一節(jié) 網(wǎng)絡(luò)運(yùn)行機(jī)制( 2學(xué)時)
Java用于網(wǎng)絡(luò)操作的功能包是java.net,它包含了多個訪問各種標(biāo)準(zhǔn)網(wǎng)絡(luò)協(xié)議的類庫,。Java的網(wǎng)絡(luò)訪問類庫分別支持以下三個層次的網(wǎng)絡(luò)運(yùn)行機(jī)制,。
• 使用 URL訪問網(wǎng)絡(luò)資源
Java支持URL訪問網(wǎng)絡(luò)資源的機(jī)制,通過URL標(biāo)識,,可以直接使用http,、file,、ftp等多種協(xié)議,以獲取遠(yuǎn)程計(jì)算機(jī)上的資源信息,,方便快捷地開發(fā)internet應(yīng)用程序,。
• Socket
Java提供對應(yīng)于Socket機(jī)制的一組類,按照用戶約定的通信協(xié)議,,實(shí)現(xiàn)網(wǎng)絡(luò)通信,。這種方式更適合開發(fā)特定功能的網(wǎng)絡(luò)通信程序。
• Datagram
第二節(jié) 使用 URL訪問網(wǎng)絡(luò)資源(2學(xué)時)
• 什么是 URL
• URL類
• 針對 HTTP協(xié)議的URLConnection類
• Socket通信機(jī)制(2學(xué)時)
• Socket通信機(jī)制的基本概念
• 實(shí)現(xiàn) Socket通信
• 教學(xué)重點(diǎn)和難點(diǎn)
重點(diǎn): URL,,Socket通信的實(shí)現(xiàn)
難點(diǎn):基于 TCP的C/S網(wǎng)絡(luò)編程
基于 UDP的C/S網(wǎng)絡(luò)編程
• 小結(jié)
Java是以網(wǎng)絡(luò)語言著稱的,,它的網(wǎng)絡(luò)功能十分完善,如獲取網(wǎng)絡(luò)上的各種資源,、與其他機(jī)器進(jìn)行實(shí)時通信,、進(jìn)行網(wǎng)絡(luò)文件傳輸?shù)取?
Java提供了多種網(wǎng)絡(luò)訪問類庫,能夠支持URL,、Socket,、Datagram等三個層次的網(wǎng)絡(luò)運(yùn)行機(jī)制。
本章介紹 URL和Socket的運(yùn)行機(jī)制與網(wǎng)絡(luò)功能的實(shí)現(xiàn),。
• 本課程和其他課程的關(guān)系
預(yù)修課程: C程序設(shè)計(jì),、計(jì)算機(jī)文化基礎(chǔ)。
• 教學(xué)時數(shù)分配
章次 | 各章標(biāo)題名稱 | 講授學(xué)時 | 實(shí)驗(yàn)學(xué)時 | 輔導(dǎo)學(xué)時 | 備注 |
Java語言概述 | 2 | 2 | |||
第 2章 | Java語言基礎(chǔ)知識 | 6 | 5 | ||
第 3章 | 面向?qū)ο蠹夹g(shù) | 8 | 5 | 2 | |
第 4章 | Java類和對象的高級特征 | 5 | 4 | 1 | |
第 5章 | 異常處理 | 3 | |||
第 6章 | 圖形界面設(shè)計(jì) | 10 | 8 | 2 | |
第 7章 | 多線程機(jī)制 | 5 | |||
第 8章 | 輸入輸出流 | 5 | 4 | ||
第 9章 | Applet應(yīng)用程序 | 4 | 6 | ||
第 10章 | 網(wǎng)絡(luò)通信 | 6 | 2 |
• 實(shí)驗(yàn)內(nèi)容與學(xué)時分配
序號 | 實(shí)驗(yàn)項(xiàng)目名稱 | 學(xué)時 | 實(shí)驗(yàn)類型(驗(yàn)證,、綜合,、設(shè)計(jì)) | 是否為開放實(shí)驗(yàn) | 備注 |
1 | 安裝與熟悉 Java開發(fā)工具 | 2 | 驗(yàn)證 | 否 | |
2 | Java語言基礎(chǔ) | 5 | 驗(yàn)證 | 否 | |
3 | 面向?qū)ο蠹夹g(shù) | 5 | 驗(yàn)證 | 否 | |
4 | Java類和對象的高級特征 | 4 | 驗(yàn)證 | 否 | |
5 | 圖形界面設(shè)計(jì) | 8 | 設(shè)計(jì) | 否 | |
6 | 輸入輸出流 | 4 | 驗(yàn)證 | 否 | |
7 | Applet應(yīng)用程序 | 6 | 綜合 | 否 | |
8 | 網(wǎng)絡(luò)通信 | 2 | 驗(yàn)證 | 否 |
• 教材及參考書
教材:
Java 2 程序設(shè)計(jì)實(shí)用教程,葉核亞,、陳立編著,,電子工業(yè)出版社
主要參考書:
1、Java編程思想,,Bruce Eckel著,陳昊鵬,,饒若楠等譯,機(jī)械工業(yè)出版社
2,、 Java 大學(xué)實(shí)用教程,,耿祥義編著,電子工業(yè)出版社
3,、Java 2參考大全(第五版),,Herbert Schildt著,周志彬譯,,電子工業(yè)出版社
• 主要教學(xué)方法和媒體要求
理論課程在多媒體教室中全程采用課件教學(xué),,上課時邊講邊演示。實(shí)踐課程部分以作業(yè)的形式布置給同學(xué)們,要求在上機(jī)課或課余時間完成,。另一部分采用案例式教學(xué),,由教師帶領(lǐng)學(xué)生們對實(shí)際問題進(jìn)行分析,進(jìn)而根據(jù)所學(xué)知識找到最佳的解決方法,。
• 推薦的教學(xué)網(wǎng)站和相關(guān)專業(yè)文獻(xiàn)網(wǎng)站
1,、 http://java.sun.com/ (英文)
2、 http://www-900.ibm.com/developerWorks/cn/
3,、 http://www.javaworld.com/ (英文)
4,、 http://www.theserverside.com/home/ (英文)
5、 http://www.javaresearch.org/
制 訂:計(jì)算機(jī)公修教研室
執(zhí)筆人:岳冬利
審定人:鄒健