java程序設(shè)計(jì)精美課件(全)_第1頁(yè)
java程序設(shè)計(jì)精美課件(全)_第2頁(yè)
java程序設(shè)計(jì)精美課件(全)_第3頁(yè)
java程序設(shè)計(jì)精美課件(全)_第4頁(yè)
java程序設(shè)計(jì)精美課件(全)_第5頁(yè)
已閱讀5頁(yè),還剩373頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

本講要點(diǎn)學(xué)習(xí)目標(biāo)

掌握:Java的安裝、配置方法,Java工作原理。

理解:Java基本概念、特點(diǎn)。

了解:Java的發(fā)展簡(jiǎn)史。重點(diǎn)

理解:Java虛擬機(jī)的概念。

熟練掌握:Java運(yùn)行環(huán)境設(shè)置和開發(fā)工具的使用。難點(diǎn)

兩類Java程序編寫、調(diào)試、運(yùn)行的區(qū)別。

JDK的工具包的使用。本講課時(shí):2課時(shí)上機(jī)課時(shí):Java運(yùn)行環(huán)境配置和程序測(cè)試2課時(shí)Java的故事當(dāng)時(shí)JamesGosling詹姆士·戈士林遇到一個(gè)項(xiàng)目:1991年在電視、面包烤箱等家用電器產(chǎn)品上進(jìn)行交互操作,這個(gè)項(xiàng)目要求他用C++開發(fā),C++軟件有個(gè)缺點(diǎn)就是針對(duì)CPU芯片進(jìn)行編譯,一旦電器設(shè)備更換芯片就不能保證程序正確運(yùn)行,需要重新修改程序。于是他的團(tuán)隊(duì)開始著手改動(dòng)C++語(yǔ)言,開發(fā)程序員的辦公室外面有個(gè)橡樹。這個(gè)團(tuán)隊(duì)給他們的產(chǎn)物起名叫Oak(橡樹),后來(lái)當(dāng)他們?nèi)プ?cè)這個(gè)名字的時(shí)候,發(fā)現(xiàn)這個(gè)名字已經(jīng)被注冊(cè)了。

于是在Sun公司的一個(gè)女職員的提議下,把這個(gè)可愛的語(yǔ)言起名為Java,就是他們當(dāng)時(shí)喝的咖啡的名字。于是以這種咖啡島嶼命名,寓意是為世人端上的一杯熱咖啡所以我們看到Java的標(biāo)志就是一杯冒著熱氣的咖啡技術(shù)人員開發(fā)了一個(gè)名為Oak的軟件,該軟件能正確運(yùn)行于各種操作系統(tǒng)和CPU,實(shí)現(xiàn)了可移植和跨平臺(tái),Java的特點(diǎn)簡(jiǎn)單易學(xué)Java提供了豐富的類庫(kù),方便的開發(fā)Java程序;用了C語(yǔ)言中的大部分語(yǔ)法;采用了無(wú)用內(nèi)存自動(dòng)回收機(jī)制;

面向?qū)ο笃脚_(tái)無(wú)關(guān)性可移植性分布性安全性三級(jí)安全代碼檢查機(jī)制:Java本身的代碼檢查;字節(jié)的檢查;Java解釋器的檢查;

支持多線程Java平臺(tái)和虛擬機(jī)Java平臺(tái)主要由Java虛擬機(jī)(JVM,JavaVirtualMachine)和Java應(yīng)用程序接口(JavaAPI)兩部分組成;Java虛擬機(jī)易于移植到不同硬件的平臺(tái)上,是Java平臺(tái)的基礎(chǔ);Java應(yīng)用程序接口提供了豐富的Java資源;Java虛擬機(jī)是一種利用軟件方法來(lái)實(shí)現(xiàn)硬件功能的虛擬計(jì)算機(jī);是Java跨平臺(tái)的保證;JVM的實(shí)現(xiàn)-Java運(yùn)行時(shí)系統(tǒng);嵌入Java運(yùn)行時(shí)系統(tǒng)的應(yīng)用程序,可以執(zhí)行Java字節(jié)碼文件;J2SDKJREJVMJava虛擬機(jī)工作原理Java工作原理編譯器:對(duì)源代碼進(jìn)行半編譯,生成與平臺(tái)無(wú)關(guān)的字節(jié)碼文件;解釋器:分布在網(wǎng)絡(luò)中不同的操作系統(tǒng)平臺(tái)上,用于對(duì)字節(jié)碼文件半解釋執(zhí)行編譯執(zhí)行的程序

程序員源代碼

編譯器

錯(cuò)誤?

是否

源代碼變?yōu)樘囟ㄓ谄脚_(tái)

的可執(zhí)行二進(jìn)制代碼程序

用戶檢查錯(cuò)誤011001010001111110用戶啟動(dòng)程序(二進(jìn)制代碼文件)解釋執(zhí)行程序

程序員 源代碼

用戶

解釋器解釋器解釋器解釋器檢查是否有錯(cuò)誤和安全問題,在當(dāng)前的平臺(tái)上解釋并運(yùn)行此程序用戶啟動(dòng)程序(源代碼程序)編寫java程序Java源代碼(*.java)Java編譯器字節(jié)碼(*.class)Java虛擬機(jī)Java解釋器(forUNLS)Java解釋器(forwindows)Java解釋器(forMacOS)Java程序可移植性原理運(yùn)行環(huán)境安裝與測(cè)試運(yùn)行環(huán)境安裝從Oracle公司網(wǎng)站下載/zh_CN/download/index.jspJDK(開發(fā)工具包)Bin:Java開發(fā)工具

Jre:運(yùn)行時(shí)環(huán)境(Java虛擬機(jī)、類庫(kù)以及其他文件)

lib:Java附加庫(kù)(類庫(kù)及其它文件)Demo:演示Applet和應(yīng)用程序include子目錄:包含了c頭文件src.zip:Java源代碼JDK的基本命令javac:Java編譯器,用來(lái)將java程序編譯成字節(jié)碼。命令格式:javac[選項(xiàng)]源程序名java:Java解釋器,執(zhí)行已經(jīng)轉(zhuǎn)換成字節(jié)碼的java應(yīng)用程序。命令格式:java[選項(xiàng)]類名[參數(shù)]jdb:Java調(diào)試器,用來(lái)調(diào)試java程序。javap:反編譯,將類文件還原回方法和變量。命令格式:javap[選項(xiàng)]類名javadoc:文檔生成器,創(chuàng)建HTML文件。命令格式:javadoc[選項(xiàng)]源文件名運(yùn)行環(huán)境安裝與測(cè)試環(huán)境變量設(shè)定PathPath稱為路徑環(huán)境變量。用來(lái)指定Java開發(fā)包中的一些可執(zhí)行程序(Java.exe、Javac.exe等)所在的位置;Classpath

Classpath稱為類路徑環(huán)境變量。不同的操作系統(tǒng)上,設(shè)定環(huán)境變量的方法是不同的;運(yùn)行環(huán)境安裝與測(cè)試環(huán)境測(cè)試版本測(cè)試:java–version

環(huán)境測(cè)試:javac測(cè)試工具:命令提示符,eclipse集成開發(fā)環(huán)境演示運(yùn)行環(huán)境的不同,可將Java程序分為:Java應(yīng)用程序(JavaApplication)在本機(jī)上由Java解釋程序來(lái)激活Java虛擬機(jī)Java小程序(JavaApplet)通過(guò)瀏覽器來(lái)激活Java虛擬機(jī)Java應(yīng)用程序(JavaApplication)編寫程序源文件源文件類型名為.java編譯生成字節(jié)碼文件生成的字節(jié)碼文件類型名為.class運(yùn)行應(yīng)用程序運(yùn)行:通過(guò)Java虛擬機(jī)獨(dú)立運(yùn)行程序小應(yīng)用程序運(yùn)行:嵌入瀏覽器中運(yùn)行初識(shí)兩類Java程序

