Java語言程序設計-教案56學時-1-3章_第1頁
Java語言程序設計-教案56學時-1-3章_第2頁
Java語言程序設計-教案56學時-1-3章_第3頁
Java語言程序設計-教案56學時-1-3章_第4頁
Java語言程序設計-教案56學時-1-3章_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

***大學

教案

2018?2019學年第1學期

教學單位___________________________

課程名稱Java語言程序設計

課程編號___________________________

學時56學分3.5

適用專業(yè)年級

授課教師___________________________

職稱職務

課程教學尹施計劃

授課教師輔導教師(助教)

實驗(實踐)教學指導教師

學時總學時理論學時多媒體教學學時習題課學時實驗學時

計劃564016

使用名稱出版社出版時間獲獎情況

“十一五”國家級規(guī)

教材《Java2實用教程》(第5版)清華大學出版社2017.5

劃教材

《Java2實用教程》(第5版)

參清華大學出版社2017.5

實驗指導與習題解答

《Java課程設計》(第3版)清華大學出版社2018.1

Java程序設計精編教程(第3版

清華大學出版社2017.9

目微課版

通過本課程的學習,要求學生達到:

1、掌握Java語言的基礎知識。

教2、掌握Java語言的特點以及進行程序設計的方法和步驟。

3、掌握面向對象設計與實現方法。

4、掌握Java基礎類的實用方法及編程技巧。

要5、掌握AWT組件及事件處理。

求6、掌握用多線程來解決實際問題。

7、了解并掌握Java輸入輸出流。

8、了解并基本掌握Java數據庫連接。

教教學過程要精心準備例題、練習題,即能幫助學生理解知識,同時又具有啟發(fā)性。

學針對較難理解的問題,例子都要從簡單到復雜,逐步深入,便于讀者掌握Java編程的

創(chuàng)思想和技巧。

新培養(yǎng)學生的程序設計能力,初步認識軟件開發(fā)的基本思想。從閱讀和分析程序入手,

與掌握設計和調試程序的方法和技巧。學習時一定要模仿例題親自編制一些實用程序,

更加強對概念的正確認識。同時要注意上機實踐,把不清楚的問題通過上機一一解決。

從而不斷增加學習興趣,提高編程能力。

考核方式筆試(開卷)成績計算方法平時成績X20%+期末考試X80%

學時進度計劃

授課內容教學方法與手段

分配(周次)

Java語言入門

標識符、關鍵字和數據類型6課堂講授4學時、上機實踐2學時1?2

運算符、表達式和語句

類、對象和接口16課堂講授10學時、上機實踐6學時2?6

字符串

6課堂講授4學時、上機實踐2學時6?7

時間、日期和數字

AWT組件及事件處理6課堂講授4學時、上機實踐2學時8?9

Java多線程機制

10課堂講授8學時、上機實踐2學時9-11

輸入輸出流

Java網絡的基本知識

10課堂講授8學時、上機實踐2學時12?14

Java數據庫連接(JDBC)

總結2課堂講授2學時14

總學時56

各章教學實施甘劃

章節(jié)題目第1章java入門nr

教學目的、要求(分了解、理解、掌握三個層次):

了解Java語言的地位、了解Java語言的特點、了解JDK的安裝、了解Java語言的編程

風格。

掌握Java應用程序的開發(fā)步驟。

教學內容(包括基本內容、重點、難點):

基本內容:

Java語言的地位

Java的特點

安裝JDK

Java程序的開發(fā)步驟

簡單的Java應用程序的開發(fā)步驟。

教學重點:

1.了解Java語言是面向對象編程語言,編寫的軟件與平臺無。

2.Java應用程序的開發(fā)步驟。

教學難點:

Java應用程序的開發(fā)步驟。

討論、思考題、作業(yè):

P15習題1

1問答題(1)-(7)

2選擇題(1)-(2)

3閱讀程序題學生自主上機實踐

4預習第二章內容

參考書目(含參考書、文獻等)具體內容:

參考書對應章節(jié)

課堂教學實施計劃

教學過程設計:復習___________分鐘;授新課100分鐘

第1課

討論___________分鐘;其它____________分鐘

授課類型(請打J):理論課J討論課口實驗課口習題課口其它口

教學方式(請打J):講授J討論口示教口指導口其它口

教學手段(請打J):多媒體模型口實物口掛圖口音像口其它J

主要內容

Java的地位

Java誕生

?Java的特點

安裝JDK

?簡單的Java應用程序

重點與難點:

重點:Java平臺無關性、Java程序的結構。

難點:Java程序的開發(fā)過程。

Java是1995年6月由Sun公司引進到我們這個世界的革命性的編程語言。1990年Sun公

司成立了由JamesGosling領導的開發(fā)小組,開始致力于開發(fā)一種可移植的、跨平臺的語言,

該語言能生成正確運行于各種操作系統(tǒng)、各種CPU芯片上的代碼。他們的精心專研和努力促成

了Java語言的誕生。

Java的先導知識與后繼技術

學習Java語言需要讀者曾系統(tǒng)地學習過一門面向過程的編程語言,比如C語言。讀者學習

過Java語言之后,可以繼續(xù)學習和Java相關的一些重要內容,比如,學習和數據庫設計相關

的JavaDatabaseConnection(JDBC)>Web設計相關的JavaServerPage(JSP)、Android手

機程序設計、數據交換技術相關的extensibleMarkupLanguage(XML)以及網絡中間件設計相

關的JavaEnterpriseEdition(JavaEE),如圖1.1所示。

圖LIJava的先導知識與后繼技術3

1.1Java的地位

1.1.1網絡地位

Java的平臺無關性讓Java成為編寫網絡應用程序的佼佼者,而且Java也提供了許多以網

絡應用為核心的技術,使得Java特別適合于網絡應用軟件的設計與開發(fā)。

1.1.2語言地位

Java語言是一門很好的面向對象語言,通過學習Java語言可以學習怎樣使用對象來完成某

些任務、掌握面向對象編程的基本思想.

1.1.3需求地位

IT行業(yè)對Java人才的需求正在不斷的增長,掌握Java語言及其相關技術意味著較好的就

業(yè)前景和工作酬金。

1.2Java的特點

1.2.1簡單

Java要比C++簡單,C++中許多容易混淆的概念,或者被Java棄之不用了,或者以一種更

清楚更容易理解的方式實現。

1.2.2面向對象

Java是面向對象的編程語言,本書將在第4章、第5章和第6章詳細、準確地討論類、對

象、繼承、多態(tài)、接口等重要概念。

1.2.3平臺無關

在一個計算機上編譯得到的字節(jié)碼文件可以復制到任何一個安裝了Java運行環(huán)境的計算

機上直接使用。字節(jié)碼由Java虛擬機負責解釋運行,即Java虛擬機負責將字節(jié)碼翻譯成本地

計算機的機器碼,并將機器碼交給本地的操作系統(tǒng)來運行。

1.平臺與機器指令

2.C/C++程序依賴平臺

3.Java虛擬機與字節(jié)碼

針對Java虛擬機生成的字。碼文件Java運行環(huán)境

振作系統(tǒng)

)0101001111100005sWindows

