版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
課時授課計劃
2016-2017學(xué)年第二學(xué)期第1周
2月21
授課日期
星期二
網(wǎng)絡(luò)15-1
班級
基本課題第1章Java概述
教學(xué)目的與要求:
了解Java的發(fā)展史和java語言的特點
掌握java虛擬機的工作原理
掌握java與C,C++的區(qū)別和聯(lián)系
教學(xué)重點:java虛擬機的工作原理
java與C,C++的區(qū)別和聯(lián)系
教學(xué)難點:java虛擬機的工作原理
作業(yè)及參考書:
Java2程序設(shè)計實用教程
教具:多媒體
課堂類型:講授
教學(xué)過程:見下頁
一、引入(約3min)
以“至今世界上已有2000-4000種程序設(shè)計語言,Java是有史以來第一個被工業(yè)界和學(xué)術(shù)界同時
認可的語言”為切入點引入新課。
二、教學(xué)進程設(shè)計
第1章Java和Web(約27min)
重點和難點:
■Java的發(fā)展史
■Java語言的特點
■Java虛擬機(難點)
■Java與C,C++的聯(lián)系(難點)
1.1計算機和萬維網(wǎng)
■萬維網(wǎng)(World-WideWebi11WWW):20世紀90年代
■WWW的雛形最初由瑞士高能物理研究中心實驗室的TimeBerners-Lee在1989年提出
■1990年10月正式命名為World-WideWeb
■WWW包括:瀏覽器和服務(wù)器
■當(dāng)時統(tǒng)計:服務(wù)器的個數(shù)每3~6個月翻一番
在經(jīng)歷了以大型機為代表的集中計算模式和以PC機為代表的分散計算模式之后,互聯(lián)網(wǎng)的出
現(xiàn)使得計算模式進入了網(wǎng)絡(luò)計算時代。
問題:大家想一想,在PC下用windows編寫的程序能夠不做修改就直接拿到UNIX系統(tǒng)上運
行嗎?
網(wǎng)絡(luò)計算模式的特點
■計算機是異構(gòu)的
■代碼可以通過網(wǎng)絡(luò)在各種計算機上進行遷移
1.2程序設(shè)計語言和Java
一、程序設(shè)計語言
■Java是一種徹底的面向?qū)ο笸ㄓ贸绦蛟O(shè)計語言
■程序設(shè)計語言分類:
■機器語言:不同的CPU有它自己的機器語言
■匯編語言
■高級語言
高級語言
■FORTRAN:1950年末
■COBOL:1960年初
■BASIC
■Pascal
■C:1970年AT&T貝爾實驗室開發(fā)
■C++:1980年初
至今世界上己有2000-4(X)0種程序設(shè)計語言
Java吸取了50年來程序設(shè)計語言研究的各種新思想以及正反經(jīng)驗,形成了一種好的程序設(shè)計風(fēng)
格。
■Java是有史以來第一個被工業(yè)界和學(xué)術(shù)界同時認可的語言
■微軟公司總裁比爾蓋茨先生在經(jīng)過研究后認為“java語言是長時間以來最卓越的程序設(shè)計語言”。
二、java語言的產(chǎn)生
“有心栽花花不成,無心插柳柳成蔭”
■Sun公司以經(jīng)營工作站聞名
■Sun成立了由JamesGosling負責(zé)的Green小組開發(fā)消費產(chǎn)品,減輕來自PC的壓力
■語言的選擇,設(shè)計一種以C++為基礎(chǔ)的語言
■1993年WWW由字符界面發(fā)展到圖形界面
■1994年BillJoe將Java用在因特網(wǎng)的開發(fā)中,做出免費使用Java的決定
三、Java的命名(約30min)
■Java原名叫Oak(橡樹)
■java是印尼的一個小島,盛產(chǎn)咖啡,而程序員往往喜歡喝咖啡,因此取名為java語言??磥?,目
前java這杯咖啡已經(jīng)飄香在世界各地。
四、Java的特點
■Applet
■Application
(1)面向?qū)ο?/p>
封裝性、多態(tài)性、繼承性、動態(tài)鏈接
(2)工作原理
WriteOnce,RunAnywhere
(3)安全問題
Java是在網(wǎng)絡(luò)環(huán)境下使用的語言
一個安全的網(wǎng)絡(luò)至少要防止以下幾種破壞的可能性:
■毀滅系統(tǒng)資源
■消耗系統(tǒng)資源
■挖掘系統(tǒng)或個人機密
■騷擾正常工作的進行
(4)多線程
■Java提供現(xiàn)成的類Thread,只要繼承這個類就可以編寫多線程的程序。
1.3Java與C,C++(約35min)
Java=
“CH,,_“復(fù)雜性和奇異性,,+“安全性和可移植性,,
1.全局變量
■在類中定義公共、靜態(tài)變量來實現(xiàn)一個全局變量
classGlobarVariable{
publicstaticglobal_var;
2、指針
■Java對指針進行了完全的控制,java沒有顯示的指針類型,所有引用都通過使用隱式引用,而不
是通過指針來完成的
3、數(shù)組
■java中的數(shù)組是通過類來實現(xiàn)的
■數(shù)組的邊界要嚴格檢查
對象數(shù)組:
MyObjectarrayOfObj[l=newMyObject[10]
把實際的MyObject對象添加到數(shù)組中
for(inti;i<arrayOfObj.length;i++){
arrayOfObj[i]=newMyObject();
)
4、字符串
■C中字符串是以一個空字符(\0)結(jié)尾的字符數(shù)組
■Java中字符串是個封裝的對象
5、內(nèi)存管理
■在C語言中,程序員使用庫函數(shù)malloc()和free。來分配和釋放內(nèi)存,C++語言中則是運算符new
和delete。再次釋放已經(jīng)釋放的內(nèi)存塊或者釋放未被分配的內(nèi)存塊,會造成系統(tǒng)的崩潰,而忘記釋放
不再使用的內(nèi)存塊也會逐漸耗盡系統(tǒng)資源。
■在java中,所有的數(shù)據(jù)結(jié)構(gòu)都是對象,通過運算符new分配內(nèi)存并得到對象的使用權(quán)。無用內(nèi)存
回收機制(運行時間的垃圾收集器)保證了系統(tǒng)資源的完整,避免了內(nèi)存管理不周而引起的系統(tǒng)崩
潰。
6、數(shù)據(jù)類型
■在C/C++語言中,不同的平臺上,編譯器對簡單的數(shù)據(jù)類型如int、float等分別分配不同的字節(jié)數(shù)。
例如:int在IBMPC上為16位,在VAX-11上就為32位,導(dǎo)致了代碼數(shù)據(jù)的不可移植。
■在java中,對數(shù)據(jù)類型的位數(shù)分配總是固定的,而不管是在任何的計算機平臺上。因此就保證了
java數(shù)據(jù)的平臺無關(guān)性和可移植性。
7、運算符
■優(yōu)先級和結(jié)合率作用與C一樣
■New結(jié)合型比點符號高
■Java中沒有重載運算符
8、控制流
■Java中返回布爾值
■C中返回整數(shù)值
■Java中不支持goto語句,同過例外處理
9、頭文件
■在C/C++語言中使用頭文件聲明類的原型和全局變量及庫函數(shù)等,在大的系統(tǒng)中,維護這些頭文
件是非常困難的。
■java不支持頭文件,類成員的類型和訪問權(quán)限都封裝在一個類中,運行時系統(tǒng)對訪問進行控制,防
止非法的訪問。同時,java中用import語句與其它類進行通信,以便訪問其它類的對象。
10、參數(shù)
■Java不支持函數(shù)的變長參數(shù)表機制,所有方法必須有特定的參數(shù)個數(shù)
■Java中argv[0]對應(yīng)C中的argvfl]
三、小結(jié)(約2min)
■計算機和萬維網(wǎng)
■程序設(shè)計語言和Java
■Java與C-C++
四、作業(yè)(約3min)
課后習(xí)題1、2
課時授課計劃
2016-2017學(xué)年第2學(xué)期第1周
月夕/月3/月0^^
月月
授課日期
/^期期
期期/s期
網(wǎng)絡(luò)15-1
班級
基本課題第1章Java概述
教學(xué)目的與要求:
掌握Java的應(yīng)用程序和運行方式
掌握java的開發(fā)環(huán)境
教學(xué)重點:Java的應(yīng)用程序和運行方式
Java的開發(fā)環(huán)境
教學(xué)難點:Java的應(yīng)用程序和運行方式
作業(yè)及參考書
Java2程序設(shè)計實用教程
教具:多媒體
課堂類型:講授
教學(xué)過程:見下頁
一、引入(約3min)
以“至今世界上已有2000-4000種程序設(shè)計語言,Java是有史以來第一個被工業(yè)界和學(xué)術(shù)界同時
認可的語言”為切入點引入新課。
二、教學(xué)進程設(shè)計
1.2Java應(yīng)用程序及其運行方式(約37min)
1.2.1Application和Applet程序
1.2.2Java的體系結(jié)構(gòu)
1.2.1Application和Applet程序
1.Application
2.Applet
■<HTML>
■<HEAD>
■<TITLE>my</TITLE>
■</HEAD>
■<BODY>
■<appletcode=MFirstApplet.classnwidth=300height=190>
■</applet>
■</BODY>
■</HTML>
Drawing方法小結(jié):
■drawRect(x,y,w,h)
■drawString(<4text,,,x,y)
小應(yīng)用與應(yīng)用程序
1>Applet
■不同點:小應(yīng)用沒有main()方法的引導(dǎo),必須嵌入到HTML文件中,用支持Java的瀏覽器來運行
■Java對小應(yīng)用施加了限制
java應(yīng)用程序結(jié)構(gòu)
小應(yīng)用的結(jié)構(gòu)
1.2.2Java的體系結(jié)構(gòu)
1.3Java開發(fā)運行環(huán)境
■1.3.1JDK的安裝與設(shè)置
■1.3.2運行Java程序
■1.3.3JCreator簡介
1.3.1JDK的安裝與設(shè)置(約30min)
■安裝機器要求
■硬件:CPUPII以上,64MB內(nèi)存,100MB硬盤空間。
■軟件:Windows98/NT/2000/XP,IE5.0
■程序清單
■JDK
■幫助文檔
■安裝JDK
■設(shè)置環(huán)境變量
■JAVA_HOME
■CLASSPATH
■PATH
■安裝JDK幫助文檔
設(shè)置環(huán)境變量
■JAVA_H0ME=C:\j2sdkl.4.2(安裝路徑)
■CLASSPATH=C:\j2sdkl,4.2\lib\dt.jar;C:\j2sdkl,4.2\bin;C:\j2sdkl.4.2\lib\tools.jar;.;
■PATH=C:\j2sdkl,4.2\bin;
安裝sdk
JDK目錄結(jié)構(gòu)
以j2sdkl.4.2版本為例,其目錄結(jié)構(gòu)如下描述。
JDKWbinW包括編譯器、解釋器和一些基本工具。
JDKWdemoW包括一些簡單的示例。
JDKWincludeW是Win32子目錄,包括本地方法文件。
JDK\\jre\\是Java程序運行環(huán)境的根目錄。
JDKWjreWbin包括平臺運行時的工具和類庫的可執(zhí)行文件和動態(tài)鏈接庫文件。
JDK\\jre\\lib包括Java運行環(huán)境的代碼庫,默認安裝文件等。
JDKWlib包括類庫文件。
JDK\src.zip源代碼壓縮文件。
java'bin的目錄下包含義下主要文件:
javac:Java編譯器,用來將java程序編譯成
Bytecode
java:Java解釋器,執(zhí)行已經(jīng)轉(zhuǎn)換成Bytecode的
java應(yīng)用程序.
jdb:Java調(diào)試器,用來調(diào)試java程序
javap:反編譯,將類文件還原回方法和變量.
javadoc:文檔生成器,創(chuàng)建HTML文件
叩pletviewer:Java解釋器,用來解釋已經(jīng)轉(zhuǎn)換成
Bytecode的java小應(yīng)用程序.
安裝sdk
1.3.2運行Java程序(約25min)
■Java程序運行流程
1.3.2運行Java程序
■JDK提供的編譯與運行命令
■編譯
■運行Application應(yīng)用程序
■運行Applet應(yīng)用程序
1.3.3JCreator簡介
JCreator提供Java程序的編輯、編譯和運行的集成開發(fā)環(huán)境。
三、小結(jié)(約2min)
■計算機和萬維網(wǎng)
■程序設(shè)計語言和Java
■Java與C.C++
四、作業(yè)(約3min)
實驗1熟悉Java程序的編輯、編譯和運行過程
■編輯、編譯、運行以下程序,說出程序的功能。改變變量n的初值,觀察運行結(jié)果有何變化。
課時授課計劃
2016-2017學(xué)年第2學(xué)期第2周
月夕/月3/月0^^
月日月
授課日期
/^期期
期期/s期
網(wǎng)絡(luò)15-1
班級
基本課題第2章Java語言基礎(chǔ)
教學(xué)目的與要求:
掌握標識符和關(guān)鍵字的定義
了解java的基本數(shù)據(jù)類型
了解常量、變量及塊的定義
教學(xué)重點:java的基本數(shù)據(jù)類型
常量、變量及塊的定義
教學(xué)難點:java的基本數(shù)據(jù)類型
常量、變量及塊的定義
作業(yè)及參考書:
Java2程序設(shè)計實用教程
教具:多媒體
課堂類型:講授
教學(xué)過程:見下頁
(―)引入(約3min)
以“任何程序設(shè)計語言,都是由語言規(guī)范和一系列開發(fā)庫組成的?!睘榍腥朦c引入新課內(nèi)容。
(-)教學(xué)進程設(shè)計
第2章Java語言基礎(chǔ)(約30min)
2.1標識符和關(guān)鍵字
一、標識符組成:
■字母
■數(shù)字
■下劃線(_)
■美元($)
注:第一個字符必須為字母、下劃線或美元符號
二、保留字
abstract,break,byte,boolean,catch,case,class,char,continue,default,double,do,else,extends,
false,final,float,for,finally,if,import,implements,int,interface,instanceof,long,length,
native,new,null,package,private,protected,public,return,switch,synchronized,short,static,
super,try,true,this,throw,throws,threadsafe,transient,void,while。
判斷下列字符是否是正確的標識符:
注意:
■Java區(qū)分大小寫字母
■\u03co是4的Unicode字符,可以用作標識符
三、Smalltalk命名規(guī)則:
(1)每個名字可以由幾個單詞連接而成
(2)對于類名,每個單詞的開頭字母大寫
(3)方法名和變量名,第一個字母不大寫
(4)常量應(yīng)該用全部大寫的標識符定義
(5)包名全部小寫
Java采用16位的Unicode字符集作為字符的內(nèi)部表示形式
■每個字符用16位二進制表示
■支持65536個不同字符
■其中21000個用于漢、日、朝、希臘、羅馬、阿拉伯?dāng)?shù)學(xué)符號等
■前256個值包含ASCII碼中的表示
2.2基本數(shù)據(jù)類型(約27min)
2.2.1整數(shù)類型
2.2.2浮點數(shù)類型
2.2.3布爾類型
■布爾型數(shù)據(jù)只有兩個值true和false,且它們不對應(yīng)于任何整數(shù)值。布爾型變量的定義如:
booleanb=true;
2.2.4字符類型
2.3常量
2.3.1布爾常量
■OTruefalse
2.3.2整型常量
?十進制整數(shù)
如123,—456,0
?八進制整數(shù):以0開頭
■0123表示十進制數(shù)是:
■—011表示十進制數(shù)是:
■O十六進制整數(shù):以O(shè)x或0X開頭
■0x123表示十進制數(shù)是:
■一0X12表示十進制數(shù)是:
■無論采用什么進制,在輸出到控制分時、系統(tǒng)都會自動轉(zhuǎn)化為十進制。
■Long型:在數(shù)值后面多了一個“L”,不能省略。
2.3.3字符常量
■字符常量:用一對單引號括起來的單個字符
■范圍:
■直接用拉丁字母表示
■轉(zhuǎn)義字符
■要表示字符對應(yīng)的八進制或Unicode碼
轉(zhuǎn)義字符
2.3.4字符串常量(約35min)
■用直雙引號括起來的一串字符
■標志字符串開始和結(jié)束的直雙引號必須在源代碼的同一行上
■連接運算符(+)
■“IloveChina!"+11Howdoyoudo?”的結(jié)果是:“IloveChina!Howdoyoudo?”
2.3.5浮點常量
O十進制數(shù)形式
由數(shù)字和小數(shù)點組成,且必須有小數(shù)點,如0.123,1.23,123.0
?科學(xué)計數(shù)法形式
如:123e3或123E3,其中e或E之前必須有數(shù)字,且e或E后面的指數(shù)必須為整數(shù)。
?float型的值,必須在數(shù)字后加f或F,如1.23f。
?double型的值,可在數(shù)字后加d或D,如:
doublex=22.2D;
?不帶任何后綴的浮點數(shù)值為double型
■常量:用保留字final來實現(xiàn)
finaltypeSpecifiervarName=value[,varName[=value]...];
如:finalintNUM=100;
2.4變量
2.4.1分類
變量聲明的格式:
■[修飾符]類型標識符;
2.4.2注意的問題
■增加byte的理由:不同計算機對于多字節(jié)數(shù)據(jù)的存儲方式是不同的
■Java中沒有無符號整數(shù),且規(guī)定了整型和浮點型數(shù)據(jù)所占的內(nèi)存字節(jié)數(shù),確保了安全性、魯棒性和
平臺無關(guān)性
■Java中的字符型數(shù)據(jù)是16位無符號型數(shù)據(jù),它表示Unicode集
字符型數(shù)據(jù)可以轉(zhuǎn)換為整型數(shù)來操作:
2.5表達式,語句和塊
基本語句:
■聲明語句inti;
■表達式語句A+=B;
塊:用{}括起來的語句組成塊
變量的作用域:從它的定義開始到最小的包含其定義塊的結(jié)束
classExpress{
publicstaticvoidmain(Stringargs[]){
inta=4;
a+=4;
intb;
b=a+2;
System.out.println(a+
(三)小結(jié)(約3min)
.標識符和關(guān)鍵字
2..基本數(shù)據(jù)類型
3.常量
4.變量
5.表達式,語句和塊
(四)作業(yè)(約2min)
課后習(xí)題第1題。
課時授課計劃
2016-2017學(xué)年第2學(xué)期第3周
月上/月夕/月3/月0^^
月
授課日期
/^期期
期期/s期
網(wǎng)絡(luò)15-1
班級
基本課題運算符、流控制語句
教學(xué)目的與要求:
掌握運算符的使用
了解java流控制語句的語法
教學(xué)重點:運算符的使用和java流控制語句的語法
教學(xué)難點:類型轉(zhuǎn)換
作業(yè)及參考書:
Java2程序設(shè)計實用教程
教具:多媒體
課堂類型:講授
教學(xué)過程:見下頁
(一)引入(約3min)
以“回顧上節(jié)課的語法基礎(chǔ)”為切入點引入新課內(nèi)容。
(-)教學(xué)進程設(shè)計
2.6運算符(約37min)
2.6.1賦值運算符
finalinlA=29;
2.6.2賦值語句
1、基本數(shù)據(jù)聲明和賦值
2、多個數(shù)值數(shù)據(jù)在內(nèi)存分配
2.6.3算術(shù)運算符
1、雙目運算符
注意:
1、運算符作用于整型操作數(shù)時,任一操作數(shù)為long,結(jié)果為long,否則為整型。
2L+5=7L;
3L*4=12L:
5/2=2;
2、運算符作用于浮點數(shù)時,任一操作數(shù)為雙精度時,結(jié)果也是雙精度,否則為單精度
3、取模運算即可以用于整型數(shù),也可以用于浮點型數(shù)
37.2%10=7.2
2.6.4關(guān)系運算符
2.6.5邏輯運算符
intx=8,y=5;
booleanb=x<y&&x++==y--;
intx=8,y=5;
booleanb=x<y&x++==y--;
2.6.6位運算符
例:用“異或”加密解密
2.6.7條件賦值運算
■三目運算符a=(Test?b:c);
■測試Test
■Test=true,貝!|a=b;否貝!]a=c
4.6.8廣義賦值運算符
■變量op=表達式;
■變量=變量op表達式;
例:A+=B;
A=A+B;
2.6.9對象運算符(約30min)
■instanceof用來測試一個對象是否屬于某個指定類或其子類的實例。
■返回true或false
roster[0]instanceofUndergraduateStudent;
event.getSource()instanceofButton;
booleanbool=MyObjectinstanceofTextField;
2.7運算符的優(yōu)先級
2.8類型轉(zhuǎn)換
2.8.1自動類型轉(zhuǎn)換
■小定義域類型的值自動轉(zhuǎn)換到大定義域類型的值
2.8.2強制轉(zhuǎn)換
■大定義域轉(zhuǎn)換到小定義域類型
■在定義域不直接可比的類型之間轉(zhuǎn)換
■(數(shù)據(jù)類型)變量名或表達式;
2.9注釋
插入方式:
■以//開頭,直到此行末尾,稱單行注釋。
■以/*開頭,直到*/結(jié)束,稱多行注釋。
■以/**開頭,以*/結(jié)束
2.10流控制語句
2.10.1if-else語句
■if(布爾表達式)語句1
■if(布爾表達式)
語句I;
else
語句2;
2.10.2switch語句
語法格式:
■switch(expression))
casevalue1:statement1;
break;
casevalue2:statement?;
break;
casevalueN:statemendN;
break;
[default:defaultstatement;]
)
2.10.3循環(huán)語句
1、for循環(huán)
語法格式:
for(initialization;termination;iteration)
body;
)
例:冒泡排序法
2.While循環(huán)語句(約25min)
語法格式:
[initialization]
while(termination)(
body;
「iteration;]
}
3、do?while語句
[initialization]
do{
body;
[iteration;]
}while(termination);
4.標號
■標號:標識符,用來給某個程序塊命名
■格式:
label:程序塊;
例:intsum=0;
loop:for(inti=0;i<10;i++){
sum+=i;
)
2.10.4轉(zhuǎn)移語句
1、break語句
終止當(dāng)前循環(huán)體語句,使程序轉(zhuǎn)移到下一個語句
例:
if(check(i)){
for(intj=O;j<l0;j++){
if(j>i)break;
Break停止更外層的塊
2.continue語句
■跳過循環(huán)體中continue語句以后剩下的部分,再從循環(huán)體頭開始
■格式:
continue;
也可以用continue跳轉(zhuǎn)到指明的外層循環(huán)中,這時的格式為
continueouterLable;
例:檢查intArray中是否有1~6數(shù)字
3、return語句
■return語句從當(dāng)前方法中退出,返回到調(diào)用該方法的語句處,并從緊跟該語句的下一條語句繼續(xù)程
序的執(zhí)行。
■返回語句有兩種格式:
returnexpression;
return;
注:return語句通常用在一個方法體的最后,否則會產(chǎn)生編譯錯誤,除非用在if-else語句中
(三)小結(jié)(約3min)
1.運算符
2.運算符優(yōu)先級
3.類型轉(zhuǎn)換
4.注釋
5.流控制語句
(四)作業(yè)
課后習(xí)題第8、12題。(約2min)
課時授課計劃
2016-2017學(xué)年第2學(xué)期第3周
月夕/
月H.X月3/月月0^^
授課日期
/^期
期期/s期期
網(wǎng)絡(luò)15-1
班級
基本課題數(shù)組的定義和使用
教學(xué)目的與要求:
掌握基本數(shù)據(jù)類型的數(shù)組的定義和使用方法
掌握對象數(shù)組的定義和使用方法
了解把數(shù)組傳送給方法的注意事項
教學(xué)重點:
基本數(shù)據(jù)類型的數(shù)組和對象數(shù)組的定義和使用方法
教學(xué)難點:
對象數(shù)組的定義和使用方法
作業(yè)及參考書:
Java2程序設(shè)計實用教程
教具:多媒體
課堂類型:講授
教學(xué)過程:見下頁
一、引入(約3min)
以“許多數(shù)據(jù)結(jié)構(gòu)是編程中不可缺少的組成部分。Java把它們封裝成專門的數(shù)據(jù)類供用戶使用。
本章將一一加以介紹”為切入點引入新課。
二、教學(xué)進程設(shè)計
第6章數(shù)組和字符串(約27min)
6.1數(shù)組
6.1.1基本數(shù)據(jù)類型的數(shù)組
1、一維數(shù)組的定義
typearrayName[];
type|]arrayName;
分配內(nèi)存空間
1)類型口數(shù)組名[]=new類型[數(shù)組長度];
2)類型口數(shù)組名=new類型[數(shù)組長度];
3)類型口數(shù)組名;〃類型數(shù)組名[];
數(shù)組名=new類型[數(shù)組長度]:
2.一維數(shù)組的引用
■arrayName[index|
注:下標從零開始,直到數(shù)組長度-1
例:
publicclassindex{
publicstaticvoidmain(Stringargs[]){
inti;
inl[]A=newint[5];
for(i=0;i<5;i++)
A[i]=i;
for(i=A.length-l;i>=0;i-)
System.out.println("A["+i+"]="+A[i]);
)
)
3.一維數(shù)組的初始化
在定義數(shù)組的同時進行初始化
intA[]={0,1,2,3,4}
charspring[]寸春?眠?不;覺,曉,處,處,間,啼,鳥};
arraycopy()方法
char[]writer=newchar[3];
System.arraycopy(spring,2,writer,0,3);
6.1.2對象數(shù)組(約30min)
classRabbit{
finalcharEYECOLOR='R';
finalcharFURCOLOR=,W';
Stringname;
intage;
charsex;
intspeed;
)
定義方法
publicStringgelName。;缺省值:未給定
publicintgetAge();缺省值:0
publicchargetSex();缺省值:U(F、M>U)
publicintgetSpeed。;缺省值:0
publicvoidsetName(Stringname);
publicvoidsetAge(intage);
publicvoidsetSex(charsex);
publicvoidsetSpeed(intspeed);
定義tuzi對象
Rabbittuzi;
lozi=newRabbit();
tozi.setName("Ms.bunnyn);
tozi.setAge(3);
tozi.setSex(F);
tozi.setSpeed(lOO);
System.out.println(',Name:',+tozi.getName());
System.out.println(nAge:n4-tozi.getAge());
System.out.printlnC'Sexz^+tozi.getSexO);
System.out.println("Speed:M+tozi.getSpeed());
創(chuàng)建一個對象數(shù)組:
■Rabbit[]rabbit;
■Rabbit=newRabbit[10|;
給對象賦值
rabbit[O].setName("Ms.bunnyu);
rabbit[0].setAge(3);
rabbit[O].setSex('F');
rabbit[OJ.setSpeed(l00);
1.計算rabbit對象數(shù)組中兔子的平均年齡(約35min)
floatsum=O,averageAge;
for(inti=O;i<rabbit.length;i++){
sum+=rabbit[i].getAge();
averageAge=sum/(float)rabbit.length;
2、顯示輸出年齡最小和年齡最大的兔子的年齡和名字
StringnameOfYoungest,nameOfOldest;
intmin,max,age;
nameOfYoungest=nameOfOldest=rabbit[0].getName();
min=max=rabbit[O].getAge();
for(inti=l;i<rabbit.length;i+4-){
age=rabbit[i].getAge();
if(age<min){
min=age;
nameOfYoungest=rabbit[i].getName();
)
elseif(age>max){
max=age;
nameOfOldest=rabbit[i].getName();)
)
System.out.println(',OIdest:,'+nameOfOldest+,'is',+max+"yearsold.”);
System.out.println("Youngest:',+nameOfYoungest+,'is"+min4-,'yearsold.");
利用索引查找
使用rabbit對象的變量
■Rabbityoungest,oldest;
■youngest=oldest=rabbit[OJ;
■for(inti=1;i<rabbit.length;i++){
■if(rabbit[i].getAge()<youngest.getAge()){
■youngest=rabbit[i];
■)
■elseif(rabbit[il.getAge()>oldest.getAge()){
■oldest=rabbit[i];
■}}
■System.out.println(,'Oldest:,,+oldest.getName()
+"is”+oklest.getAgeO+"yearsold.");
■System.out.println("Youngest:n4-youngest.getName()
4-"is"+youngest.getAge()+',yearsold.*1);
3.刪除對象數(shù)組中的對象操作
方法:
■把要刪除的對象數(shù)組中的元素置上null
■先把要刪除的對象數(shù)組的那個對象換到數(shù)組最末位置上,然后把最末位置上置位null
6.2把數(shù)組傳送給方法
■publicintsearchMax(float[]number){
■intIdxOfMax=0;
■for(inti=l;i<number.length;i++){
■if(number[i]>number[IdxOIMax]){
■IdxOfMax=i
■returnIdxOfMax;)
調(diào)用該方法
■float[]arrl,arr2;
■intmax1=searchMax(arr1);
■intmax2=searchMax(arr2);
■System.out.printlnC^axvalueinArrayOneis");
■System.out.println(arrl[maxl]+natposition"+max1);
■System.out.println(HMaxvalueinArrayTwoisM);
■System.out.println(arr2[max2]4-,'atposition"+max2);
規(guī)則:
■當(dāng)一個數(shù)組被傳送到一個方法時,僅僅是它的引用被傳送,而該數(shù)組的拷貝在這個方法中并不創(chuàng)
建。
三、小結(jié)(約3min)
1.基本數(shù)據(jù)類型的數(shù)組
2.對象數(shù)組
3.把數(shù)組傳送給方法
四、作業(yè)(約2min)
上機練習(xí):計算輸入一行文本中的元音字母的個數(shù)。
課時授課計劃
2016-2017學(xué)年第2學(xué)期第4周
月夕/
月H.X月3/月月0^^
授課日期
/^期
期期/s期期
網(wǎng)絡(luò)15-1
班級
基本課題多維數(shù)組、字符串
教學(xué)目的與要求:
掌握this關(guān)鍵字的使用
掌握多維數(shù)組的定義和使用方法
掌握不變字符串String類的使用
教學(xué)重點:
this關(guān)鍵字的使用、多維數(shù)組的定義和使用、String類的使用
教學(xué)難點:
this和多維數(shù)組的定義及使用方法
作業(yè)及參考書:
Java2程序設(shè)計實用教程
教具:多媒體
課堂類型:講授
教學(xué)過程:見下頁
一、引入(約3min)
以“回顧一維數(shù)組的定義及使用方法,本節(jié)介紹java中多維數(shù)組的定義及引用”為切入點引入
新課。
二、教學(xué)進程設(shè)計
2.3this引用(約30min)
2.3.1this引用的第一種場合
目的:解決名字沖突問題
例6-4標識符speed引用了什么?
2.3.2this引用的第二種場合
把當(dāng)前對象的名字(引用)作為參數(shù)傳送給它調(diào)用的另一個對象的方法
2.3.3this引用的第三種場合
從相同類的一個構(gòu)造方法調(diào)用另一個構(gòu)造方法
注意:
1.this引用專門用來指明當(dāng)前對象的成員變量或當(dāng)前對象的方法
2.使用this可以提高程序的可讀性
3.this引用只對實例變量(對象的成員變量),不能對局部變量。
2.4多維數(shù)組
2.4.1聲明和創(chuàng)建二維數(shù)組
(1)聲明
typearrayName[][];
type||[JarrayName;
(2)創(chuàng)建
arrayName=newtype[arrayLength1][arrayLength2];
多維數(shù)組分配內(nèi)存空間的方法
1、直接分配
multiplicationTable=newint[9][9];
2.4.2二維數(shù)組的引用
arrayName[indexl][index2]
例:multiplicationTable[2][3];
2.4.3二維數(shù)組的初始化
1、直接對每個元素進行賦值
int[][]mulliplicationTable=newint[9][9];
2、在定義數(shù)組的同時進行初始化
int[JlJmultiplicationTable={{1,2,3,4,5,6,7,8,9},
{2,4,6,8,10,12,14,16,18},
{9,18,27,36,45,54,63,72,81}};
Java語言中,由于把二維數(shù)組看作是數(shù)組的數(shù)組,數(shù)組空間不是連續(xù)分配的,所以不要求二維數(shù)組
每一維的大小相同。
注意:
創(chuàng)建數(shù)組時,數(shù)組的最前面的一維或兒維必須指定元素個數(shù),只有后面的方括號中可以不指定個數(shù)
classMyArray{
publicstaticvoidmain(Stringargs[]){
inta[][]=newint[4][];
intj=0;
for(j=0;j<4;j++){
a[j]=newint[j+l];
)
for(inti=0;i<4;i++){
for(j=0;j<a[i].length;j4-+){
a[i][j]=i+j;
System.out.print(a[i][j]+M\t");
)
System.out.println("\n");
2.5不變字符串:String類(約27min)
字符的兩種表示形式
String類的特點:
1、在程序中可以不用new運算符,java編譯器也能從String類生成一個對象
■StringC="ILoveChina^^;
■StringC=newString("ILoveChina^^);
■StringC=newString();
2、可以把字符數(shù)組作為參數(shù)生成一個串
■char[]charray={,c,;h,;i',,n,;e,,'s7e,};
■Strings=newString(charray);
3、可以把字符串的一部分作為參數(shù)
■char[]charray={;
■Strings=newString(charray,2,3);
4、JDK1.1后還允許用字符串?dāng)?shù)組的方式來生成字符串對象
String[]s=newString[]{"chinese'V'english"};
String[]s={"Chinese”Jenglish"};
5、當(dāng)給定一個字節(jié)數(shù)組時,String類提供了初始化字符串的構(gòu)造方法
String(byteascii[]);
String(byteascii[],intstartindex,intnumChars);
2.5.1字符串長度
■publicinilength。:返回字符串的字符個數(shù)
2.5.2查找字符串
1、publiccharcharAt(intindex):返回字符串中index位置上的字符,其中index值的范圍是
O~length-1
2、一次提取多個字符
publicvoidgetChars(intsrcbegin,intend,charbuf[],intdstbegin)
■srcbegin為要提取的第一個字符在源串中的位置
■end為要提取的最后一個字符在源串中的位置
■字符數(shù)組buf[]存放目的字符串
■ds由egin為提取的字符串在目的串中的起始位置
3.toCharArray()
■提取整個字符串放入字符數(shù)組arr[]
■使用此方法前要先建立字符數(shù)組arr[]
4.返回字符在字符串中的位置
■publicintindexOf(intch)
publiclastIndexOf(intch)
返回字符ch在字符串中出現(xiàn)的第一個和最后一個的位置
publicintindexOf(Stringstr)
publicintlastIndexOf(Stringstr)
返回子串str中第一個字符在字符串中出現(xiàn)的第一個和最后一個的位置
publicintindexOf(intch,inifromlndex)
publiclastIndexOf(inch,intfromlndex)
返回字符ch在字符串中位置fromlndex以后出現(xiàn)的第一個和最后一個的位置
publicintindexOf(Stringstr,intfromlndex)
publicintlastIndexOf(Stringstr,intfromlndex)
返回子串str中的第一個字符在字符串中位置fromlndex后出現(xiàn)的第一個和最后一個的位置。
2.5.3字符串比較(約35min)
equals。與==的比較
equals。比較字符串對象中的字符
==比較兩個對象的引用,看他們是否引用相同的實例
publicinicompareTo(SlringanotherString)
比較兩個字符串,返回整型值
比較字符串的大小用字典順序
被比較字符串對象小于、等于或大于anotherString,則返回小于、等于或大于0
例:二分查找
■在一個排好序的字符串?dāng)?shù)組中查找字符串S
2.5.4子串
■publicStringsubString(intbeginlndex);
publicStringsubString(intbeginlndex,intendindex);
用來得到字符串中指定范圍內(nèi)的子串。
publicStringconcat(Stringstr);
用來將當(dāng)前字符串對象與給定字符串str連接起來。
2.5.5修改字符串
publicStringtoLowerCase();
把串中所有的字符變成小寫。
publicStringtoUpperCase();
把串中所有的字符變成大寫。
publicStringreplace(charoldChar,charnewChar);
用來把串中出現(xiàn)的所有特定字符替換成指定字符以生成新串。
三、小結(jié)(約3min)
1.this引用
2.多維數(shù)組
3.不變字符串:String類
四、作業(yè)(約2min)
上機練習(xí)1:構(gòu)造一個9行9列的乘法表
上機練習(xí)2:輸出楊輝三角
課時授課計劃
2016-2017學(xué)年第2學(xué)期第5周
月夕/
月H.X月3/月月0^^
授課日期
/^期
期期/s期期
網(wǎng)絡(luò)15-1
班級
基本課題子類、繼承和多態(tài)
教學(xué)目的與要求:
掌握super的使用
掌握子類的定義和繼承的有關(guān)方法
掌握方法和構(gòu)造的方法的重載
教學(xué)重點:
s叩er的使用,方法和構(gòu)造的方法的重載
教學(xué)難點:
super的使用,方法和構(gòu)造的方法的重載
作業(yè)及參考書:
Java2程序設(shè)計實用教程
教具:多媒體
課堂類型:講授
教學(xué)過程:見下頁
一、引入(約3min)
以“從類擴展出子類,子類繼承父類,從而實現(xiàn)代碼重用和多態(tài),這是面向?qū)ο蟪绦蛟O(shè)計的兩
大支柱?!睘榍腥朦c引入新課。
二、教學(xué)進程設(shè)計
第3章子類、繼承和多態(tài)
對象的分類:(約27min)
1.用戶接口對象
2.控制對象
3.應(yīng)用邏輯對象
4.存儲對象
3.1子類和繼承
class類名A[extends父類名B][implements接口名]{
[變量聲明];
[方法聲明];
)
缺省extends子句,則類A為java.lang.Object的子類
子類可以繼承父類的訪問權(quán)限為public,protected等的成員變量和方法,不能繼承private的成員和方
法
3.1.1成員變量的隱藏和方法重寫
1.類的兩種可重用技術(shù)
2.方法重寫
3.方法重載
4.成員變量隱藏和方法重寫的情況
5.子類的成員變量和父類同名:super
6.子類的方法和父類方法相同:重寫
例:成員變量隱藏和方法重寫
例:局部變量的作用域
classVariable(
intx=0,y=0,z=0;
voidinit(intx,inty){
this.x=x;
this.y=y;
intz=5;
System.out.println("***ininit***");
System.out.println("x="+x+""+"y="+y+""+"z="+z);
}}
classTestVariable(
publicstaticvoidmain(Slringargs[]){
Variablev=newVariable();
System.out.println("***beforeinit***");
System.out.println("x="+v.x+""+"y="+v.y+""+"z="+v.z);
v.init(20,30);
System.out.println("***afterinit***");
System.out.println("x="+v.x+""+"y="+v.y+""+"z="+v.z);
3.1.2super引用(約30min)
super使用的三種情況:
(1)用來訪問父類被隱藏的成員變量:
super.成員變量;
(2)用來調(diào)用父類中被重寫的方法:
super.方法名([參數(shù)列表]);
(3)用來調(diào)用父類的構(gòu)造方法:
super([參數(shù)列表]):
例:super用法
注:
1.super在所有的子類非static方法中都可以用
2.如果一個子類還有祖先類,super指父類而不是祖先類
3.1.3繼承
1.Java只允許單一繼承
2.所有的類都是Object類的子類或子類的子類
3.C++允許多重繼承
3.1.4方法重載與方法重寫
方法重載:
■方法有相同的名字,不同的參數(shù)特征
■目的:增加方法的應(yīng)用范圍
方法重寫:
■方法有相同的名字,相同的參數(shù)特征
■目的:改寫父類的某個程序
3.2運行時多態(tài)(約35min)
多態(tài)(polymorphism):指凡是父類合法的地方子類也合法。
運行時多態(tài)的兩條規(guī)則:
1.對子類的一個實例,如果子類重寫了父類的方法,則運行時系統(tǒng)就調(diào)用了子類的方法
2.如果子類繼承了父類的方法(未被重寫),則運行時系統(tǒng)就仍調(diào)用父類的方法
例:多態(tài)
classCar{
intCar_color;
intCar_door;
intspeed;
publicvoidpush_break(){
speed=0;
System.out.println(nInsideCar'spush_break()methodH);
)
publicadd_oil(){}}
classTrash_CarextendsCar{
doubleamount;
publicfill_trash(){}
publicvoidpush_break(){
speed=speed-10;
System.out.println(nInsideTrash_Car'spush_break()method");
})
classDemoCar{
publicstaticvoidmain(Stringargs[]){
Caracar=newTrash_Car();
acar.push_break();
})
3.3重載構(gòu)造方法
RectangleMyRectl=newRectangle();
RectangleMyR
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 住宅綠化養(yǎng)護合同
- 《榜樣9》觀后感:新時代共產(chǎn)黨人的精神力量
- 電影評論中背景設(shè)定的藝術(shù)分析
- 2024高中地理第2章區(qū)域可持續(xù)發(fā)展第6節(jié)區(qū)域工業(yè)化與城市化進程-以珠江三角洲為例精練含解析湘教版必修3
- 2024高中物理第三章相互作用2彈力課后作業(yè)含解析新人教版必修1
- 2024高中語文第6單元墨子蚜第3課尚賢練習(xí)含解析新人教版選修先秦諸子蚜
- 2024高中語文第六課語言的藝術(shù)第4節(jié)入鄉(xiāng)問俗-語言和文化練習(xí)含解析新人教版選修語言文字應(yīng)用
- 2024高考化學(xué)一輪復(fù)習(xí)課練22化學(xué)反應(yīng)的方向與限度含解析
- 校長在新學(xué)期第一次年級組長會議上講話
- 小學(xué)一年級綜合與實踐教學(xué)計劃
- 水工-建筑物課件
- 裝修增減項單模板
- 義務(wù)教育英語課程標準2022年版新增詞匯記背
- 人教版高中物理必修二全冊同步課時練習(xí)
- 張克非《公共關(guān)系學(xué)》(修訂版)筆記和課后習(xí)題詳解
- 30多個環(huán)衛(wèi)PPP項目先后退庫涉及多家上市公司
- 世界技能大賽選拔賽3D數(shù)字游戲藝術(shù)項目技術(shù)文件
- 榮譽證書打印模板word格式
- 營養(yǎng)學(xué)與健康
- 湖北高校畢業(yè)生就業(yè)協(xié)議書填寫格式說明樣表
- 單位工會組織活動方案(9篇)
評論
0/150
提交評論