例1-1:源程序名為“testHello.java”程序,在屏幕上輸出“Java歡迎你!”源程序:publicclasstestHello{publicstaticvoidmain(Stringarg[]){

System.out.println("Java歡迎你!");}}運(yùn)行結(jié)果:Java應(yīng)用程序(JavaApplication)編寫Java應(yīng)用程序源文件在D盤創(chuàng)建工作目錄java;即D:\java>在工作目錄下,使用記事本程序編寫文件名為testHello.java的源程序輸入程序代碼編譯程序開始運(yùn)行(cmd),打開命令窗口進(jìn)入

D:\java>工作目錄輸入編譯程序javac命令:javac

testHello.java

(將源文件編譯成字節(jié)碼文件)運(yùn)行程序輸入運(yùn)行程序命令:javatestHello初識(shí)兩類Java程序(JavaApplication)例1-2:源程序名為“Hello.java”。顯示“你好Java!”的Applet程序。源程序:

importjava.applet.*;//導(dǎo)入Graphics類

importjava.awt.*;//導(dǎo)入Applet類

publicclassHelloextendsApplet//Applet的初始化事件

{publicvoidpaint(Graphicsf){

f.drawString("你好Java!",10,50);//顯示“你好Java!”}}

運(yùn)行結(jié)果:初識(shí)兩類Java程序(JavaApplet)初識(shí)兩類Java程序(JavaApplet)編寫Java應(yīng)用程序源文件(同Java應(yīng)用程序)編譯Applet小程序編寫HTML代碼下面是嵌入Hello.class代碼的HTML程序示例,文件名為Hello.html。如圖所示:運(yùn)行HTML代碼程序在瀏覽器中執(zhí)行HTML程序打開DOS窗口,輸入“appletviewerHello.html”命令,即使用Applet閱讀器(JDK的appletViewer)執(zhí)行小應(yīng)用程序建檔應(yīng)用程序javadoc使用SDK提供的javadoc.exe制作源文件類結(jié)構(gòu)的HTML格式文檔。開發(fā)者可直接從中查找到相關(guān)類以及相關(guān)類的方法、屬性變量。代碼程序中的說(shuō)明字段需要放在“/**”和“*/”之間,這樣Javadoc編輯器才可以識(shí)別這些說(shuō)明字段。

測(cè)試程序testNoteHello.Java。例1-3

/**這是一個(gè)有說(shuō)明的Java應(yīng)用程序*/

*publicclasstestNoteHello

*{

/**

*這是testNoteHello類的主函數(shù),他主要是輸出一句話。

*/

publicstaticvoidmain(stringarg[])

{

system.out.println(“這是一個(gè)有說(shuō)明的測(cè)試!”);

}//main()

}/**testNoteHello*/進(jìn)入

D:\java>工作目錄輸入javadoc–dNotedoc

testNoteHello.Java可以將字節(jié)碼反編譯為源碼,查詢?nèi)魏晤悾瑱z查類的方法。它操作的對(duì)象必須是類文件。進(jìn)入D:\java>工作目錄輸入javap

testNoteHello反匯編器javap

運(yùn)行javap命令演示結(jié)果當(dāng)選擇參數(shù)為“-c”時(shí),輸入命令:

javap-ctestHello

結(jié)果顯示基礎(chǔ)字節(jié)代碼的序列和方法清單.Java編程規(guī)范

源文件的命名規(guī)則:包名:包名是全小寫的名詞,中間可以由點(diǎn)分隔開。例如:java.awt.event

;

類名:首字母大寫,通常由多個(gè)單詞合成一個(gè)類名,要求每個(gè)單詞的首字母也要大寫。例如:classHelloWorld

;接口名:命名規(guī)則與類名相同。例如interfaceCollection;

方法名:往往由多個(gè)單詞合成,第一個(gè)單詞通常為動(dòng)詞,首字母小寫,中間的每個(gè)單詞的首字母都要大寫。例如:balanceAccount,isButtonPress

;變量名:全小寫,一般為名詞。例如:length;常量名:基本數(shù)據(jù)類型的常量名為全大寫,如果是由多個(gè)單詞構(gòu)成,可以用下劃線隔開。例如:intYEAR;intWEEK_OF_MONTH;Java應(yīng)用前景面向?qū)ο蟮膽?yīng)用開發(fā),包括面向?qū)ο蟮氖录枋觥⑻幚淼?;?jì)算過(guò)程的可視化、可操作化的軟件的開發(fā);動(dòng)態(tài)畫面的設(shè)計(jì),包括圖形圖像的調(diào)用;交互操作的設(shè)計(jì),包括選擇交互、定向交互、控制流程等;Internet的系統(tǒng)管理功能模塊的設(shè)計(jì),包括Web頁(yè)面的動(dòng)態(tài)設(shè)計(jì)、管理和交互操作設(shè)計(jì)等;Intranet(企業(yè)內(nèi)部網(wǎng))上的軟件開發(fā)(直接面向企業(yè)內(nèi)部用戶的軟件);與各類數(shù)據(jù)庫(kù)連接查詢的SQL語(yǔ)句實(shí)現(xiàn);其它應(yīng)用類型的程序。用Java語(yǔ)言開發(fā)的軟件可以具有可視化、可聽化、可操作化的,要它停就停,而這是在電影與電視播放過(guò)程中難以做到的。上機(jī)調(diào)試題安裝Java運(yùn)行環(huán)境編寫HelloWorld.java程序調(diào)試HelloWorld.java程序本講要點(diǎn)學(xué)習(xí)目標(biāo)掌握:

Java的基本數(shù)據(jù)類型及運(yùn)算符和表達(dá)式的使用。理解:Java標(biāo)識(shí)符、變量和常量的概念。重點(diǎn)掌握:熟練使用整型、浮點(diǎn)型、字符型常用的數(shù)據(jù)類型的定義,表示和引用。理解:各知識(shí)點(diǎn)的概念,并熟記Java的語(yǔ)法規(guī)范。授課課時(shí):Java標(biāo)識(shí)符、變量和常量2課時(shí)基本數(shù)據(jù)類型2課時(shí)運(yùn)算符和表達(dá)式2課時(shí)上機(jī)課時(shí):簡(jiǎn)單的輸入輸出2課時(shí)2.1簡(jiǎn)單數(shù)據(jù)類型

標(biāo)識(shí)符在程序設(shè)計(jì)語(yǔ)言中的每個(gè)元素(如變量、常量、方法、類和包等)需要有一個(gè)名字以標(biāo)識(shí)它的存在和唯一性,這個(gè)名子就是標(biāo)識(shí)符(identifier).標(biāo)識(shí)符的命名規(guī)則:必須以字母、下劃線(_)或或$開頭,后面可以是字母、下劃線、美元符號(hào)、數(shù)字(0~9)。標(biāo)識(shí)符不能包含運(yùn)算符,如+,-等。標(biāo)識(shí)符不能是關(guān)鍵字。如main,public,class,import等。標(biāo)識(shí)符不能是true、false和null。標(biāo)識(shí)符可有任意長(zhǎng)度。標(biāo)識(shí)符區(qū)分大小寫,如My與my是完全不同的兩個(gè)標(biāo)識(shí)符。要記憶??!關(guān)鍵字Java語(yǔ)言中的關(guān)鍵字均用小寫字母表示。分類:訪問控制:

private,protected,public;類、方法和變量修飾符:

abstract,class,extends,final,

implements,interface,

native,new,static,strictfp,synchronized,transient,volatile;程序控制語(yǔ)句:break,

continue,return,do,while,if,else,for,instanceof,switch,case,default;錯(cuò)誤處理:catch,finally,throw,throws,

try;包相關(guān):import,package;基本類型:boolean,byte,char,double,

float,int,long,short;變量引用:super,this,void;語(yǔ)法保留字:null,true,false;關(guān)鍵字goto和const是C++保留的關(guān)鍵字,在Java中不能使用。關(guān)鍵字注釋為增加程序的可讀性,便于日后維護(hù)及修改,需要為程序添加注釋(comment)。Java的注釋符有三種:行注釋符?!?/”。從//符號(hào)開始到此行的末尾結(jié)束,多用于解釋定義變量的含義和語(yǔ)句的作用。塊注釋符。“/*”和“*/”。注解內(nèi)容從/*開始,到*/結(jié)束。一般位于要解釋的類或方法前,多用于解釋整個(gè)源程序的目的和某個(gè)方法的作用,符號(hào)必須成對(duì)出現(xiàn),不可套用。文檔注釋符?!?**”和“*/”。注解內(nèi)容從/**開始,到*/結(jié)束,一般位于整個(gè)程序的最前面。常量常量是在程序運(yùn)行過(guò)程中其值始終保持不變的量。常量定義<final><數(shù)據(jù)類型><符號(hào)常量標(biāo)識(shí)符>=<常量值>例如:finalinta=12;finaldoublePi=3.1415;Java常用的整型常量、浮點(diǎn)常量說(shuō)明如下:

整型常量:

十進(jìn)制整數(shù),八進(jìn)制整數(shù),十六進(jìn)制整數(shù)。浮點(diǎn)型常量:十進(jìn)制數(shù)形式,科學(xué)計(jì)數(shù)法形式(例如:2.5E4(2.5*104)

)。字符型常量:用于表示單個(gè)字符,要求用單引號(hào)把字符括起來(lái)。字符串常量:用雙引號(hào)(“”)括起來(lái)的由0個(gè)或多個(gè)字符序列。布爾型常量:只有真(true)、假(true)兩種值。轉(zhuǎn)義字符轉(zhuǎn)義字符代表一些特殊字符。轉(zhuǎn)義字符主要通過(guò)在字符前加一個(gè)反斜杠“\”來(lái)實(shí)現(xiàn)。常用的轉(zhuǎn)義字符

轉(zhuǎn)義字符含

義轉(zhuǎn)義字符含

義'\b'退格'\a'響鈴'\t'水平制表符tab'\"'雙引號(hào)'\v'垂直制表符'\''單引號(hào)'\n'換行'\\'反斜線'\f'換頁(yè)'\ddd'用3位8進(jìn)制數(shù)表示字符'\r'回車'\uxxxx'用4位16進(jìn)制數(shù)表示字符常量變量變量是在程序運(yùn)行過(guò)程中其值可以被改變的量,通常用來(lái)記錄運(yùn)算中間結(jié)果或保存數(shù)據(jù)。變量包括變量名、變量值兩部分。變量必須先聲明后使用。聲明變量的格式如下:

數(shù)據(jù)類型變量名1[,變量名2,……];或:數(shù)據(jù)類型變量名1[=初值][,變量名2[=初值],…];例如:intk;//聲明一個(gè)存放整型且名是k的變量floatx,y;//聲明浮點(diǎn)型變量x,yStringstudentname=“ZhangSan”;

//聲明字符變量studentname,其初值為ZhangSandoublea=1.0,b=2.5;

//聲明變量a、b并分別賦值1.0、2.5例2-1:源程序名“ComputeArea.java”,計(jì)算半徑為10的圓的面積,并顯示結(jié)果。publicclassComputeArea

{

publicstaticvoidmain(String[]args)

{

finaldoublePI=3.14159;//常量

doublearea,r=10.0;//變量

area=PI*r*r;

System.out.println(“Theareaforthecircleof10is“+area);

}

}2.1簡(jiǎn)單數(shù)據(jù)類型2.1.6數(shù)據(jù)類型概述每個(gè)數(shù)據(jù)類型都有一個(gè)值域,或者叫做范圍。編譯器根據(jù)變量或常量的數(shù)據(jù)類型對(duì)其分配存儲(chǔ)空間。Java為數(shù)值、字符值和布爾值數(shù)據(jù)提供了幾種基本數(shù)據(jù)類型。Java語(yǔ)言的數(shù)據(jù)類型劃分如圖2-1。數(shù)據(jù)類型基本數(shù)據(jù)類型類class引用數(shù)據(jù)類型整數(shù)類型浮點(diǎn)類型字符類型char布爾類型boolean接口interface數(shù)組單精度浮點(diǎn)型float雙精度浮點(diǎn)型double字節(jié)型byte短整型short整型int長(zhǎng)整型long圖2-1Java語(yǔ)言的數(shù)據(jù)類型2.1簡(jiǎn)單數(shù)據(jù)類型1.數(shù)值數(shù)據(jù)類型

Java有六種數(shù)值類型:四種整型和兩種浮點(diǎn)型數(shù)據(jù)類型所占位數(shù)數(shù)的取值范圍byte8-27~27-1short16-215~215-1int32-231~231-1long64-263~263-1float32-3.4×1038~3.4E×1038(精度為6到7位有效數(shù)字)double64-1.7×10308~1.7×10308(精度為14到15位有效數(shù)字)2.1簡(jiǎn)單數(shù)據(jù)類型1

publicclassTypeMaxValue

2

{3

publicstaticvoidmain(Stringargs[])4

{//整數(shù)類型5

bytelargestByte=Byte.MAX_VALUE;//定義一個(gè)byte類型的6

shortlargestShort=Short.MAX_VALUE;//定義一個(gè)short類型的變量7

int

largestInteger=Integer.MAX_VALUE;//定義一個(gè)int類型的變8

longlargestLong=Long.MAX_VALUE;//定義long類型的變量9

floatlargestFloat=Float.MAX_VALUE;//定義一個(gè)float類型的變量10doublelargestDouble=Double.MAX_VALUE;//定義double類型變量11

//在屏幕上顯示對(duì)應(yīng)類型的最大值12

System.out.println("最大的byte值是:"+largestByte);13

System.out.println("最大的short值是:"+largestShort);14

System.out.println("最大的integer值是:"+largestInteger);15

System.out.println("最大的long值是:"+largestLong);【例2-2】源程序名“TypeMaxValue.java”,數(shù)值數(shù)據(jù)類型的最大值示例。2.1簡(jiǎn)單數(shù)據(jù)類型16

System.out.println("最大的float值是:"+largestFloat);17

System.out.println("最大的double值是:"+largestDouble);18

}19

}【運(yùn)行結(jié)果】【程序分析】第4-11句:Java中每種數(shù)據(jù)類型都封裝為一個(gè)類,通過(guò)類型類的MAX_VALUE方法找到各種數(shù)值數(shù)據(jù)類型的取值最大值。第12-18句:輸出各種數(shù)值數(shù)據(jù)類型的取值最大值。2.1簡(jiǎn)單數(shù)據(jù)類型2.字符數(shù)據(jù)類型