0I0IIIII0I00III0

CPU

1011100111110011

1110100111110110

Java運行環(huán)境

1010101111011001能運行于平臺B

I0IIII010IIII010UNIX操作系統(tǒng)

CPU

圖1.3Java生成的字節(jié)碼文件不依賴于平臺,

1.2.4多線程

Java的特點之一就是內置對多線程的支持。多線程允許同時完成多個任務。

1.2.5動態(tài)

Java程序的基本組成單元就是類,有些類是自己編寫的,有一些是從類庫中引入的,而類

又是運行時動態(tài)裝載的,這就使得Java可以在分布環(huán)境中動態(tài)地維護程序及類庫。

1.3安裝JDK

1.3.1三種平臺簡介

目前Java平臺主要分為下列3個版本:

(1)JavaSE(曾稱為J2SE)稱為Java標準版或Java標準平臺.

(2)JavaEE(曾稱為J2EE)稱為Java企業(yè)版或Java企業(yè)平臺.

(3)JavaME(曾稱為J2ME)稱為Java微型版或Java小型平臺.

無論上述哪種Java運行平臺都包括了相應的Java虛擬機(JavaVirtualMachine),虛

擬機負責將字節(jié)碼文件(包括程序使用的類庫中的字節(jié)碼)加載到內存,然后采用解釋方式來

執(zhí)行字節(jié)碼文件,即根據相應平臺的機器指令翻譯一句執(zhí)行一句。

1.3.2安裝JavaSE平臺

JavaSE平臺是學習掌握Java語言的最佳平臺,而掌握JavaSE又是進一步學習JavaEE

和Android所必須的。