字符數(shù)據(jù)類型char用于表示單個(gè)字符。一個(gè)字符的值由單引號(hào)括起來(lái),如:charletter='A';//將字符A賦給了變量lettercharnumChar='4';//將數(shù)字4賦給了變量numChar注意:如果‘4’中的單引號(hào)去掉是非法的,因?yàn)椤癱harnumChar=4;”中,4是一個(gè)數(shù)值,不能賦給char型變量。2.1簡(jiǎn)單數(shù)據(jù)類型char型只表示一個(gè)字母,表示一串字符要用叫做String的數(shù)據(jù)結(jié)構(gòu)。如:

Stringmessage=“WelcometoJava!”;//字符串必須用雙引號(hào)括住。3.布爾數(shù)據(jù)類型布爾數(shù)據(jù)類型的值域包括兩個(gè)值:真(true)和假(false)。例如,下面一行代碼給變量doorOpen賦值為true,如:BooleandoorOpen=true;2.1簡(jiǎn)單數(shù)據(jù)類型4.數(shù)值類型轉(zhuǎn)換當(dāng)兩個(gè)類型不同的運(yùn)算對(duì)象進(jìn)行二元運(yùn)算時(shí),Java自動(dòng)把精度較低的類型轉(zhuǎn)換成另一個(gè)精度較高的類型。運(yùn)算中,不同類型的數(shù)據(jù)先轉(zhuǎn)化為同一類型,然后進(jìn)行運(yùn)算。

低----------------------------------------------->高byte,short—>int

—>long—>float—>double例:操作數(shù)1(為byte型

)+操作數(shù)2(為int型

)轉(zhuǎn)換類型如下:

操作數(shù)1(為int型

)+操作數(shù)2(為int型

)常用數(shù)值類型轉(zhuǎn)換的具體情況見表2-3所示。2.1簡(jiǎn)單數(shù)據(jù)類型操作數(shù)1類型操作數(shù)2類型轉(zhuǎn)換后的類型byte、short、charintint

byte、short、char、intlonglongbyte、short、char、int、longfloatfloatbyte、short、char、int、long、floatdoubledouble表2-3Java語(yǔ)言數(shù)據(jù)類型轉(zhuǎn)換如從高級(jí)轉(zhuǎn)換成低級(jí),則需要強(qiáng)制類型轉(zhuǎn)換,但會(huì)導(dǎo)致溢出或精度下降。如:inti=8;byteb=(byte)i;2.1簡(jiǎn)單數(shù)據(jù)類型【例2-3】源程序名“TypeTest.java”,數(shù)據(jù)類型轉(zhuǎn)換示例。

1publicclassTypeTest2{3publicstaticvoidmain(Stringargs[])4{5intc;6longd=6000;7floatf;8doubleg=123456789.987654321;9c=(int)d;10

f=(float)g;//導(dǎo)致精度的損失.11

System.out.println("c="+c);12

System.out.println("d="+d);13

System.out.println("f="+f);14

System.out.println("g="+g);15

}16

}2.1簡(jiǎn)單數(shù)據(jù)類型【運(yùn)行結(jié)果】

【程序分析】第9句:將long類型數(shù)據(jù)強(qiáng)制轉(zhuǎn)換為int類型,有些情況可能導(dǎo)致數(shù)據(jù)溢出。第10句:將double類型數(shù)據(jù)強(qiáng)制轉(zhuǎn)換為float類型,將導(dǎo)致精度的損失,通過(guò)運(yùn)行結(jié)果可以看出。所以,進(jìn)行數(shù)據(jù)類型的強(qiáng)制轉(zhuǎn)換時(shí)一定需要慎重。2.2運(yùn)算符與表達(dá)式

運(yùn)算符是表明作何種運(yùn)算的符號(hào)。操作數(shù)是被運(yùn)算的數(shù)據(jù)。表達(dá)式是由操作數(shù)和運(yùn)算符組成的式子。表達(dá)式的運(yùn)算結(jié)果稱為表達(dá)式的值。Java提供的運(yùn)算符,按操作數(shù)的數(shù)目來(lái)分,可有:(1)一元運(yùn)算符:需要一個(gè)操作數(shù)。++i,--i,+i,-i(2)二元運(yùn)算符:需要二個(gè)操作數(shù)。a+b,a-b,a>b(3)三元運(yùn)算符:需要三個(gè)操作數(shù)。

表達(dá)式1?表達(dá)式2:表達(dá)式3運(yùn)算符按功能劃分:有下面幾類:

算術(shù)運(yùn)算符

關(guān)系運(yùn)算符

邏輯運(yùn)算符

位運(yùn)算符

賦值運(yùn)算符

條件運(yùn)算符功能劃分:(1)算術(shù)運(yùn)算符數(shù)值類型的標(biāo)準(zhǔn)算術(shù)運(yùn)算符包括加號(hào)(+)、減號(hào)(-)、乘號(hào)(*)、除號(hào)(/)和求余號(hào)(%)。例如下面的代碼:

bytei1=20%6;//i1的結(jié)果是2

shorti2=100-36;//i2的結(jié)果是64

inti3=21*3;//i3的結(jié)果是63

doublei4=1.0/2.0;//i4的結(jié)果是0.5

inti5=1/2;//i5的結(jié)果是0注意:++和--,有前置和后置兩種寫法。前置(++x,--x)和后置(x++,x--)是不同的。

例如:inti=10;intn;n=10*i++在此例中,i++是在計(jì)算整個(gè)表達(dá)式(10*i++)后計(jì)算的。若將i++換為++i,則++i在整個(gè)表達(dá)式計(jì)算之前進(jìn)行計(jì)算。這樣,前一種情況下n是100,而后一種情況下n是110。這兩種情況下i都增加1。另例:doublex=1.0;doubley=5.0;doublez=x--+(++y);三行都執(zhí)行完后,y變?yōu)?.0,z變?yōu)?.0,而x變?yōu)?.0。

(2)關(guān)系運(yùn)算符關(guān)系運(yùn)算又稱比較運(yùn)算,用來(lái)比較兩個(gè)同類型數(shù)據(jù)的大小。關(guān)系運(yùn)算符都是雙目運(yùn)算符。關(guān)系運(yùn)算的結(jié)果是布爾值,即true(真)或false(假)。表2-4比較運(yùn)算符運(yùn)算符名稱例結(jié)果<小于1<3true<=小于等于1<=3true>大于1>2false>=大于等于1>=2false==等于1==2false(3)邏輯運(yùn)算符邏輯運(yùn)算又稱布爾運(yùn)算,是對(duì)布爾值進(jìn)行運(yùn)算,其運(yùn)算結(jié)果仍為布爾值。常用的邏輯運(yùn)算符如表2-5所示。

表2-5邏輯運(yùn)算符運(yùn)算符名稱舉例描述!非!x對(duì)x進(jìn)行取反運(yùn)算。例如,若x為true,結(jié)果為false&&與x&&y若x和y都為true,結(jié)果才為true||或x||y若x和y都為false,結(jié)果才為false^異或x^y假設(shè)變量x=1和y=2,則(x>1)^(y==2)的結(jié)果為true。(4)位運(yùn)算符