下載JDK1.8。本書將使用針對Window操作系統(tǒng)平臺的JDK,因此下載的版本為

jdk-8u102-windows-x64.exe0

選擇安裝路徑界面。為了便于今后設置環(huán)境變量,建議修改默認的安裝路徑為:

D:\jdkl.8o

JDK平臺提供的Java編譯器(javac.exe)和Java解釋器(java.exe)位于Java安裝目

錄的\bin文件夾中.

133系統(tǒng)環(huán)境的設置

1.設置系統(tǒng)變量JAVAJ0ME

2.系統(tǒng)環(huán)境path的設置

3.系統(tǒng)環(huán)境classpath的設置

1.4Java程序的開發(fā)步驟

開發(fā)步驟:

1)編寫源文件:擴展名必須是.java。

2)編譯Java源程序:用Java編譯器(javac.exe)編譯源文件,得到字節(jié)碼文件。

3)運行Java程序:使用Java解釋器(java.exe)來解釋執(zhí)行字節(jié)碼文件。

1.5簡單的Java應用程序

1.5.1源文件的編寫與保存

Java應用程序的源文件是由若干個書寫形式互相獨立的類組成,有關Java應用程序結構

的細節(jié)在第4章還會講。

例子1中的Java源文件Hello.java是由兩個名字分別為Hello和Student的類組成。

1編寫源文件

使用一個文本編輯器,如Edit或記事本編寫上述例子1給出的源文件。

Java源程序中語句所涉及到的小括號及標點符號都是英文狀態(tài)下輸入的括號和標點符號,

比如“大家好!”中的引號必須是英文狀態(tài)下的引號,而字符串里面的符號不受漢字符或英文

字符的限制。

2.保存源文件

如果源文件中有多個類,那么只能有一個類是public類;如果有一個類是public類,那

么源文件的名字必須與這個類的名字完全相同,擴展名是java;如果源文件沒有public類,

那么源文件的名字只要和某個類的名字相同,并且擴展名是java就可以了。

上述例子1中的源文件必須命名為Hello,java。我們將Hello,java保存到C:\chapterl

文件夾中。

1.5.2編譯

進入邏輯分區(qū)C的chapterl目錄中,使用編譯器javac編譯源文件

使用javac編譯源文件

C:\chapterl>javacHello,java

1.5.3運行

1.應用程序的主類

一個Java應用程序必須有一個類含有

publicstaticvoidmain(Stringargs[])

方法,稱這個類是應用程序的主類。

2.解釋器(java)

使用Java虛擬機中的Java解釋器(java.exe)來解釋執(zhí)行其字節(jié)碼文件。Java應用程序

總是從主類的main方法開始執(zhí)行。因此,需進入主類字節(jié)碼所在目錄,比如C:\chapterl,然

后使用Java解釋器(java.exe)運行主類的字節(jié)碼.圖1.14使用java解釋器運行程。

C:\chapterl\>javaHello

再看一個簡單的Java應用程序

不要求讀者看懂程序的細節(jié),但讀者必須知道怎樣保存.

例子2中的Java源文件(源文件里有2個類)、怎樣使用編譯器編譯源程序、怎樣使用解釋

器運行程序。

1.6Java反編譯

1.7編程風格及注釋

遵守一門語言的編程風格是非常重要的,否則編寫的代碼將難以閱讀,給后期的維護帶來

諸多不便。

1.8Java之父JamesGosling

課堂,軟結:本節(jié)的重點首先Java語言是面向對象編程語言,編寫的軟件與平臺無。

其次掌握Java應用程序的開發(fā)步驟。

作業(yè):習題11—3

各章教學實施甘劃

章節(jié)題目第2章基本數據類型與數組CT

子燈/

教學目的、要求(分了解、理解、掌握三個層次):

1、了解Java語言的標識符與關鍵字;了解Java語言使用Unicode標準字符集。

2、掌握Java基本數據類型。

3、了解基本型數據的輸入、輸出。

4、掌握Java中的數組。

教學內容(包括基本內容、重點、難點):

基本內容:

標識符與關鍵字

基本數據類型

類型轉換運算

輸入、輸出數據

數組

重點

Java語言的關鍵字、基本數據類型和輸入、輸出語句及數組。

難點

基本數據類型的精度及理解數組屬于引用型變量。

Java數組屬于引用型變量,創(chuàng)建數組需要經過聲明數組和為數組分配變量兩個步驟。