位運(yùn)算符用于對(duì)二進(jìn)制位(bit)進(jìn)行運(yùn)算。位運(yùn)算符的操作數(shù)和結(jié)果都是整數(shù)。常見的位運(yùn)算符如表2-6所示。表2-6位運(yùn)算符運(yùn)算符名稱應(yīng)用舉例運(yùn)算規(guī)則~按位取反~x對(duì)x每個(gè)二進(jìn)制位取反&按位與x&y對(duì)x,y每個(gè)對(duì)應(yīng)的二進(jìn)制位做與運(yùn)算|按位或x|y對(duì)x,y每個(gè)對(duì)應(yīng)的二進(jìn)制位做或運(yùn)算^按位異或x^y對(duì)x,y每個(gè)對(duì)應(yīng)的二進(jìn)制位做異或運(yùn)算<<按位左移x<<a將x各二進(jìn)制位左移a位>>按位右移x>>a將x各二進(jìn)制位右移a位>>>不帶符號(hào)的按位右移x>>>a將x各二進(jìn)制位右移a位,左面的空位要補(bǔ)0(5)賦值運(yùn)算符賦值運(yùn)算符用于給變量或?qū)ο筚x值。賦值運(yùn)算符分為基本賦值運(yùn)算符和復(fù)合賦值運(yùn)算符兩類。1)基本賦值運(yùn)算符變量或?qū)ο?表達(dá)式基本賦值運(yùn)算符“=”的作用是,把右邊表達(dá)式的值賦給左邊的變量或?qū)ο?。例如j=k=i+2的運(yùn)算順序是,先將i加2的值賦給k,再把k的值賦給j。下面是基本賦值運(yùn)算符的例子:x=12.45;y=2*x+1;i=(int)x2)復(fù)合賦值運(yùn)算符基本賦值運(yùn)算符前面加上其他運(yùn)算符后構(gòu)成的賦值運(yùn)算符。運(yùn)算符名稱舉例功能+=加賦值運(yùn)算符a+=ba=a+b-=減賦值運(yùn)算符a-=ba=a-b*=乘賦值運(yùn)算符a*=ba=a*b/=除賦值運(yùn)算符a/=ba=a/b%=取余賦值運(yùn)算符a%=ba=a%b&=位與賦值運(yùn)算符a&=ba=a&b|=位或賦值運(yùn)算符a|=ba=a|b^=位異或賦值運(yùn)算符a^=ba=a^b<<=算術(shù)左移賦值運(yùn)算符a<<=ba=a<<b>>=算術(shù)右移賦值運(yùn)算符a>>=ba=a>>b

復(fù)合賦值運(yùn)算符

2.表達(dá)式表達(dá)式是由操作數(shù)和運(yùn)算符按一定的語(yǔ)法形式組成的符號(hào)序列。最簡(jiǎn)單的表達(dá)式是一個(gè)常量或一個(gè)變量,含有兩個(gè)或兩以上的運(yùn)算符時(shí),就稱為復(fù)雜表達(dá)式例如:簡(jiǎn)單的表達(dá)式:x3.14num1+num2 復(fù)雜的表達(dá)式:a*(b+c)+d x<=(y+z)x&&y||z在復(fù)雜表達(dá)式中運(yùn)算是按照運(yùn)算符的優(yōu)先順序從高到低進(jìn)行,同級(jí)運(yùn)算符從左到右進(jìn)行。例如:2+3>5-4,算術(shù)運(yùn)算符的優(yōu)先級(jí)高于關(guān)系運(yùn)算符,要先計(jì)算加法和減法,然后再做比較計(jì)算。表2-8列出了Java中所有運(yùn)算符的優(yōu)先級(jí)順序。表2-8運(yùn)算符的優(yōu)先級(jí)

例:a>b&&c<d||e==f的運(yùn)算次序?yàn)?((a>b)&&(c<d))||(e==f)優(yōu)先級(jí)別運(yùn)算符最高優(yōu)先級(jí)類型轉(zhuǎn)換

++和--?。ǚ牵?,/,%+,-<,<=,>,>===,!=^&&||最低優(yōu)先級(jí)=,+=,-=,*=,/=,%=2.3簡(jiǎn)單的輸入輸出2.3.1輸出System.out對(duì)象包含著多個(gè)向顯示器輸出數(shù)據(jù)的方法,System.out對(duì)象中包含的最常用的方法是:

println()方法:向顯示器輸出一行文本并換行。

print()方法:向顯示器輸出一行文本不換行?!綞g2-4】使用各種符號(hào)和字母繪制一幅圖畫,僅用輸出語(yǔ)句1publicclassBasketball2{3publicstaticvoidmain(String

args[])4{5System.out.println("|");6System.out.println("|");7System.out.println("|_o\\");8System.out.println("|W\\O");9System.out.println("||\\_|\\");10System.out.println("|/-\\\\O");11System.out.println("|/\\|");12System.out.println("||");13System.out.println("|/|");14System.out.println("||\\");15System.out.println("---------------------------------");16}17}

【運(yùn)行結(jié)果】【程序分析】通過(guò)使用System.out.println()方法進(jìn)行換行,可以模擬展示出一副圖畫2.3.2輸入使用System.in對(duì)象,結(jié)合異常處理格式使用。2.4本章小結(jié)標(biāo)識(shí)符用于命名編程實(shí)體,如變量、常量、方法、類和包。變量是表示數(shù)據(jù)的符號(hào),變量值在賦值語(yǔ)句中可以改變。所有變量在使用前必須用標(biāo)識(shí)符和類型說(shuō)明,引用變量前必須賦以初值。常量是表示程序中一直不變的量的符號(hào),不能給常量賦一個(gè)新值。Java提供四種整型(byte、short、int、long)表示四種不同范圍的整數(shù),提供兩種浮點(diǎn)型(float、double)表示兩種不同范圍的浮點(diǎn)數(shù)。字符型(char)表示單個(gè)字符,布爾型(boolean)有true或false兩個(gè)值。2.4本章小結(jié)Java提供數(shù)值操作的運(yùn)算符:+(加法)、-(減法)、*(乘法)、/(除法)和%(求余)。整數(shù)除法(/)得整數(shù)解,求余運(yùn)算(%)得除法的余數(shù)。上機(jī)調(diào)試題1.編寫程序,從鍵盤輸入圓的半徑,求圓的周長(zhǎng)和面積并輸出2.編寫程序,從鍵盤輸入平行四邊形的底和高,求平行四邊形的面積并輸出本講要點(diǎn)學(xué)習(xí)目標(biāo)掌握:流程控制語(yǔ)句的使用方法。重點(diǎn)掌握:能熟練使用三種常用的控制語(yǔ)句。理解:各知識(shí)點(diǎn)的概念,并熟記Java的語(yǔ)法規(guī)范。難點(diǎn)理解:循環(huán)語(yǔ)句的執(zhí)行過(guò)程。授課課時(shí):

Java程序的選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)2課時(shí)

Java程序的跳轉(zhuǎn)結(jié)構(gòu)2課時(shí)上機(jī)課時(shí):控制結(jié)構(gòu)綜合實(shí)現(xiàn)2課時(shí)引入問題編一程序求1-100的和并輸出。1如何實(shí)現(xiàn)?2用循環(huán)語(yǔ)句實(shí)現(xiàn)3寫出C語(yǔ)言的實(shí)現(xiàn)代碼4C循環(huán)語(yǔ)句由哪幾個(gè)部分組成?Java語(yǔ)法基礎(chǔ)與流程控制3.1選擇語(yǔ)句流程控制語(yǔ)句用于控制程序中各語(yǔ)句的執(zhí)行順序。Java提供的流程控制語(yǔ)句有選擇語(yǔ)句、循環(huán)語(yǔ)句、跳移語(yǔ)句等。

3.1.1簡(jiǎn)單if條件語(yǔ)句簡(jiǎn)單if條件語(yǔ)句只在條件為真時(shí)執(zhí)行,如圖3-2if語(yǔ)句流程圖所示其語(yǔ)法如下:if(條件){

語(yǔ)句(塊);}圖3-2if語(yǔ)句流程圖條件語(yǔ)句(塊)TrueFalse3.1選擇語(yǔ)句若布爾表達(dá)式的值為真,則執(zhí)行塊內(nèi)語(yǔ)句。if(score>=60)