兩個相同類型的數組如果具有相同的引用,它們就有完全相同的元素。

討論、思考題、作業(yè):

教材30頁習題21—2

習題23—4上機實踐

參考書目(含參考書、文獻等)具體內容:

參考書對應章節(jié)

課堂教學實施計劃

教學過程設計:復習5____分鐘;授新課90一分鐘

第2課

討論5一分鐘;其它__________一分鐘

授課類型(請打J):理論課J討論課口實驗課口習題課口其它口

教學方式(請打J):講授J討論口示教口指導口其它口

教學手段(請打J):多媒體J模型口實物口掛圖口音像口其它J

本章用一次課完成。

第2章基本數據類型與數組

主要內務

。標識符與關鍵字

O基本數據類型

字類型轉換運算

字輸入、輸出數據

。數組

重點和難點

*重點:標示符、Java語言的數據類型、數組

O難點:基本數據類型的精度和數組

2.1標識符與關鍵字

標識符

用來標識類名、變量名、方法名、類型名、數組名、文件名的有效字符序列稱為標識符,

簡單地說,標識符就是一個名字。

Java語言規(guī)定

標識符由字母、下劃線、美元符號和數字組成,長度不受限制。

標識符的第一個字符不能是數字字符。

標識符不能是關鍵字(關鍵字見下面的2.1.3節(jié))。

標識符不能是true、false和null(盡管true、false和null不是關鍵字)。

Unicode字符集

Java語言使用Unicode標準字符集,最多可以識別65536個字符。Unicode字符集的前128個

字符剛好是ASCII碼。

關鍵字

關鍵字就是具有特定用途或被賦予特定意義的一些單詞,不可以把關鍵字作為標識符來

用。

例如:boolean>byte>short>int>float>double>char>if、else等。

關鍵字都是小寫的。遇到大寫肯定不是關鍵字。

關鍵字就是具有特定用途或被賦予特定意義的一些單詞,不可以把關鍵字作為標識符來用,

以下是Java的50個關鍵字。

abstractassertbooleanbreakbytecasecatchcharclassconstcontinuedefaultdodoubleelse

enumextendsfinalfinallyfloatforgotoifimplementsimportinstanceofintinterfacelongnativenew

packageprivateprotectedpublicreturnshortstaticstrictfpsuperswitchsynchronizedthisthrow

throwstransienttryvoidvolatilewhile

2.2基本數據類型

?有8種基本數據類型:

boolean>byte>short>int>long>float>double、char。

A8種基本數據類型習慣上可分為以下四大類型:

邏輯類型:boolean

整數類型:byte>short>int>long

字符類型:char

浮點類型:floatxdouble

§2.2.1邏輯類型

A變量

使用關鍵字boolean來聲明邏輯變量,聲明時也可以賦給初值。

?常量

true、false

例如:

booleanx,ok=true,關閉=false;

§2.2.2整數類型

Aint型

變量:使用關鍵字int來聲明int型變量,聲明時也可以賦給初值.

例如:intx=12,平均=9898,jiafei;

常量:int型常量共有三種表示方法:

十進制:123,6000(十進制)

八進制:077(八進制,是零開頭);

十六進制:0x3ABC(十六進制)

對于int型變量,內存分配給4個字節(jié)(byte),占32位.

Abyte型

變量:使用關鍵字byte來聲明byte型變量.

例如:bytex=-12,tom=28,漂亮=98;

常量:一定范圍內的int型常量賦值給byte型變量.

對于byte型內存分配給1個字節(jié),占8位.

Ashort型

變量:使用關鍵字short來聲明short型變量。

例如:shortx=12,y=1234;

常量:和byte型類似,Java中也不存在short型常量的表示法,但可以把一定范圍內的int

型常量賦值給short型變量。

對于short型變量,內存分配給2個字節(jié),占16位.

Along型

變量:使用關鍵字long來聲明long型變量。

常量:long型常量用后綴L來表示,例如108L(十進制)、07123L(八進制)、0x3ABCL(十

六進制)。

例如:longwidth=12L,height=2005L,length;

對于long型變量,內存分配給8個字節(jié),占64位。

2.2.3字符類型

Achar類型

常量:'A,,'b','9‘,'好','\t','k,'3等,即用單引號擴起的Unicode

表中的一個字符。

變量:使用關鍵字char來聲明char型變量,對于char型變量,內存分配給2個字節(jié),占16

例如:charch='A',home='家',handsome='酷';