system.out.println(“恭喜你,及格了!”);if(score<60)

system.out.println(“你沒有及格”);注意:(1)在if子句末不能加分號(hào)(;)(2)在if語(yǔ)句中,布爾表達(dá)式總應(yīng)該用括號(hào)括住。(3)如果塊中只有一條語(yǔ)句,花括號(hào)可以省略。但建議使用花括號(hào)以避免編程錯(cuò)誤。3.1選擇語(yǔ)句3.1.2簡(jiǎn)單if-else條件語(yǔ)句當(dāng)指定條件為真時(shí)簡(jiǎn)單if語(yǔ)句執(zhí)行一個(gè)操作,當(dāng)條件為假時(shí)什么也不做。在條件為假時(shí)選擇一個(gè)操作,則使用if-else語(yǔ)句來(lái)指定不同的操作,如圖所示。下面是這種語(yǔ)句的語(yǔ)法:if(布爾表達(dá)式){布爾表達(dá)式為真時(shí)執(zhí)行的語(yǔ)句1(塊);}else{布爾表達(dá)式為假時(shí)執(zhí)行的語(yǔ)句2(塊);}圖2-3if-else語(yǔ)句流程圖條件語(yǔ)句2(塊)TrueFalse語(yǔ)句1(塊)3.1選擇語(yǔ)句若布爾表達(dá)式計(jì)算為真,執(zhí)行語(yǔ)句(塊)(true時(shí)執(zhí)行),否則,執(zhí)行語(yǔ)句(塊)(false時(shí)執(zhí)行)。if(score>=60){

System.out.println(“你及格了”);}else{

System.out.println(“你沒有及格”);}3.1選擇語(yǔ)句3.1.3if語(yǔ)句的嵌套if或if…else語(yǔ)句中的語(yǔ)句可以是任意合法的Java語(yǔ)句—包括其他if或if-else語(yǔ)句。內(nèi)層的if語(yǔ)句稱為嵌套在外層if語(yǔ)句中。內(nèi)層if語(yǔ)句又可以包含另一個(gè)if語(yǔ)句,事實(shí)上,嵌套的深度沒有限制。if(Score<60)

System.out.println("不及格");else

if(Score<80)

System.out.println("及格");elseif(Score<90)

System.out.println("良好");else

System.out.println("優(yōu)秀:);3.1選擇語(yǔ)句前面的if語(yǔ)句與下述語(yǔ)句等價(jià):if(score<60)

System.out.println("不及格");elseif(score<80)

System.out.println("及格");elseif(score<90)

System.out.println("良好");else

System.out.println("優(yōu)秀");多重選擇if語(yǔ)句可以避免深層縮進(jìn),并使程序容易閱讀。注意:else子句與同一塊中離得最近的if子句相匹配。3.1選擇語(yǔ)句3.1.4switch語(yǔ)句switch語(yǔ)句根據(jù)表達(dá)式的結(jié)果來(lái)執(zhí)行多個(gè)可能操作中的一個(gè),它的語(yǔ)法形式如下:switch(表達(dá)式){case常量1:語(yǔ)句1;[break;]case常量2:語(yǔ)句2;[break;]…

case常量n:語(yǔ)句n;[break;][default:缺省處理語(yǔ)句;break;]}switch語(yǔ)句中的每個(gè)“case常量:”稱為一個(gè)case子句,代表一個(gè)case分支的入口。圖2-4switch語(yǔ)句流程圖3.1選擇語(yǔ)句在Java中,可以用switch語(yǔ)句對(duì)操作進(jìn)行分組,例如:

switch(Score){case1:System.out.println("優(yōu)秀");break;case2:System.out.println("優(yōu)良");break;case3:System.out.println("良好");break;case4:System.out.println("及格");break;case5:System.out.println("不及格");break;default:break;}switch要檢查變量Score的值,它的每個(gè)值是特定值用“casevalue:”來(lái)表示,或者是使用缺省從句用“default:”來(lái)表示。注意:程序中使用了關(guān)鍵字break,它的作用就是在得到與某個(gè)特定值相匹配之后執(zhí)行代碼完成的時(shí)候跳出switch條件。3.2循環(huán)語(yǔ)句Java的3種循環(huán)語(yǔ)句有while、do-while和for循環(huán)語(yǔ)句。1.while循環(huán)它的執(zhí)行過(guò)程如圖3-5所示,其的語(yǔ)法如下:while(條件){循環(huán)體}說(shuō)明:循環(huán)條件是一個(gè)布爾表達(dá)式,它必須放在括號(hào)中。在循環(huán)體執(zhí)行前一定先計(jì)算循環(huán)條件,若條件為真,執(zhí)行循環(huán)體,若條件為假,整個(gè)循環(huán)中斷并且程序控制轉(zhuǎn)移到while循環(huán)后的語(yǔ)句。圖3-5while語(yǔ)句流程圖條件循環(huán)體falsetrue3.2循環(huán)語(yǔ)句例如用while循環(huán)打印“Welcome!”一百次。inti=0;while(i<100){

System.out.println(“Welcome!”);i++;}i的初值為0。循環(huán)檢查(i<100)是否為真,若真,則執(zhí)行循環(huán)體,打印消息“Welcome!”并使i加1?!纠?-5】源程序TestWhile.java,讀入一系列整數(shù)并計(jì)算其和,輸入0則表示輸入結(jié)束。3.2循環(huán)語(yǔ)句【運(yùn)行結(jié)果】【程序分析】第6句:執(zhí)行readInt時(shí),計(jì)算機(jī)開始等待鍵盤輸入,直到按下回車鍵為止。第9~14句:是while語(yǔ)句的應(yīng)用。其中第11~13句是循環(huán)體語(yǔ)句。第12句:while循環(huán)中,若data非0,則將它加到總和上并讀取下一個(gè)輸入數(shù)據(jù)。若data為0,不執(zhí)行循環(huán)體并且while循環(huán)終止。特別地,若第一個(gè)輸入值為0,則不執(zhí)行循環(huán)體,結(jié)果sum為0。圖2-6do語(yǔ)句流程圖條件循環(huán)體falsetrue注意:要保證循環(huán)條件最終可以變?yōu)榧伲员愠绦蚰軌蚪Y(jié)束。3.2循環(huán)語(yǔ)句2.do循環(huán)語(yǔ)句do循環(huán)其實(shí)就是while循環(huán)的變體。它的執(zhí)行過(guò)程如圖3-6所示,其的語(yǔ)法如下:do{//循環(huán)體;}while(條件);注意:在do循環(huán)中while條件判斷之后需要添加一個(gè)分號(hào)。圖3-6do語(yǔ)句流程圖條件循環(huán)體falsetrue3.2循環(huán)語(yǔ)句do-while的循環(huán)流程是和while循環(huán)不一樣的,二者的主要差別在于循環(huán)條件和循環(huán)體的計(jì)算順序不同。例如,可將例3-2改寫如下:publicclassTestDo{publicstaticvoidmain(String[]args)

{

intdata;

intsum=0;

do{data=Myinput.readInt();sum+=data;}while(data!=0);

System.out.println(“Thesumis”+sum);}}3.2循環(huán)語(yǔ)句3.for循環(huán)語(yǔ)句for循環(huán)的執(zhí)行過(guò)程如圖3-7所示.for(循環(huán)變量初始化;循環(huán)條件;調(diào)整語(yǔ)句){循環(huán)體;}for循環(huán)語(yǔ)句以關(guān)鍵字for開始,然后是由括號(hào)括住的三個(gè)控制元素,循環(huán)體括在大括號(hào)內(nèi)??刂圃赜煞痔?hào)分開,控制循環(huán)體的執(zhí)行次數(shù)和終止條件。圖3-7for語(yǔ)句流程圖循環(huán)體語(yǔ)句調(diào)整語(yǔ)句循環(huán)變量初始化條件truefalse3.2循環(huán)語(yǔ)句下面的for循環(huán)可以打印"Welcome!"100次。inti;for(i=0;i<100;i++){System.out.println("Welcome!");}第一個(gè)元素為i=0,初始化循環(huán)變量。循環(huán)變量跟蹤循環(huán)體的執(zhí)行次數(shù),調(diào)整語(yǔ)句修改它的值。第二個(gè)元素為i〈100,是布爾表達(dá)式,用作循環(huán)條件。第三個(gè)元素是調(diào)整控制變量的語(yǔ)句,循環(huán)變量的值最終必須使循環(huán)條件變?yōu)榧?。另外,循環(huán)變量也可以在for循環(huán)中進(jìn)行說(shuō)明和初始化。上例還可寫成下列語(yǔ)句:for(inti=0;i<100;i++){

System.out.println("Welcome!");}3.2循環(huán)語(yǔ)句【例3-6】源程序TestSum.java,使用for循環(huán)計(jì)算從1到100的數(shù)列的和。1//本程序利用for循環(huán)計(jì)算1到100的和2publicclassTestSum3{4publicstaticvoidmain(String[]args)5{6intsum=0;7for(inti=1;i<=100;i++)8{9sum+=i;10}11System.out.println("Thesumis"+sum);12}13}3.2循環(huán)語(yǔ)句【運(yùn)行結(jié)果】【程序分析】第7~10句組成的for循環(huán),變量i從1開始,每次增加1,當(dāng)i大于100時(shí)循環(huán)終止。3.2循環(huán)語(yǔ)句【例3-7】源程序TestMulTable.java,使用嵌套的for循環(huán)打印九九乘法表。1//本程序打印九九乘法表2publicclassTestMulTable3{4publicstaticvoidmain(String[]args)5{6System.out.print("");7for(intj=1;j<=9;j++)8System.out.print(""+j);9System.out.println("");10for(inti=1;i<=9;i++)11{12System.out.print(i+"");13for(intj=1;j<=i;j++)14{15if(i*j<10)16System.out.print(""+i*j);17else18System.out.print(""+i*j);19}20System.out.println();21}22}23}3.2循環(huán)語(yǔ)句【運(yùn)行結(jié)果】【程序分析】第7~9句組成的第一個(gè)循環(huán)顯示數(shù)1到9;第10句~21句是一個(gè)嵌套的for循環(huán),對(duì)每個(gè)外循環(huán)的循環(huán)變量i,內(nèi)循環(huán)的循環(huán)變量j都要逐個(gè)取1,2,...,9,并顯示出i*j的值;第15~18句的if語(yǔ)句使結(jié)果右對(duì)齊。1-100求和的Java實(shí)現(xiàn)1使用while語(yǔ)句intcount=1;intsum=0;while(count<=100){ sum+=count; count++;}3使用do…while語(yǔ)句intcount=1;intsum=0;do{ sum+=count; count++;}while(count<=100);2使用for語(yǔ)句intsum=0,count;for(intcount=0;count<=100;count++){sum+=count;}①找出三種語(yǔ)句形式中的四個(gè)組成部分?②比較三種循環(huán)語(yǔ)句的差異。將循環(huán)初始值count設(shè)為101,觀察其sum的值。上機(jī)驗(yàn)證三段代碼比較三種循環(huán)語(yǔ)句while語(yǔ)句、for語(yǔ)句是當(dāng)型循環(huán)結(jié)構(gòu)。它們的含義是當(dāng)循環(huán)條件滿足時(shí),執(zhí)行循環(huán)體。當(dāng)循環(huán)條件不滿足時(shí)終止循環(huán)。若循環(huán)初始條件不滿足,則循環(huán)體一次都不被執(zhí)行。do…while語(yǔ)句是直到型循環(huán)結(jié)構(gòu),它的含義是執(zhí)行循環(huán)體,直到循環(huán)條件不滿足時(shí)結(jié)束循環(huán)。無(wú)論循環(huán)條件是否滿足,循環(huán)體都會(huì)被執(zhí)行一次。break語(yǔ)句break語(yǔ)句的作用是終止包含break語(yǔ)句的程序塊,其語(yǔ)法格式為:

break[label];break語(yǔ)句有兩種用法:(1)不帶標(biāo)號(hào)的break語(yǔ)句??捎迷趕witch、while、for和do-while循環(huán)語(yǔ)句中,用來(lái)終止開關(guān)語(yǔ)句和循環(huán)語(yǔ)句。(2)帶標(biāo)號(hào)的break語(yǔ)句。用在多重循環(huán)語(yǔ)句中,可從內(nèi)層循環(huán)中終止外層循環(huán),將要終止的外層循環(huán)語(yǔ)句需用標(biāo)號(hào)標(biāo)識(shí)。注意與C語(yǔ)言有何不同?3.3跳轉(zhuǎn)語(yǔ)句3.3跳轉(zhuǎn)語(yǔ)句例如:下面break語(yǔ)句中斷內(nèi)層循環(huán)并把控制立即轉(zhuǎn)移到外層循環(huán)后的語(yǔ)句。outer:for(inti=1;i<10;i++){inner:for(intj=1;j<10;j++);{if(i*j>50)breakouter;

System.out.println(i*j);}}如果把上述語(yǔ)句中的breakouter換成break,則break語(yǔ)句終止內(nèi)層循環(huán),仍然留在外層循環(huán)中。如果想退出外循環(huán),就要使用帶標(biāo)號(hào)的。3.3跳轉(zhuǎn)語(yǔ)句【例3-8】源程序TestBreak.java,測(cè)試break語(yǔ)句對(duì)程序結(jié)果的影響。1//本程序測(cè)試break語(yǔ)句2publicclassTestBreak3{4publicstaticvoidmain(String[]args)5{6intsum=0;7intitem=0;8while(item<5)9{10item++;11sum+=item;12if(sum>=6)break;13}14System.out.println("Thesumis"+sum);15}16}3.3跳轉(zhuǎn)語(yǔ)句【運(yùn)行結(jié)果】【程序分析】第8~13句的while循環(huán)中,如果不用12行的if語(yǔ)句,本程序計(jì)算從1到5的和。如果有了if語(yǔ)句,總和大于等于6時(shí)循環(huán)終止。

continue語(yǔ)句只能用在循環(huán)中,它的作用是終止本次循環(huán),執(zhí)行下一次循環(huán)。語(yǔ)法格式如下:

continue[label];continue語(yǔ)句有帶標(biāo)號(hào)和不帶標(biāo)號(hào)兩種形式。(1)不帶標(biāo)號(hào)的continue語(yǔ)句在while或do–while語(yǔ)句中使程序流程直接跳轉(zhuǎn)到循環(huán)條件的判斷處,在for語(yǔ)句中則直接計(jì)算迭代部分(iteration)的值,然后再根據(jù)循環(huán)條件決定是否繼續(xù)循環(huán)。(2)帶標(biāo)號(hào)的continue語(yǔ)句,可以終止內(nèi)循環(huán),直接跳到外層循環(huán)處執(zhí)行其下一輪循環(huán),這里外層循環(huán)處要用標(biāo)號(hào)標(biāo)識(shí)。

與C語(yǔ)言有何不同?3.3跳轉(zhuǎn)語(yǔ)句3.3跳轉(zhuǎn)語(yǔ)句2.continue語(yǔ)句continue語(yǔ)句用來(lái)結(jié)束本次循環(huán),跳過(guò)循環(huán)體中下面尚未執(zhí)行的語(yǔ)句,接著進(jìn)行終止條件的判斷,以決定是否繼續(xù)循環(huán)?!纠?-9】源程序“TestContinue.java”,測(cè)試continue語(yǔ)句。1//本程序測(cè)試continue語(yǔ)句3.3跳轉(zhuǎn)語(yǔ)句2publicclassTestContinue3{4publicstaticvoidmain(String[]args)5{6intsum=0;7inti=0;8while(i<5)9{10i++;11if(i==2)continue;12sum+=i;13}14System.out.println("Thesumis"+sum);15}16}3.3跳轉(zhuǎn)語(yǔ)句【運(yùn)行結(jié)果】【程序分析】第8~13句的while循環(huán)中,continue語(yǔ)句終止當(dāng)前迭代,當(dāng)i變?yōu)?時(shí)不再執(zhí)行循環(huán)體的剩余語(yǔ)句,即不加到sum中。如果沒有if語(yǔ)句,所有的項(xiàng)都加到sum中,包括i=2。標(biāo)號(hào)語(yǔ)句lable

標(biāo)號(hào)是一個(gè)標(biāo)識(shí)符,用于給某程序塊一個(gè)名字。格式如下:

label:{

………

}

通常與break、continue語(yǔ)句一起使用,實(shí)現(xiàn)程序的跳轉(zhuǎn)。

3.3跳轉(zhuǎn)語(yǔ)句3.3跳轉(zhuǎn)語(yǔ)句

return語(yǔ)句的功能是從當(dāng)前方法中退出,并返回到調(diào)用該方法的語(yǔ)句處繼續(xù)執(zhí)行程序,同時(shí)將方法中的運(yùn)行結(jié)果也帶回到調(diào)用方法中。它的語(yǔ)法格式如下:

return[expression];或

return([expression]);

其中expression為方法運(yùn)行的結(jié)果,要返回到調(diào)用方法中的。注意,如果一個(gè)方法的返回值類型定義為void,則方法體中不一定要有return語(yǔ)句,方法執(zhí)行完后,自動(dòng)返回到調(diào)用處。

3.4本章小結(jié)While循環(huán)先檢查循環(huán)條件。若條件為true,執(zhí)行循環(huán)體,若為false,循環(huán)結(jié)束。Do循環(huán)先執(zhí)行循環(huán)體,后檢查循環(huán)條件,以確定繼續(xù)還是終止。由于while循環(huán)和do循環(huán)包含依賴循環(huán)體的循環(huán)條件,所以重復(fù)的次數(shù)由循環(huán)體決定。因此,while循環(huán)和do循環(huán)常用于不確定循環(huán)次數(shù)的情況。for循環(huán)一般用于預(yù)知執(zhí)行次數(shù)的循環(huán),執(zhí)行次數(shù)不是由循環(huán)體確定的。循環(huán)控制由帶初始值的控制變量、循環(huán)條件和調(diào)整語(yǔ)句組成。上機(jī)調(diào)試題1.編寫程序,對(duì)給定3個(gè)整數(shù)按照從大到小的順序排列2.編寫程序,輸入3個(gè)正數(shù),判斷是否構(gòu)成一個(gè)三角形。本講要點(diǎn)學(xué)習(xí)目標(biāo)掌握:圖形用戶界面實(shí)現(xiàn)的基本原理和方法。掌握:Java語(yǔ)言中圖形用戶界面程序的編寫。了解:Java語(yǔ)言中圖形用戶界面的構(gòu)造與設(shè)計(jì)。重點(diǎn)掌握:常用組件和布局管理的使用方法。掌握:Java的事件處理。難點(diǎn)圖形用戶界面中各控件的熟練使用。授課課時(shí):圖形用戶界面實(shí)現(xiàn)的基本原理和布局管理器

2課時(shí)Java的事件處理和常用組件

2課時(shí)上機(jī)課時(shí):圖形用戶界面中各控件的熟練使用 2課時(shí)抽象窗口工具包AWT簡(jiǎn)介

AWT是API為Java程序提供的建立圖形用戶界面GUI的工具集,AWT可用于Java的applet和applications中。

AWT圖形用戶界面設(shè)計(jì)主要類間的關(guān)系java.lang.objectAWTEventFontGraphicsComponentMenuComponent布局管理器ButtonLabelChechboxContainerListChoiceCanvasTextFieldPanelWindowsScrollPaneAppletFrameDialog

AWT類

組件(Component)Component類是許多組件類的父類,是一個(gè)封裝了組件通用的方法和屬性的抽象類。容器(Container)Container類是Component類的子類。容器本身也是一個(gè)組件,具有組件的所有性質(zhì),但是它的主要功能是容納其它組件和容器。面板(Panel)Panel類是Container類的一個(gè)具體的子類。當(dāng)屏幕輸出直接傳遞給一個(gè)小應(yīng)用程序時(shí),它將在一個(gè)Panel對(duì)象的表面被畫出。一個(gè)Panel對(duì)象是一個(gè)不包含標(biāo)題欄、菜單欄以及邊框的窗口。AWT類窗口(Window)窗口類產(chǎn)生一個(gè)頂級(jí)窗口(Window)。頂級(jí)窗口不包含在任何別的對(duì)象中,它直接出現(xiàn)在桌面上??蚣埽‵rame)Frame類封裝了窗口通常所需要的一切組件,它是Window類的子類,并且擁有標(biāo)題欄、菜單欄、邊框以及可以調(diào)整大小的角。畫布(Canvas)畫布不是小應(yīng)用程序和frame窗口的層次結(jié)構(gòu)的一部分,Canvas類封裝了一個(gè)可以用來(lái)繪制的空白窗口。列表按鈕菜單container另一個(gè)窗口窗口,對(duì)話框包含構(gòu)件的構(gòu)件----構(gòu)件容器(container)containerContainerWindowPanelComponentFrameDialogFileDialogApplet包含構(gòu)件的構(gòu)件----構(gòu)件容器(container)ButtonMenuCheckboxTextfield事件的傳遞當(dāng)動(dòng)作發(fā)生在按鈕上時(shí),首先看按鈕這個(gè)類有沒有action方法,如果沒有則看包含按鈕的容器類(即panel)有沒有action方法,如果沒有事件就傳遞窗口,如果沒有就傳遞給component的通用處理方法,如果程序中沒有定義任何action方法,實(shí)際上事件最終不被處理窗口按鈕panel事件的傳遞窗口buttonpanel按鈕的監(jiān)聽器窗口獲面板的監(jiān)聽器事件處理概述

事件處理就是對(duì)按鈕單擊、鼠標(biāo)移動(dòng)等情況作出反應(yīng)的過(guò)程。在事件處理的過(guò)程中,主要涉及三類對(duì)象:事件(Event)就是用戶對(duì)圖形界面操作的描述,以類的形式出現(xiàn),如鍵盤操作對(duì)應(yīng)的事件類就是KeyEvent。事件源(EventSource)就是事件發(fā)生的場(chǎng)所,通常就是各個(gè)組件,例如按鈕Button。事件處理者(Eventhandler)就是接收事件對(duì)象并對(duì)其進(jìn)行處理的對(duì)象。

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論