?轉意字符常量:

有些字符(如回車符)不能通過鍵盤輸入到字符串或程序中,就需要使用轉意字符常量,

例如:\n(換行),\b(退格),\t(水平制表”(單引號),

\"(雙引號),\\(反斜線)等。

例子1C:\chapter2>javaExample2_l

漢字:好的位置:229。9,

Example2_l.java日文:方的位置:12353

20320位置上的字符是:你

publicclassExample2_l{21319位置上的字符是:升

publicstaticvoidmain(Stringargs[]){you:你

1

charchinaWord=*if*zjapanWord=*i5;

圖顯示表中的字符

charyou=1\u4F601;2.1Unicode

intposition=20320;

System.out.printin("漢字:,,+chinaWord+,'的位置:”+(int)chinaWord);

System.out.printIn("日文:”+japanWord+”的位置:"+(int)japanWord);

System.out.printIn(position+”位置上的字符是:"+(char)position);

position=21319;

System,out.printin(position+”位置上的字符是:"+(char)position);

System.out.printIn("you:n+you);

)

§2.2.4浮點類型

Afloat型

常量:453.54F(小數表示法),2e40f(2乘10的40次方,指數表示法).

變量:使用關鍵字float來聲明float型變量,

例如:floatx=22.76f,tom=1234.987f,weight=1e-12F;

精度:float變量在存儲時保留8位有效數字。

對于float型變量,內存分配給4個字節(jié),占32位。

double型

常量:238.539d,231.987(小數表示法),le-90(l乘10的-90次方,指數表示法).對于double

常量,后綴有“d”或"D”,但允許省略后綴.

變量:使用關鍵字double來聲明double型變量,

例如:doubleheight=23.345,width=34.56D,length=lel2;

對于double型變量,內存分配給8個字節(jié),占64位。

精度:double變量在存儲double型數據時保留16位有效數字,實際精度取決于具體數值。

特別注意

一個具有小數部分的數據的缺省類型是double而不是float。所以float常量后面必須要有后

綴“廣或“F”。

§2.3類型轉換運算

AJava中數據的基本類型(不包括邏輯類型)按精度從“低”到“高”排列:

byteshortcharintlongfloatdouble

A規(guī)則:

當把級別低的變量的值賦給級別高的變量時,系統(tǒng)自動完成數據類型的轉換。

例如:floatx=100;

當把級別高的變量的值賦給級別低的變量時,必須使用顯示類型轉換運算。顯示轉換的格

式:(類型名)要轉換的值;例如:intx=(int)34.89;

當把一個int型常量賦值給一個byte和short型變量時,不可以超出這些變量的取值范圍,否

則必須進行類型轉換運算;

例如:byteb=128;(error)byteb=(byte)l28(ok)

下面的例子2使用了類型轉換運算,運行效果如圖2.2。

例子2

Example2_2.java

publicclassExample2_2{

publicstaticvoidmain(Stringargs[]){

byteb=22;

intn=129;

floatf=123456.6789f;

doubled=123456789.123456789;

System.out.printIn("b="+b);

System.out.printin("n="+n);

System.out.printIn("f=n+f);

System.out.printin("d="+d);

b=(byte)n;//導致精度的損失

f=(float)d;//導致精度的損失

System.out.printIn("b=n+b);

System.out.printIn("f=n+f);

§2.4輸入、輸出數據

2.4.1輸入基本型數據

可以使用Scanner類創(chuàng)建一個對象:

Scannerreader=newScanner(System.in);

其中:reader對象調用下列方法,讀取用戶在命令行輸入的各種基本類型數據:

nextBoolean()>nextByte()>nextShort()>nextlnt()、

nextLong()>nextFloat()>nextDouble()o

上述方法執(zhí)行時都會堵塞,程序等待用戶在命令行輸入數據回車確認。

例題3

Example2_3.java

importjava.util.Scanner;

publicclassExample2_3{

publicstaticvoidmain(Stringargs[]){

System.out.printIn("請輸入若干個數,每輸入一個數回車確認”);

System.out.printIn("最后輸入數字0結束輸入操作”);

Scannerreader=newScanner(System.in);

doublesum=0;

doublex=reader.nextDouble();

while(x!=0){

sum=sum+x;

x=reader,nextDouble();

System.out.printIn(Hsum=',+sum);

}

2.4.2輸出基本型數據

java使用System類中的方法實現數據輸出

例如:System.out.println。或System.out.print()輸出串值,表達式的值。二者的區(qū)別是前

者輸出數據后換行,后者不換行。如:

System.out.println(m+”個數的和為"+sum);

System.out.println(":"+123+"大于"+122);

如果需要輸出的字符串的長度較長,可以將字符串分解成幾部分,然后使用并置符號:“+”

將它們首尾相接,

例如:System.out.println("你好,"+

"很高興認識你");

§2.5數組

數組是相同類型的數據按順序組成的一種復合數據類型。通過數組名加數組下標,來使用

數組中的數據。下標從o開始排序。這部分內容是重點也是難點。

2.5.1聲明數組

聲明一維數組有下列兩種格式:

數組的元素類型數組名口;

數組的元素類型[]數組名;

例如:

floatboy[];

char[]cat;

?聲明二維數組有下列兩種格式:

數組的元素類型數組名口口;

數組的元素類型[用數組名;

例如:

float叫口;

Char[][]b;

2.5.2為數組分配元素空間

為數組分配元素的格式如下:

數組名=new數組元素的類型[數組元素的個數];

例如:boy=newfloat[4];

2.5.3數組元素的使用

數組元素的使用

一維數組通過索引(下標運算)符訪問自己的元素。如:boy[0],boy[l]等.

需要注意的是索引從0開始,因此,數組若有4個元素,那么索引至U3為止,如果程序使用了

如下語句:

boy[4]=384.98f;

程序可以編譯通過,但運行時將發(fā)生ArraylndexOutOfBoundsException

異常,

因此在使用數組時必須謹慎,

防止索引越界。

2.5.4length的使用

length字段的使用

對于一維數組,“數組名.length”的值就是數組中元素的個數;

對于二維數組“數組名.length”的值是它含有的一維數組的個數

例如:floatboy[]=newfloat[4];

boy.length的值為4.

int[][]a=new0網網;

a.length的值是3.

a[0].length的值是8

a[1].length的值是8

a[2].length的值是8

2.5.5數組的初始化

數組初始化

創(chuàng)建數組后,系統(tǒng)會給數組的每個元素一個默認的值

例如,float型是0.0。

如果需要賦值,就要為每個元素賦值:例如:

floatboy[]=newfloat[4];

boy[0]=12;

boyfl]=23.908F;

boy[2]=100;

boy[3]=10.23f;

在聲明數組的同時也可以給數組的元素一個初始值,如:

floatboy[]={21.3f,23.89f,2.0f,23f,778.98f};

2.5.6數組的引用

數組的引用

數組屬于引用型變量,兩個相同類型的數組如果具有相同的引用,它們就有完全相同的元

素。.

下面的例子4使用了數組,請讀者注意程序的輸出結果,運行效果如圖2.7。

例子4

Example2_4.java

publicclassExample2_4{

publicstaticvoidmain(Stringargs[]){

inta[]={1,2,3,4};

intb[]={100,200,300);

System.out.printIn("數組a的元素個數="+a.length);

System.out.printIn("數組b的元素個數="+b?length);

System.out.printIn(”數組a的弓]用="+己);

System.out.printin(”數組b的弓I用="+1));

a=b;

System.out.printIn("數組a的元素個數="+a.length);

System.out.printInb的元素個數="+b?1一ngth);

nHHnHn

System.out.printin(a[0]=+a[0]+Aa[1]=+a[1]+Za[2]=+a[2]);

nnnnHn

System.out.print(b[0]=+b[0]+zb[1]=+b[1]+,b[2]=+b[2]);

§2.6應用舉例

折半法:對于從小到大排序的數組,我們只要判斷數據是否和數組中間的值相等,如果不相

等,當該數據小于數組中間元素的值,就在數組的前一半數據中繼續(xù)折半找,否則就在數組的

后一半數據中繼續(xù)折半找,如此這般,就可以比較快地判斷該數據是否在數組中。

例子5能判斷用戶輸入的一個整數是否在已知的數組中。程序效果如圖2.8

例子5

Example2_5.java

importjava.util?*;

classExample2_5{

publicstaticvoidmain(Stringargs[]){

intstart=0,end,middle;

inta[]={12,45,67,89,123,-45,67);

intN=a.length;

for(inti=0;i<N;i++){//選擇法排序數組

for(intj=i+l;j<N;j++){

if(a[j]<a[i]){

intt=a[j];

a[j]=a[i];

a[i]t;

)

)

}

Scannerscanner=newScanner(System.in);

System.out.printIn("輸入整數,程序判斷該整數是否在數組中;

intnumber=scanner.nextlnt();

intcount=0;

end=N;

middle=(start+end)/2;

while(number!=a[middle]){

if(number>a[middle])

start=middle;

elseif(number<a[middle])

end=middle;

middle=(start+end)/2;

count++;

if(count>N/2)

break;

)

if(count>N/2)

System.out.printf(”%d不在數組中.\n”,number);

else

System.out.printf(”%d在數組中.\n”,number);

)

)

2.7總結

(1)標識符由字母、下劃線、美元符號和數字組成,并且第一個字符不能是數字字符。

(2)Java語言有8種基本數據類型:boolean>byte、short、int、long、float>double>char。

(3)數組是相同類型的數據元素按順序組成的一種復合數據類型,數組屬于引用型變量,因此

兩個相同類型的數組如果具有相同的引用,它們就有完全相同的元素。

作業(yè)

教材30頁習題22—4

各章教學實施計劃

表達式和語句

章節(jié)題目:第3章運算符、學時2

教學目的、要求(分了解、理解、掌握三個層次):

掌握Java運算符與表達式,掌握分支語句與循環(huán)語,了解break和continue語句、了解

for語句。

教學內容

基本內容:

運算符與表達式

語句概述

if條件分支語句

switch開關語句

循環(huán)語句

break和continue語句

數組與for語句

教學重點和難點

重點是Java語言的運算符、表達式及分支與循環(huán)語句。

以上內容與C語言類似,因此對有C語言基礎的同學只是一個復習的過程而已。

討論、思考題、作業(yè):

習題3

2—3題

4上機實踐

參考書目(含參考書、文獻等)具體內容:

參考書對應章節(jié)

課堂教學實施計劃

教學過程設計:復習5____分鐘;授新課90一分鐘

第3課

討論5一分鐘;其它__________一分鐘

授課類型(請打J):理論課J討論課口實驗課口習題課口其它口

教學方式(請打J):講授J討論口示教口指導口其它口

教學手段(請打J):多媒體J模型口實物口掛圖口音像口其它J

本章內容一次課結束。

主要內容

運算符與表達式

語句概述

if條件分支語句

switch開關語句

循環(huán)語句

?break和continue語句

數組與for語句

重點和難點

重點:運算符、表達式和各種控制語句

難點:各種控制語句用法

§3.1運算符與表達式

Java提供了豐富的運算符,如算術運算符、關系運算符、邏輯運算符、位運算符等。

Java語言中的絕大多數運算符和C語言相同,基本語句,如條件分支語句、循環(huán)語句等也和C

語言類似,因此,本章就主要知識點給予簡單的介紹。

§3.1.1算術運算符與算術表達式

?加減運算符:+,-

加減運算符是二目運算符;加減運算符的結合方向是從左到右;加減運算符的操作元是整型

或浮點型數據,加減運算符的優(yōu)先級是4級。

?乘、除和求余運算符:*/%

以上運算符是二目運算符,結合方向是從左到右,乘、除和求余運算符的操作元是整型或浮

點型數據。運算符的優(yōu)先級是3級。

?算術表達式

用算術符號和括號連接起來的符合java語法規(guī)則的式子,稱為算術表達式。

如:x+2*y-30+3*(y+5)

§3.1.2自增,自減運算符

自增、自減運算符:++,~

單目運算符,可以放在操作元之前,也可以放在操作元之后。操作元必須是一個整型或浮點

型變量。作用是使變量的值增1或減1,如:

++X(―X)表示在使用X之前,先使X的值增(減)1。

X++(X—)表示在使用X之后,使X的值增(減)lo

例如:intf=2;

intm=2;

intx=(f*m++)+m;//x=7;

inty=(f*++m)+m;//y=9;

§3.1.3算術混合運算的精度

?Java中數據類型的精度從“低”到“高”排列的順序是:

byteshortcharintlongfloatdouble

?Java在計算算術表達式的值時,使用下列計算精度規(guī)則:

如果表達式中有雙精度浮點數(double型數據),則按雙精度進行運算.

如果表達式中最高精度是單精度浮點數(float型數據),則按單精度進行運算.

如果表達式中最高精度是long型整數,則按long精度進行運算.

如果表達式中最高精度低于int型整數,則按int精度進行運算.

char型數據和整型數據運算結果的精度是int。

§3.1.4關系運算符與關系表達式

?關系運算符:>,<,>=,<=,==,!=

特點:關系運算符是二目運算符,用來比較兩個值的關系,見表4.1。

關系運算符的運算結果是boolean型,當運算符對應的關系成立時,運算結果是true,否則

是false。

運算規(guī)則:

在關系運算符中,當操作數是基本數據類型時,比較的是數據內容;

在關系運算符中,當操作數是引用類型時,比較的是引用對象的引用值,判斷是否是同一

對象,而沒有比較對象的內容。

如,4>8,(x+y)>80o

§3.1.5邏輯運算符與邏輯表達式

?邏輯運算符包括:&&、||、!

其中:&&、||為二目運算符,實現邏輯與、邏輯或;

!為單目運算符,實現邏輯非。

?規(guī)則:

邏輯運算符的操作元必須是boolean型數據,邏輯運算符可以用來連接關系表達式。

?&&,II也稱短路運算符

當前面的表達式。P1的值為false時,&&運算符在運算時就不再去計算op2表達式的值;當

opl為true時,||運算符就不再計算op2的值。(opl&&op2;opl||op2)o

注意y的值

classTest

{publicstaticvoidmain(Stringargs口)

{intx,y=10;

if(((x=0)==0)|((y=20)==20))

{System.out.printin("現在y的值是:"+y);

)

§3.1.6賦值運算符與賦值表達式

賦值運算符:=

賦值運算符是二目運算符,左面的操作元必須是變量,不能是常量或表達式。

賦值運算符的優(yōu)先級較低,是14級,結合方向右到左。

賦值表達式的值就是“=”左面變量的值。

注意:不要將賦值運算符“=”與等號邏輯運算符“二=”混淆。

例如:x=20;b=true;

§3.1.7位運算符

位運算符:是指對兩個整型數據按照對應的位進行運算,結果為新的整型數據。

“按位與”運算

是雙目運算符。運算法則是:如果a,b兩個數據對應位都是1,則c的該位是1,否則

是0。

“按位或”運算

“I”是雙目運算符。運算法則是:如果a,b兩個數據對應位都是0,則c的該位是0,否則

是1。

“按位非”運算

是單目運算符。運算法則是:如果a對應位都是0,則c的該位是1,否則是1。

“按位異或”運算

是雙目運算符。運算法則是:如果a,b兩個數據對應位相同,則c的該位是0,否則

是1。

例題1

在下面的例子1中,利用“異或”運算的性質,對幾個字符進行加密并輸出密文,然后再

解密,運行效果如圖3.1。

Example3_Ljava

publicclassExample3_l{

publicstaticvoidmain(Stringargs[]){

charal=,+Ia2=,點,,a3=,進,,a4=,攻,

charsecret=1A';

al=(char)(al人secret);

a2=(char)(a2Asecret);

a3=(char)(a3人secret);

a4=(char)(a4人secret);

System,out.printIn("密文:"+al+a2+a3+a4);

al=(char)(al人secret);

a2=(char)(a2Asecret);

a3=(char)(a3人secret);

a4=(char)(a4人secret);

System,out.printin(**JM%:H+al+a2+a3+a4);

)

§3.1.8instanceof運算符

instanceof運算符是二目運算符,左面的操作元是一個對象;右面是一個類。當左面的

對象是右面的類或子類創(chuàng)建的對象時,該運算符運算的結果是true,否則是false。

§3.1.9運算符綜述

Java的表達式就是用運算符連接起來的符合Java規(guī)則的式子。

運算符的優(yōu)先級決定了表達式中運算執(zhí)行的先后順序。

在編寫程序時盡量使用括號()運算符號來實現想要的運算次序,以免產生難以閱讀或含

糊不清的計算順序。

運算符的結合性決定了具有相同級別運算符的先后順序。

§3.2語句概述

Java里的語句可分為以下六類

方法調用語句:如:System,out.println(z,Hello");

表達式語句:表示式尾加上分號。比如賦值語句:x=23;

復合語句:可以用{}把一些語句括起來構成復合語句,

如:{z=123+x;

System,out.printin(Z/Howareyou");

空語句:一個分號也是一條語句,稱做空語句。

控制語句:控制語句分為條件分支語句、開關語句和循環(huán)語句。

package語句和import語句:它們和類、對象有關,將在第4章講解。

§3.3if條件分支語句

條件分支語句按著語法格式可細分為三種形式:

if語句

if-e

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論