JAVA基本知識(shí)學(xué)習(xí)(零基礎(chǔ)哦)_第1頁(yè)
JAVA基本知識(shí)學(xué)習(xí)(零基礎(chǔ)哦)_第2頁(yè)
JAVA基本知識(shí)學(xué)習(xí)(零基礎(chǔ)哦)_第3頁(yè)
JAVA基本知識(shí)學(xué)習(xí)(零基礎(chǔ)哦)_第4頁(yè)
JAVA基本知識(shí)學(xué)習(xí)(零基礎(chǔ)哦)_第5頁(yè)
已閱讀5頁(yè),還剩180頁(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)介

1、JAVA基礎(chǔ)基礎(chǔ)教師自我介紹v教師姓名:教師姓名:q( (請(qǐng)進(jìn)行自我介紹請(qǐng)進(jìn)行自我介紹 ) )字體黑體、字號(hào)24、色白字體華文中宋、字號(hào)根據(jù)內(nèi)容20-32均可、色黑課程概述課程概述vJava開(kāi)發(fā)環(huán)境介紹及編程入門(mén)v標(biāo)示符、關(guān)鍵字及數(shù)據(jù)類(lèi)型v表達(dá)式及流程控制v數(shù)組v常用數(shù)據(jù)結(jié)構(gòu)及算法v面向?qū)ο缶幊蘋(píng)OPv封裝、繼承、多態(tài)v異常處理Exception課程目標(biāo)課程目標(biāo)v掌握程序設(shè)計(jì)語(yǔ)言開(kāi)發(fā)的一般步驟v編譯并運(yùn)行Java應(yīng)用程序 v理解并使用Java的在線幫助文檔 v理解Java語(yǔ)言的語(yǔ)法元素和結(jié)構(gòu)特點(diǎn) v理解面向?qū)ο蟪绦蛟O(shè)計(jì)的一般特性,并且能使用這些特性 v理解并使用Java異常處理機(jī)制程序語(yǔ)言發(fā)展

2、歷程程序語(yǔ)言發(fā)展歷程v機(jī)器語(yǔ)言 二進(jìn)制機(jī)器代碼,不便理解,不好記憶,與硬件平臺(tái)相關(guān),不具有可移植性。v匯編語(yǔ)言 用助記符號(hào)來(lái)描述,與機(jī)器代碼一一對(duì)應(yīng),能夠理解,但同樣不可移植。v高級(jí)語(yǔ)言按自然語(yǔ)言的語(yǔ)法風(fēng)格書(shū)寫(xiě)程序,方便理解,在原代碼的層次上可以實(shí)現(xiàn)跨平臺(tái)移植。10001001 11100101mov dptr,#2000 if(ab) max=a;else max=b;高級(jí)語(yǔ)言開(kāi)發(fā)過(guò)程高級(jí)語(yǔ)言開(kāi)發(fā)過(guò)程編輯原代碼 編譯 執(zhí)行JAVA起源起源vStanford University NetworkvJAVA名稱(chēng)的起源v官網(wǎng):http:/ JAVA創(chuàng)始人創(chuàng)始人vJames Gosling現(xiàn)任SUN

3、公司副總裁及Sun研究院院士 ,他親手設(shè)計(jì)了Java語(yǔ)言,并開(kāi)發(fā)了Java編譯器和JAVA虛擬機(jī),使Java成為了世界上最流行的開(kāi)發(fā)語(yǔ)言。 JAVA歷史歷史v1995年,Java首次公開(kāi)亮相。 v1996年1月23日Sun Microsystems發(fā)布了JDK1.0。這個(gè)版本包括了兩部分:運(yùn)行環(huán)境(即JRE)和開(kāi)發(fā)環(huán)境(即JDK)。v1997年2月18日發(fā)布了JDK1.1。 v1998年,JDK1.2版本發(fā)布。將Java分成了J2EE、J2SE和J2ME。表明了Java開(kāi)始向企業(yè),桌面應(yīng)用,和移動(dòng)設(shè)備應(yīng)用3大領(lǐng)域挺進(jìn)。 v2000年,JDK1.3 發(fā)布。 v2002年,JDK1.4 發(fā)布。 v

4、2004年,JDK1.5 發(fā)布。同時(shí)JDK1.5改名為J2SE5.0。v2005年6月,Java SE 6。此時(shí),Java的各種版本已經(jīng)更名以取消其中的數(shù)字“2” v2006年11月13日,SUN公司宣布Java全線采納GNU General Public License Version 2,從而公開(kāi)了Java的源代碼。 JAVA應(yīng)用概述vJAVAMEq微型版vJAVASEq標(biāo)準(zhǔn)版vJAVAEEq企業(yè)版名詞解釋名詞解釋vJDK Java Development Kit (java 開(kāi)發(fā)工具包) Software Development Kit(1.2版本-1.4版本)vJVM Java Vir

5、tual Machine (java 虛擬機(jī))vJRE Java Runtime Environment (java 運(yùn)行環(huán)境)JAVA開(kāi)發(fā)基本術(shù)語(yǔ)vJDK包含Java運(yùn)行的基本類(lèi)庫(kù)和開(kāi)發(fā)命令,安裝JDK可以進(jìn)行完整的Java開(kāi)發(fā)。vJRE包含Java運(yùn)行的基本類(lèi)庫(kù)和一些運(yùn)行命令,安裝JRE可以運(yùn)行編譯好的Java程序。vJVMJava語(yǔ)言內(nèi)部運(yùn)行的核心。v Java Programmer Java程序員v Java Developer Java開(kāi)發(fā)人員v Java Web Developer web開(kāi)發(fā)人員v J2EE Architect J2EE 架構(gòu)師Java職業(yè)的分工職業(yè)的分工Java

6、 語(yǔ)言特點(diǎn)語(yǔ)言特點(diǎn)1、簡(jiǎn)單性: Java語(yǔ)言類(lèi)似于C/C+,可以說(shuō)Java語(yǔ)言是C+語(yǔ)言的一個(gè)純凈的版本,在 java語(yǔ)言中沒(méi)有頭文件,指針,運(yùn)算符重載等2、面向?qū)ο?C面向過(guò)程 C+面向過(guò)程+面向?qū)ο驤ava 純面向?qū)ο蟮恼Z(yǔ)言,3、分布式:Java有一個(gè)擴(kuò)展的例程庫(kù),用于處理 Http/Ftp之類(lèi)的 Tcp|Ip協(xié)議。Java語(yǔ)言能通過(guò) url打開(kāi)的訪問(wèn)網(wǎng)絡(luò)上的對(duì)象,其便利的程序如同本地訪問(wèn).Java 語(yǔ)言特點(diǎn)語(yǔ)言特點(diǎn)4、健壯性:java投入了大量的精力進(jìn)行早期的問(wèn)題檢測(cè),后期的動(dòng)態(tài)檢測(cè),并消除了有出錯(cuò)傾向的狀態(tài),java和 c+最大的不同在于 java采用的指針模型可以消除重寫(xiě)內(nèi)存和損壞數(shù)

7、據(jù)的可能性.5、安全性:java適用于網(wǎng)絡(luò)/分布式環(huán)境,為了達(dá)到這個(gè)目標(biāo),在安全方面投了大量的精力,使用java可以構(gòu)建防病毒。禁止運(yùn)行時(shí)堆棧溢出,禁止自己內(nèi)存空間,未授權(quán)的讀寫(xiě)文件。6、可移植性:跨平臺(tái): JVM 作用用來(lái)解釋執(zhí)行字節(jié)碼文件根據(jù)不同的平臺(tái)進(jìn)行不同的解釋執(zhí)行,從而可以達(dá)到跨平臺(tái)作用,C+生成直接可以運(yùn)行的機(jī)器碼文件。java素有 “一次編譯,到處運(yùn)行”參考書(shū)籍參考書(shū)籍Java 認(rèn)證介紹認(rèn)證介紹q SCJPSun certified java5 programmerScjp主要偏重于對(duì)java語(yǔ)言的語(yǔ)法與及JDK的內(nèi)容.q SCJDSun certified java5 Deve

8、loperSCJD相對(duì)于SCJP進(jìn)一步測(cè)試用JAVA 開(kāi)發(fā)應(yīng)用程序的能力 開(kāi)發(fā)工具開(kāi)發(fā)工具v 開(kāi)發(fā)環(huán)境q JDKq 編輯器只要是文本編輯器或unix環(huán)境下的viq Windows環(huán)境可以使用功能較在的文本編輯器q 集成開(kāi)發(fā)環(huán)境 Eclipse IDE NetBeans 等v Eclipse下載網(wǎng)站q http:/Module 1Java開(kāi)發(fā)環(huán)境介紹及編程入門(mén)開(kāi)發(fā)環(huán)境介紹及編程入門(mén) 本章目標(biāo)本章目標(biāo)q了解高級(jí)語(yǔ)言開(kāi)發(fā)的一般步驟了解高級(jí)語(yǔ)言開(kāi)發(fā)的一般步驟q正確安裝及配置正確安裝及配置Java開(kāi)發(fā)和運(yùn)行環(huán)境開(kāi)發(fā)和運(yùn)行環(huán)境q理解理解JVM的運(yùn)行機(jī)制的運(yùn)行機(jī)制q了解了解java語(yǔ)言的垃圾回收機(jī)制語(yǔ)言的垃

9、圾回收機(jī)制q編寫(xiě)并運(yùn)行第一個(gè)編寫(xiě)并運(yùn)行第一個(gè)java代碼代碼 下載并安裝下載并安裝JDK1.從以下網(wǎng)站可下載從以下網(wǎng)站可下載JDK http:/ 根據(jù)開(kāi)發(fā)機(jī)器的不同,請(qǐng)下載相應(yīng)平臺(tái)下的根據(jù)開(kāi)發(fā)機(jī)器的不同,請(qǐng)下載相應(yīng)平臺(tái)下的JDK2. Install JDK Windows: run the executable Unix: run the shell JDK 下載頁(yè)面下載頁(yè)面Win 32平臺(tái)JDK下載Linux平臺(tái)JDK下載配置配置Java環(huán)境變量環(huán)境變量3. 設(shè)置如下三個(gè)環(huán)境變量設(shè)置如下三個(gè)環(huán)境變量: JAVA_HOME, CLASSPATH, PATH Windows 2000/NT/XP

10、系統(tǒng):系統(tǒng): 開(kāi)始開(kāi)始設(shè)置設(shè)置控制面板控制面板系統(tǒng)系統(tǒng)高級(jí)高級(jí)環(huán)境變量環(huán)境變量Windows環(huán)境下的安裝配置環(huán)境下的安裝配置v 安裝安裝JDK軟件包軟件包v 設(shè)置環(huán)境變量設(shè)置環(huán)境變量點(diǎn)擊我的電腦右鍵點(diǎn)擊我的電腦右鍵-屬性屬性-高級(jí)高級(jí)-環(huán)境變量環(huán)境變量-新建新建JAVA_HOME=JDK安裝目錄編輯安裝目錄編輯: path=在原來(lái)的在原來(lái)的path路徑前增加路徑前增加 JDK安裝目錄安裝目錄/bin 注意注意windows平臺(tái)中是以分號(hào)分隔平臺(tái)中是以分號(hào)分隔v 測(cè)試測(cè)試 運(yùn)行運(yùn)行cmd java javac java -version 如果以上三個(gè)命令都能運(yùn)行的話,說(shuō)明安裝成功如果以上三個(gè)命令

11、都能運(yùn)行的話,說(shuō)明安裝成功JDK安裝目錄介紹安裝目錄介紹v Bin 編譯器和工具編譯器和工具v Demo 演示演示v Docs HTML格式的類(lèi)庫(kù)文檔格式的類(lèi)庫(kù)文檔v Include 用于編譯本地方法的文件用于編譯本地方法的文件v Jre java運(yùn)行環(huán)境文件運(yùn)行環(huán)境文件v Lib 類(lèi)庫(kù)文件類(lèi)庫(kù)文件v Src 類(lèi)庫(kù)源文件類(lèi)庫(kù)源文件Java虛擬機(jī)虛擬機(jī)(JVM)BytecodeJVMCPU提供字節(jié)碼(提供字節(jié)碼(bytecode)的運(yùn)行環(huán)境)的運(yùn)行環(huán)境屏蔽底層平臺(tái)的差異屏蔽底層平臺(tái)的差異JVM的作用的作用Java垃圾收集的概念垃圾收集的概念vJava語(yǔ)言使用語(yǔ)言使用new運(yùn)算符來(lái)分配內(nèi)存空間,運(yùn)

12、算符來(lái)分配內(nèi)存空間,沒(méi)有動(dòng)態(tài)內(nèi)存分配的概念。沒(méi)有動(dòng)態(tài)內(nèi)存分配的概念。vJava系統(tǒng)線程自動(dòng)處理無(wú)用內(nèi)存空間的垃圾系統(tǒng)線程自動(dòng)處理無(wú)用內(nèi)存空間的垃圾收集收集 vJava程序員只能建議,但不能強(qiáng)制程序員只能建議,但不能強(qiáng)制JVM去執(zhí)去執(zhí)行垃圾收集程序,使用下面的代碼行垃圾收集程序,使用下面的代碼: java.lang.System.gc() java.lang.Runtime.gc()Java程序的運(yùn)行過(guò)程程序的運(yùn)行過(guò)程HelloWorldApp.javaHelloWorldApp.classjavacjava跨平臺(tái)不跨平臺(tái)第一個(gè)第一個(gè)Java程序程序HelloWorld.java public

13、class HelloWorldpublic static void main(String args) System.out.println(“Hello World!”); 要點(diǎn)要點(diǎn)(1) 一個(gè)源文件中至多只能有一個(gè)一個(gè)源文件中至多只能有一個(gè)public的的class 源文件名必須和它中定義的源文件名必須和它中定義的public的類(lèi)名相同的類(lèi)名相同 一個(gè)文件中可以同時(shí)寫(xiě)多個(gè)類(lèi),但是只能有一個(gè)公開(kāi)一個(gè)文件中可以同時(shí)寫(xiě)多個(gè)類(lèi),但是只能有一個(gè)公開(kāi)的類(lèi)的類(lèi) Main方法方法 java程序的入口程序的入口要點(diǎn)要點(diǎn)(2)v編寫(xiě)源代碼編寫(xiě)源代碼, 生成生成 .java文件文件v編譯源代碼編譯源代碼, 生

14、成生成.class 文件文件javac HelloWorld.javav運(yùn)行該程序運(yùn)行該程序java HelloWorldJvm加載字節(jié)碼文件加載字節(jié)碼文件v 加載代碼加載代碼 (類(lèi)加載器類(lèi)加載器)將將class字節(jié)碼文件讀入內(nèi)存字節(jié)碼文件讀入內(nèi)存,并放在數(shù)據(jù)的方法區(qū)并放在數(shù)據(jù)的方法區(qū),在堆區(qū)中創(chuàng)建在堆區(qū)中創(chuàng)建java.lang.Class對(duì)象對(duì)象,用于封裝類(lèi)在方法區(qū)內(nèi)的數(shù)據(jù)結(jié)構(gòu)用于封裝類(lèi)在方法區(qū)內(nèi)的數(shù)據(jù)結(jié)構(gòu)v 連接連接 把已經(jīng)讀入內(nèi)存的類(lèi)的二進(jìn)制數(shù)據(jù)合并到把已經(jīng)讀入內(nèi)存的類(lèi)的二進(jìn)制數(shù)據(jù)合并到j(luò)vm運(yùn)行環(huán)境中去運(yùn)行環(huán)境中去v 驗(yàn)證代碼驗(yàn)證代碼 (字節(jié)碼校驗(yàn)器字節(jié)碼校驗(yàn)器)保證加載類(lèi)有正確的內(nèi)部

15、結(jié)構(gòu)保證加載類(lèi)有正確的內(nèi)部結(jié)構(gòu),并與其他類(lèi)協(xié)調(diào)一致辭主要有以下幾個(gè)方并與其他類(lèi)協(xié)調(diào)一致辭主要有以下幾個(gè)方面面:文件結(jié)構(gòu)檢查文件結(jié)構(gòu)檢查,語(yǔ)義檢查語(yǔ)義檢查,字節(jié)碼驗(yàn)證字節(jié)碼驗(yàn)證,二進(jìn)制兼容的驗(yàn)證二進(jìn)制兼容的驗(yàn)證v 準(zhǔn)備準(zhǔn)備 Jvm為類(lèi)的靜態(tài)變量分配內(nèi)存為類(lèi)的靜態(tài)變量分配內(nèi)存,并調(diào)置默認(rèn)的初始值并調(diào)置默認(rèn)的初始值v 解析解析 Jvm把類(lèi)的二進(jìn)制數(shù)據(jù)中的符號(hào)引用替換為直接引用把類(lèi)的二進(jìn)制數(shù)據(jù)中的符號(hào)引用替換為直接引用v 執(zhí)行代碼執(zhí)行代碼 (解釋器解釋器)Jvm執(zhí)行類(lèi)初始化語(yǔ)句執(zhí)行類(lèi)初始化語(yǔ)句,為類(lèi)靜態(tài)變量賦以初值為類(lèi)靜態(tài)變量賦以初值練習(xí)練習(xí) :Information.java1.開(kāi)發(fā)一個(gè)開(kāi)發(fā)一個(gè)Ja

16、va程序打印出下列信息程序打印出下列信息: 姓名姓名 性別性別 年齡年齡 畢業(yè)學(xué)校畢業(yè)學(xué)校 戶籍戶籍Package包結(jié)構(gòu)包結(jié)構(gòu)Package a.b.c;public class HelloWorldpublic static void main(String args) System.out.println(“Hello World!”);將生成的字節(jié)碼文件以包結(jié)構(gòu)形式來(lái)存放,用于方便管理類(lèi)文件將生成的字節(jié)碼文件以包結(jié)構(gòu)形式來(lái)存放,用于方便管理類(lèi)文件Package 必須要寫(xiě)在源文件第一行,注釋除外必須要寫(xiě)在源文件第一行,注釋除外Package包結(jié)構(gòu)包結(jié)構(gòu) 帶有包結(jié)構(gòu)的程序在編譯是需要加參數(shù):

17、帶有包結(jié)構(gòu)的程序在編譯是需要加參數(shù):v Javac -d . HelloWorld.java 運(yùn)行帶包結(jié)構(gòu)的程序時(shí),要指定類(lèi)全名運(yùn)行帶包結(jié)構(gòu)的程序時(shí),要指定類(lèi)全名v Java a.b.c.HelloWorldImport 導(dǎo)入機(jī)制導(dǎo)入機(jī)制Package a.b.c;Import java.util.*;public class HelloWorldpublic static void main(String args) System.out.println(“Hello World!”); System.out.println( new Date() );生成生成java doc文檔文檔/*

18、此種注釋存在于源代碼中時(shí),編譯時(shí)使用此種注釋存在于源代碼中時(shí),編譯時(shí)使用javadoc命令命令可以生成可以生成doc文檔文檔*/用法:用法:Javadoc -d . HelloWorld.java生成生成java doc文檔文檔v authorv version 標(biāo)注在標(biāo)注在javadoc中的使用中的使用 使用以上標(biāo)記時(shí)要增加使用以上標(biāo)記時(shí)要增加 author - version參數(shù)參數(shù)進(jìn)行注釋文檔的抽取進(jìn)行注釋文檔的抽取,默認(rèn)情況下會(huì)忽略默認(rèn)情況下會(huì)忽略壓縮成壓縮成jar文件文件在在java中可以將生成的字節(jié)碼文件按照生成目錄的結(jié)構(gòu)中可以將生成的字節(jié)碼文件按照生成目錄的結(jié)構(gòu)壓縮成壓縮成jar

19、文件方便使用文件方便使用壓縮命令:壓縮命令: Jar -cvf first.jar a解壓命令:解壓命令: Jar -xvf first.jar運(yùn)行運(yùn)行jar 文件中的程序文件中的程序: java -classpath first.jar a.b.c.HelloWorldJar命令參數(shù)命令參數(shù) x 解壓解壓 u 更新更新 d 列表列表 v 顯示壓縮過(guò)程顯示壓縮過(guò)程 c 創(chuàng)建壓縮文件創(chuàng)建壓縮文件 f 壓縮文件名壓縮文件名 m 按照清單指定的系統(tǒng)進(jìn)行壓縮按照清單指定的系統(tǒng)進(jìn)行壓縮命令行參數(shù)命令行參數(shù) Echo.javapublic class Echopublic static void main

20、(String args)System.out.println(args0);運(yùn)行命令:運(yùn)行命令: Java Echo xubin要點(diǎn):要點(diǎn):v 可執(zhí)行程序必需要可執(zhí)行程序必需要main方法方法v 只能只能public和和static調(diào)換位置調(diào)換位置v args可以是任意的名字可以是任意的名字v args0 代表第一個(gè)命令行參數(shù)代表第一個(gè)命令行參數(shù)v 注意注意:運(yùn)行時(shí)一定要有命令行參數(shù)輸入運(yùn)行時(shí)一定要有命令行參數(shù)輸入,否則會(huì)有數(shù)組否則會(huì)有數(shù)組下標(biāo)越界異常出現(xiàn)下標(biāo)越界異常出現(xiàn)練練 習(xí)習(xí) 編程打印出所有命令行的參數(shù)。編程打印出所有命令行的參數(shù)。 從命令參數(shù)中接收姓名,在程序打印從命令參數(shù)中接收姓名

21、,在程序打印Hello xxxxx Java API 文檔文檔Download it from http:/本章總結(jié)本章總結(jié)v 在這一章里,我們討論了以下問(wèn)題在這一章里,我們討論了以下問(wèn)題:q怎樣建立怎樣建立Java開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境qJava語(yǔ)言的關(guān)鍵特性語(yǔ)言的關(guān)鍵特性qJava虛擬機(jī)虛擬機(jī)(JVM)的功能的功能qJava的垃圾收集機(jī)制的垃圾收集機(jī)制q常用常用Java開(kāi)發(fā)命令和開(kāi)發(fā)工具包開(kāi)發(fā)命令和開(kāi)發(fā)工具包q編寫(xiě)并運(yùn)行一個(gè)編寫(xiě)并運(yùn)行一個(gè)Java應(yīng)用程序應(yīng)用程序Module 2標(biāo)示符、關(guān)鍵字和數(shù)據(jù)類(lèi)型標(biāo)示符、關(guān)鍵字和數(shù)據(jù)類(lèi)型本章目標(biāo)本章目標(biāo)q程序注釋程序注釋q標(biāo)示符標(biāo)示符q關(guān)鍵字關(guān)鍵字q基本數(shù)據(jù)

22、類(lèi)型基本數(shù)據(jù)類(lèi)型注注 釋釋v三種類(lèi)型的注釋三種類(lèi)型的注釋q/單行注釋單行注釋q/*這是一段多行注釋?zhuān)缭搅硕鄠€(gè)行這是一段多行注釋?zhuān)缭搅硕鄠€(gè)行*/q/* 這是一個(gè)文檔注釋?zhuān)梢允褂眠@是一個(gè)文檔注釋?zhuān)梢允褂肑DK的的javadoc工具工具從原文件中抽取這種注釋形成程序的幫助文檔。從原文件中抽取這種注釋形成程序的幫助文檔。*/v使用使用javadoc命令建立命令建立HTML格式的程序文檔格式的程序文檔javadoc options packagenames sourcefiles filesJava的標(biāo)示符的標(biāo)示符1,什么是標(biāo)示符?,什么是標(biāo)示符? 在在java語(yǔ)言中用來(lái)給一個(gè)類(lèi)、變量或方法

23、命名的符號(hào)語(yǔ)言中用來(lái)給一個(gè)類(lèi)、變量或方法命名的符號(hào)2,標(biāo)示符的命名規(guī)則:,標(biāo)示符的命名規(guī)則: 以字母以字母, “_” 或或 “$”符號(hào)開(kāi)頭符號(hào)開(kāi)頭 可以包含字母、可以包含字母、 “_” 、“$”和數(shù)字符號(hào)和數(shù)字符號(hào) 大小寫(xiě)敏感大小寫(xiě)敏感 不能與保留關(guān)鍵字沖突不能與保留關(guān)鍵字沖突 沒(méi)有長(zhǎng)度限制沒(méi)有長(zhǎng)度限制例如:例如:identifier _sys_ var1 $char userName user_ nameJava的標(biāo)示符(續(xù))的標(biāo)示符(續(xù))3,命名,命名約定: 類(lèi)名類(lèi)名, 接口名接口名 :每個(gè)單詞的首字母應(yīng)該大寫(xiě):每個(gè)單詞的首字母應(yīng)該大寫(xiě) class MyFirstClass interfa

24、ce Weapon 字段、方法以及對(duì)象:第一個(gè)單詞首字母應(yīng)小寫(xiě),其他單詞首字母大寫(xiě)字段、方法以及對(duì)象:第一個(gè)單詞首字母應(yīng)小寫(xiě),其他單詞首字母大寫(xiě) boolean isWoman void setName(String name) 常量:全部用大寫(xiě)字母表示。常量:全部用大寫(xiě)字母表示。 public final int GREEN public final int HEAD_ COUNT Java包(包(Package):它們?nèi)甲帜感?xiě)。):它們?nèi)甲帜感?xiě)。 package java.awt.event Java中的關(guān)鍵字中的關(guān)鍵字關(guān)鍵字列表:關(guān)鍵字列表:abstract boolean br

25、eak byte case catch char class continue default do double else extends enum false final finally float for if implements import instanceof int interface long native new null package private protected public return short static super switch synchronized this throw throws transient true try void volati

26、le while Java 中中 true false 不是關(guān)鍵字不是關(guān)鍵字,而是而是boolean類(lèi)型的字面量類(lèi)型的字面量保留字:保留字:const,goto所有的關(guān)鍵字都是小寫(xiě),所有的關(guān)鍵字都是小寫(xiě),friendly,sizeof不是不是java的關(guān)鍵字的關(guān)鍵字 數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型v基本數(shù)據(jù)類(lèi)型(基本數(shù)據(jù)類(lèi)型(primitive type)vbyte short int longvfloat double char booleanv引用數(shù)據(jù)類(lèi)型(引用數(shù)據(jù)類(lèi)型(reference type)Java的基本數(shù)據(jù)類(lèi)型的基本數(shù)據(jù)類(lèi)型qboolean 布爾值(布爾值( true 或或 false)qb

27、yte 8-bit 整形值整形值qshort 16-bit 整形值整形值qint 32-bit 整形值整形值qlong 64-bit 整形值整形值qchar 16-bit unicode編碼的字符編碼的字符qdouble 64-bit 浮點(diǎn)數(shù)值浮點(diǎn)數(shù)值qfloat 32-bit 浮點(diǎn)數(shù)值浮點(diǎn)數(shù)值布爾類(lèi)型布爾類(lèi)型-boolean一個(gè)一個(gè)boolean類(lèi)型的變量用來(lái)表示一個(gè)或真或假的關(guān)系類(lèi)型的變量用來(lái)表示一個(gè)或真或假的關(guān)系一個(gè)一個(gè) boolean 類(lèi)型變量的值必須是類(lèi)型變量的值必須是true 或或 false二者二者 之一之一 boolean isCorrect = true;文本數(shù)據(jù)類(lèi)型文本數(shù)據(jù)

28、類(lèi)型char和和 Stringv char q 其實(shí)就是一個(gè)無(wú)符號(hào)的其實(shí)就是一個(gè)無(wú)符號(hào)的16位整形,其范圍為位整形,其范圍為065535,用來(lái)存儲(chǔ)該字符用來(lái)存儲(chǔ)該字符的的Unicode編碼值,因?yàn)榫幋a值,因?yàn)閁nicode 編碼中包含漢字的編碼,所以一個(gè)編碼中包含漢字的編碼,所以一個(gè)char類(lèi)型的變量也可以存儲(chǔ)一個(gè)漢字字符。類(lèi)型的變量也可以存儲(chǔ)一個(gè)漢字字符。q 在代碼中直接給出的一個(gè)字符值必須用單引號(hào)括起來(lái)。在代碼中直接給出的一個(gè)字符值必須用單引號(hào)括起來(lái)。char zhChar = 中中; char enChar = a; char ucChar = u0060;q 對(duì)某些不方便直接書(shū)寫(xiě)或直接

29、書(shū)寫(xiě)有歧義的字符,對(duì)某些不方便直接書(shū)寫(xiě)或直接書(shū)寫(xiě)有歧義的字符,java語(yǔ)言規(guī)定用語(yǔ)言規(guī)定用轉(zhuǎn)義字符給出。轉(zhuǎn)義字符給出。q 可以把可以把char類(lèi)型數(shù)據(jù)當(dāng)作整數(shù)數(shù)據(jù)來(lái)操作。例如:類(lèi)型數(shù)據(jù)當(dāng)作整數(shù)數(shù)據(jù)來(lái)操作。例如: int three=3; char one=1; int four=three+one; 轉(zhuǎn)義字符轉(zhuǎn)義字符 轉(zhuǎn)義字符轉(zhuǎn)義字符描述描述 ddd1到到3位位8進(jìn)制數(shù)所表示的字符進(jìn)制數(shù)所表示的字符(ddd) uxxxx1到到4位位16進(jìn)制數(shù)所表示的字符進(jìn)制數(shù)所表示的字符(xxxx) 單引號(hào)字符單引號(hào)字符 雙引號(hào)字符雙引號(hào)字符 反斜杠字符反斜杠字符 r回車(chē)回車(chē) n換行換行 f走紙換頁(yè)走紙換頁(yè)

30、t橫向跳格橫向跳格 b退格退格Java語(yǔ)言中轉(zhuǎn)義字符都以語(yǔ)言中轉(zhuǎn)義字符都以給出常用轉(zhuǎn)義字符列表:給出常用轉(zhuǎn)義字符列表:字符串類(lèi)型字符串類(lèi)型-Stringv Stringq 是是JDK中定義的一個(gè)類(lèi),不是基本數(shù)據(jù)類(lèi)型中定義的一個(gè)類(lèi),不是基本數(shù)據(jù)類(lèi)型q 一個(gè)一個(gè)String對(duì)象可以用來(lái)存儲(chǔ)多個(gè)字符,在程序中直接給出一個(gè)對(duì)象可以用來(lái)存儲(chǔ)多個(gè)字符,在程序中直接給出一個(gè) String值要用雙引號(hào)括起來(lái)值要用雙引號(hào)括起來(lái) String myName = “Blues”;q 可以使用可以使用 + 運(yùn)算符把多個(gè)運(yùn)算符把多個(gè)String數(shù)據(jù)連接起來(lái),并且還可連接其他類(lèi)數(shù)據(jù)連接起來(lái),并且還可連接其他類(lèi)型的數(shù)據(jù)型的

31、數(shù)據(jù)q 例如:例如:int count=7;System.out.println(Counted + count + chars. );整形數(shù)據(jù)(整形數(shù)據(jù)(byte, short, int and long)v 三種形式給一個(gè)整形變量直接賦值三種形式給一個(gè)整形變量直接賦值: 十進(jìn)制、八進(jìn)制和十六進(jìn)制十進(jìn)制、八進(jìn)制和十六進(jìn)制v 直接給出的值默認(rèn)是直接給出的值默認(rèn)是int類(lèi)型。類(lèi)型。v 長(zhǎng)整形值應(yīng)該在數(shù)字后面跟上長(zhǎng)整形值應(yīng)該在數(shù)字后面跟上 l 或或 L標(biāo)示標(biāo)示public void testIntType() int ia = 0 x55; /十六進(jìn)制十六進(jìn)制 int ib = 011; /八進(jìn)制

32、八進(jìn)制 byte bb = 0 x771; byte ba = (byte)0 x771; long la = 1234567L; /十進(jìn)制十進(jìn)制 整形數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)方式整形數(shù)據(jù)在計(jì)算機(jī)內(nèi)的存儲(chǔ)方式v 計(jì)算機(jī)能存儲(chǔ)的值都是二進(jìn)制值計(jì)算機(jī)能存儲(chǔ)的值都是二進(jìn)制值,整形數(shù)據(jù)在計(jì)算機(jī)中的存儲(chǔ)方式分兩整形數(shù)據(jù)在計(jì)算機(jī)中的存儲(chǔ)方式分兩種情況討論:種情況討論:short a=57;0000 0000 0011 10011111 11111100 0111 1,正整數(shù),存儲(chǔ)該數(shù)字的二進(jìn)制原碼。,正整數(shù),存儲(chǔ)該數(shù)字的二進(jìn)制原碼。short a=-57;2,負(fù)整數(shù),存儲(chǔ)該數(shù)字的二進(jìn)制補(bǔ)碼。,負(fù)整數(shù),存儲(chǔ)該數(shù)

33、字的二進(jìn)制補(bǔ)碼。int a=57;0000 0000 0000 00000000 0000 0011 1001int a=-57;1111 1111 1111 11111111 1111 1100 0111高字節(jié)位高字節(jié)位低字節(jié)位低字節(jié)位浮點(diǎn)數(shù)據(jù)類(lèi)型浮點(diǎn)數(shù)據(jù)類(lèi)型 float 和和 doublev 直接在程序中書(shū)寫(xiě)的浮點(diǎn)數(shù)默認(rèn)為直接在程序中書(shū)寫(xiě)的浮點(diǎn)數(shù)默認(rèn)為 dobule類(lèi)型。類(lèi)型。v float 類(lèi)型的數(shù)據(jù)占類(lèi)型的數(shù)據(jù)占32位長(zhǎng)度(位長(zhǎng)度(4 Bytes)v double類(lèi)型的數(shù)據(jù)占類(lèi)型的數(shù)據(jù)占64位長(zhǎng)度(位長(zhǎng)度(8 Bytes)v 直接表示一個(gè)直接表示一個(gè)float 類(lèi)型的值必須在數(shù)字后跟類(lèi)

34、型的值必須在數(shù)字后跟 f 或或Fv 直接表示一個(gè)直接表示一個(gè)double 類(lèi)型的值可以在數(shù)字后跟類(lèi)型的值可以在數(shù)字后跟d 或或Dv 可以用科學(xué)計(jì)數(shù)法表示,如:可以用科學(xué)計(jì)數(shù)法表示,如:123.456e3或或123.456E3public void testFloatType() float fa = 123.4f; float fb = 12.5E300F; float fc = (float)12.5E300; double da = 123D; double db = 123.456D; double dc = 123.45e301; 基本數(shù)據(jù)類(lèi)型的取值范圍基本數(shù)據(jù)類(lèi)型的取值范圍TypeB

35、itsBytesMinimum RangeMaximum Rangeboolean81Only two values :true or falsebyte81-2727 - 1short162-215215 - 1char1620216-1int324-231231 - 1long648-263263 - 1float324Not neededNot neededdouble648Not neededNot needed變量的聲明和賦值變量的聲明和賦值package sample;public class Assign public static void main(String args)

36、int x, y; / 聲明聲明int類(lèi)型變量類(lèi)型變量x和和y float z = 3.414f; / 聲明聲明float類(lèi)型變量并賦值類(lèi)型變量并賦值 double w = 3.1415; /聲明聲明double類(lèi)型變量并賦值類(lèi)型變量并賦值 boolean truth = true; /聲明聲明boolean類(lèi)型變量并賦值類(lèi)型變量并賦值 char c; /聲明聲明char類(lèi)型變量類(lèi)型變量c String str; /聲明聲明String類(lèi)型的引用類(lèi)型的引用 String str1 = “bye”; /聲明聲明String類(lèi)型的引用并且實(shí)例化類(lèi)型的引用并且實(shí)例化 c = A; / 給給c變量賦值

37、變量賦值 str = “Hi out there!”; / 給給str實(shí)例化實(shí)例化 x = 6; y = 1000; 引用數(shù)據(jù)類(lèi)型(引用數(shù)據(jù)類(lèi)型(reference type)v 數(shù)組數(shù)組Array ,類(lèi),類(lèi) classe,接口,接口interface屬于屬于reference 類(lèi)型。類(lèi)型。v reference 類(lèi)型的變量是所引用的對(duì)象的內(nèi)存地址類(lèi)型的變量是所引用的對(duì)象的內(nèi)存地址。v 例子:例子:class MyDate private int day = 1; private int month = 1; private int year = 2000; public MyDate( in

38、t day, int month, int year) . public void print() . public class TestMyDate public static void main( String args) MyDate my_ birth = new MyDate( 22, 7, 1964); 引用數(shù)據(jù)類(lèi)型(引用數(shù)據(jù)類(lèi)型(reference type)v 創(chuàng)建一個(gè)類(lèi)對(duì)象:創(chuàng)建一個(gè)類(lèi)對(duì)象:v MyDate my_ birth = new MyDate( 22, 7, 1964);引用數(shù)據(jù)類(lèi)型(引用數(shù)據(jù)類(lèi)型(reference type)兩個(gè)引用變量的賦值將會(huì)產(chǎn)生如下結(jié)果:兩

39、個(gè)引用變量的賦值將會(huì)產(chǎn)生如下結(jié)果:int x = 7;int y = x;MyDate s = new MyDate( 22, 7, 1964);MyDate t = s;t = new MyDate( 22, 12, 1964); 兩個(gè)變量指向同一個(gè)對(duì)象:兩個(gè)變量指向同一個(gè)對(duì)象:對(duì)象氣球?qū)ο髿馇蛞脤?duì)象對(duì)象引用對(duì)象對(duì)象就像一個(gè)充滿氫氣的氣球,我們沒(méi)有辦法直接去得到它,要想對(duì)它的使用都必須通過(guò)一根對(duì)象就像一個(gè)充滿氫氣的氣球,我們沒(méi)有辦法直接去得到它,要想對(duì)它的使用都必須通過(guò)一根連著它的繩子來(lái)訪問(wèn),這根繩子就是對(duì)象的引用。一根繩子同時(shí)只能連著一個(gè)氣球,就像一個(gè)連著它的繩子來(lái)訪問(wèn),這根繩子就是對(duì)象

40、的引用。一根繩子同時(shí)只能連著一個(gè)氣球,就像一個(gè)引用同時(shí)只能指向一個(gè)對(duì)象;可以用多根繩子同時(shí)連接一個(gè)氣球,也就是可以有多個(gè)引用同時(shí)引用同時(shí)只能指向一個(gè)對(duì)象;可以用多根繩子同時(shí)連接一個(gè)氣球,也就是可以有多個(gè)引用同時(shí)指向同一個(gè)對(duì)象;如果某個(gè)氣球沒(méi)有任何繩子連著它,那它就會(huì)飛走,同樣,某個(gè)對(duì)象如果沒(méi)指向同一個(gè)對(duì)象;如果某個(gè)氣球沒(méi)有任何繩子連著它,那它就會(huì)飛走,同樣,某個(gè)對(duì)象如果沒(méi)有引用連接它,它就會(huì)成為垃圾,等著被有引用連接它,它就會(huì)成為垃圾,等著被java的垃圾收集器回收;如果某根繩子沒(méi)有連接任何的垃圾收集器回收;如果某根繩子沒(méi)有連接任何氣球,那么它就是一個(gè)空引用,對(duì)它的訪問(wèn)沒(méi)有意義。同樣,某個(gè)引用

41、如果沒(méi)有指向?qū)ο螅菤馇?,那么它就是一個(gè)空引用,對(duì)它的訪問(wèn)沒(méi)有意義。同樣,某個(gè)引用如果沒(méi)有指向?qū)ο?,那么?duì)它的訪問(wèn)將會(huì)拋出么對(duì)它的訪問(wèn)將會(huì)拋出NullPointerException引用null本章總結(jié)本章總結(jié) 在這一章中,我們討論了以下問(wèn)題在這一章中,我們討論了以下問(wèn)題: 不同類(lèi)型的注釋不同類(lèi)型的注釋 標(biāo)示符和關(guān)鍵字標(biāo)示符和關(guān)鍵字 基本數(shù)據(jù)類(lèi)型基本數(shù)據(jù)類(lèi)型 引用類(lèi)型引用類(lèi)型 對(duì)象的概念對(duì)象的概念練練 習(xí)習(xí)1,寫(xiě)一個(gè)程序,要求定義出boolean,int,char,double,float,String 類(lèi)型的變量并賦初值,然后將這些值輸出出來(lái)。2,程序中定義有如下語(yǔ)句,畫(huà)出這些整形值在內(nèi)存空

42、間中的存儲(chǔ) 狀態(tài)。 int a=74; int b=-132; int c=0 x2B8F;3,下列哪些賦值語(yǔ)句是錯(cuò)誤的: (1) byte b= 0 x175; (2) int i=0 x27f; (3) char c=123; (4) int a=真; (5) float f=12.345E2; (6) boolean f=0; 練練 習(xí)習(xí) 4,判斷下列語(yǔ)句中的a和b的值是否相等: (1) int a=0; int b=0; (2) int a=0; char b=u0000; (3) int a=123; char b=u007B; (4) int a=0 x123; char b=12

43、3; (5) int a=3+5; char b=8; (6) int a=3+5; char b=8; (7) char a=u0000; char b=0;Module 3表達(dá)式及流程控制語(yǔ)句表達(dá)式及流程控制語(yǔ)句本章目標(biāo)本章目標(biāo)vJava的運(yùn)算符的運(yùn)算符v基本數(shù)據(jù)類(lèi)型的賦值基本數(shù)據(jù)類(lèi)型的賦值v布爾表達(dá)式布爾表達(dá)式v選擇結(jié)構(gòu)選擇結(jié)構(gòu)(if else,switch)v循環(huán)結(jié)構(gòu)(循環(huán)結(jié)構(gòu)(while,dowhile,for)v使用使用continue和和break進(jìn)行循環(huán)控制進(jìn)行循環(huán)控制常用運(yùn)算符列表常用運(yùn)算符列表序號(hào)描述運(yùn)算符結(jié)合性1括號(hào)和引用() 。左右2單目運(yùn)算符+ - - ! 右左3算術(shù)

44、運(yùn)算符* / % + - 左右4關(guān)系運(yùn)算符 = = = !=左右5邏輯運(yùn)算符& | & |左右6位運(yùn)算符 & | 左右7條件運(yùn)算符?:/8賦值運(yùn)算符= += -= *= /= %= = = = &= |= = 右左算術(shù)運(yùn)算符算術(shù)運(yùn)算符v 說(shuō)明:說(shuō)明:qJava對(duì)對(duì)“+”運(yùn)算符進(jìn)行了擴(kuò)展,使它能夠進(jìn)行字運(yùn)算符進(jìn)行了擴(kuò)展,使它能夠進(jìn)行字符串的連接,符串的連接, 如如“abc”+“de”,得到串,得到串“abcde”q+i , -i 在使用在使用i前,先使前,先使i的值改變的值改變qi+ , i- 在使用在使用i后,再改變后,再改變i的值的值關(guān)系運(yùn)算符關(guān)系運(yùn)算符v 說(shuō)

45、明:說(shuō)明:qJava中,任何數(shù)據(jù)類(lèi)型的數(shù)據(jù)(包括基本類(lèi)型和引用類(lèi)中,任何數(shù)據(jù)類(lèi)型的數(shù)據(jù)(包括基本類(lèi)型和引用類(lèi)型)都可以通過(guò)型)都可以通過(guò)=或或!=來(lái)比較是否相等來(lái)比較是否相等(這與這與C、C+不不同同)。q關(guān)系運(yùn)算的結(jié)果返回關(guān)系運(yùn)算的結(jié)果返回true或或false,而不是,而不是C、C+中中的的1或或0。q布爾邏輯運(yùn)算符布爾邏輯運(yùn)算符q邏輯運(yùn)算符邏輯運(yùn)算符AND(&)、)、OR(|)以及)以及NOT(!)能生成一)能生成一個(gè)布爾值(個(gè)布爾值(true或或false)q說(shuō)明:說(shuō)明: 只可將只可將AND,OR或或NOT應(yīng)用于布爾值。不可將一個(gè)應(yīng)用于布爾值。不可將一個(gè)非布爾值當(dāng)作布爾值在邏輯

46、表達(dá)式中使用非布爾值當(dāng)作布爾值在邏輯表達(dá)式中使用例如:以下是非法的。例如:以下是非法的。int i=1,j=2;i & ji | j!i布爾邏輯運(yùn)算符布爾邏輯運(yùn)算符q說(shuō)明:說(shuō)明: 對(duì)浮點(diǎn)數(shù)字的比較是非常嚴(yán)格的。對(duì)浮點(diǎn)數(shù)字的比較是非常嚴(yán)格的。 短路運(yùn)算:短路運(yùn)算:1、a & b & c2、a | b | c3、x=y=1 a=5, b=3,c=2,d=1 (x=ab) &(y=cop1 op2op1右移op2位op1 op1 op2op1無(wú)符號(hào)右移op2位位運(yùn)算符(位運(yùn)算符(, &, | , )位運(yùn)算符(位運(yùn)算符( , , :將一個(gè)數(shù)的各二進(jìn)制位全部右移若

47、干位:將一個(gè)數(shù)的各二進(jìn)制位全部右移若干位,移到右端的低位被移到右端的低位被舍棄,最高位則移入原來(lái)高位的值舍棄,最高位則移入原來(lái)高位的值 例如例如 :a = 00110111,則,則 a2 = 00001101 b = 11010011,則,則 b2 = 11110100右移一位相當(dāng)于除右移一位相當(dāng)于除2取商取商例如:例如:128 1 returns 128/ 2 = 64 256 4 returns 256/ 16 = 16-256 4 returns -256/ 16 = -16 :一個(gè)數(shù)的各二進(jìn)制位無(wú)符號(hào)右移若干位,與運(yùn)算符:一個(gè)數(shù)的各二進(jìn)制位無(wú)符號(hào)右移若干位,與運(yùn)算符相同相同,移出的低位

48、被舍棄,但不同的是最高位都補(bǔ),移出的低位被舍棄,但不同的是最高位都補(bǔ)0。 如如: a = 00110111, 則則 a2 = 00001101b = 11010011, 則則 b2 = 00110100位運(yùn)算符位運(yùn)算符q 說(shuō)明:說(shuō)明: :用來(lái)將一個(gè)數(shù)的各二進(jìn)位全部左移若干位。高位左移后溢出舍棄,:用來(lái)將一個(gè)數(shù)的各二進(jìn)位全部左移若干位。高位左移后溢出舍棄,低位補(bǔ)低位補(bǔ)0。例如:例如:a = 00001111,則,則a2 = 00111100。在不產(chǎn)生溢出的情況下,左移一位相當(dāng)于乘在不產(chǎn)生溢出的情況下,左移一位相當(dāng)于乘2128 1 returns 128 * 2 = 25616 2 returns

49、 16 * 2*2 = 64類(lèi)型轉(zhuǎn)換類(lèi)型轉(zhuǎn)換v 基本數(shù)據(jù)類(lèi)型和引用類(lèi)型的數(shù)據(jù)都可以轉(zhuǎn)換類(lèi)型,但這基本數(shù)據(jù)類(lèi)型和引用類(lèi)型的數(shù)據(jù)都可以轉(zhuǎn)換類(lèi)型,但這種轉(zhuǎn)換是有限制的種轉(zhuǎn)換是有限制的v 類(lèi)型轉(zhuǎn)換分為兩種:自動(dòng)類(lèi)型轉(zhuǎn)換類(lèi)型轉(zhuǎn)換分為兩種:自動(dòng)類(lèi)型轉(zhuǎn)換(隱含轉(zhuǎn)換隱含轉(zhuǎn)換)和強(qiáng)制和強(qiáng)制類(lèi)型轉(zhuǎn)換類(lèi)型轉(zhuǎn)換(顯式轉(zhuǎn)換顯式轉(zhuǎn)換)v 隱含類(lèi)型轉(zhuǎn)換發(fā)生在把一個(gè)子類(lèi)型賦給一個(gè)超類(lèi)型時(shí)隱含類(lèi)型轉(zhuǎn)換發(fā)生在把一個(gè)子類(lèi)型賦給一個(gè)超類(lèi)型時(shí)v 顯式類(lèi)型轉(zhuǎn)換有一定的限制顯式類(lèi)型轉(zhuǎn)換有一定的限制基本數(shù)據(jù)類(lèi)型轉(zhuǎn)換序列基本數(shù)據(jù)類(lèi)型轉(zhuǎn)換序列charbyteshortintdoublefloatlong說(shuō)明:說(shuō)明:1 1,在本圖中,順著箭頭方向

50、的類(lèi)型轉(zhuǎn)換可以自動(dòng)進(jìn)行,在本圖中,順著箭頭方向的類(lèi)型轉(zhuǎn)換可以自動(dòng)進(jìn)行,逆箭頭方向的轉(zhuǎn)換或無(wú)箭頭類(lèi)型之間的轉(zhuǎn)換必須強(qiáng)制轉(zhuǎn)換。逆箭頭方向的轉(zhuǎn)換或無(wú)箭頭類(lèi)型之間的轉(zhuǎn)換必須強(qiáng)制轉(zhuǎn)換。2 2,能將,能將A A類(lèi)型變量自動(dòng)轉(zhuǎn)換成類(lèi)型變量自動(dòng)轉(zhuǎn)換成B B類(lèi)型變量的前提條件是這種類(lèi)型變量的前提條件是這種轉(zhuǎn)換不會(huì)造成數(shù)據(jù)和精度的丟失,即轉(zhuǎn)換不會(huì)造成數(shù)據(jù)和精度的丟失,即A A類(lèi)型的取值范圍是類(lèi)型的取值范圍是B B類(lèi)類(lèi)型的取值范圍的子集。型的取值范圍的子集。類(lèi)型轉(zhuǎn)換的例子類(lèi)型轉(zhuǎn)換的例子package sample;public class CastingTest public void implictCasting

51、() byte a = 0 x60; int ia = a; char b = a; int c = b; long d = c; long e = 1000000000L; float f = e; double g = f; String s = hello; Object o = s; public void explicitCasting() long l = 1000000L; int i = l; /(int)l; double d = 12345.678; float f = d; /(float)d; Object o = new String(Hello); String s

52、tr = o; /(String)o; 流程控制語(yǔ)句流程控制語(yǔ)句v1分支語(yǔ)句:分支語(yǔ)句:if-else, switch-case v2循環(huán)語(yǔ)句:循環(huán)語(yǔ)句:for, while, do-while v3 循環(huán)跳轉(zhuǎn)語(yǔ)句:循環(huán)跳轉(zhuǎn)語(yǔ)句: break, continue, label:選擇結(jié)構(gòu)選擇結(jié)構(gòu)if elseif( boolean expression) code block 1else code block 2if( boolean expression) code blockif( boolean expression 1) code block 1else if (boolean expr

53、ession 2) code block 2else code block 3if else 的語(yǔ)法結(jié)構(gòu)的語(yǔ)法結(jié)構(gòu)1,基本結(jié)構(gòu)基本結(jié)構(gòu)2,省略省略else分支分支3,多層嵌套多層嵌套選擇結(jié)構(gòu)選擇結(jié)構(gòu)switch casevswitch case 實(shí)現(xiàn)多分支選擇結(jié)構(gòu)的語(yǔ)句:實(shí)現(xiàn)多分支選擇結(jié)構(gòu)的語(yǔ)句:switch(expression) case 整數(shù)值整數(shù)值1 : 語(yǔ)句語(yǔ)句; break;case 整數(shù)值整數(shù)值2 : 語(yǔ)句語(yǔ)句; break;case 整數(shù)值整數(shù)值3 : 語(yǔ)句語(yǔ)句; break;case 整數(shù)值整數(shù)值4 : 語(yǔ)句語(yǔ)句; break;case 整數(shù)值整數(shù)值5 : 語(yǔ)句語(yǔ)句; bre

54、ak;/.default:語(yǔ)句語(yǔ)句;switch case 說(shuō)明說(shuō)明v說(shuō)明:說(shuō)明:1.表達(dá)式表達(dá)式expression可以是以下四種基本數(shù)據(jù)類(lèi)型和可以是以下四種基本數(shù)據(jù)類(lèi)型和枚舉枚舉類(lèi)型類(lèi)型(byte,short,int,char)2.case子句中的值必須是常量,而且所有子句中的值必須是常量,而且所有case子句中子句中的值應(yīng)是不同的。的值應(yīng)是不同的。3.case通常與通常與break語(yǔ)句聯(lián)用,以保證多路分支的正確語(yǔ)句聯(lián)用,以保證多路分支的正確實(shí)現(xiàn),多個(gè)實(shí)現(xiàn),多個(gè)case可以公用一組執(zhí)行語(yǔ)句??梢怨靡唤M執(zhí)行語(yǔ)句。switch case 應(yīng)用應(yīng)用例題:根據(jù)考試成績(jī)的等級(jí)打印出百分制分?jǐn)?shù)段。例

55、題:根據(jù)考試成績(jī)的等級(jí)打印出百分制分?jǐn)?shù)段。public class GradeLevel public static void main( String args ) System.out.println(n* first situation *); char grade=C; /normal use switch( grade ) case A : System.out.println(grade+ is 85100);break; case B : System.out.println(grade+ is 7084);break; case C : System.out.println(g

56、rade+ is 6069);break; case D : System.out.println(grade+ is 60);break; default : System.out.println(input error); for循環(huán)循環(huán)v格式格式for(初始表達(dá)式初始表達(dá)式; 布爾表達(dá)式布爾表達(dá)式; 步進(jìn)步進(jìn)) 循環(huán)體語(yǔ)句塊循環(huán)體語(yǔ)句塊v說(shuō)明:說(shuō)明:v無(wú)論初始表達(dá)式,布爾表達(dá)式,還是步進(jìn),都可以置空。無(wú)論初始表達(dá)式,布爾表達(dá)式,還是步進(jìn),都可以置空。v初始表達(dá)式在整個(gè)循環(huán)過(guò)程中只執(zhí)行一次。初始表達(dá)式在整個(gè)循環(huán)過(guò)程中只執(zhí)行一次。for(int i = 0,j = 1; i 10 &

57、 j != 11; i+, j+) /* body of for loop */;while 循環(huán)循環(huán)v格式:格式: while(布爾表達(dá)式布爾表達(dá)式) 循環(huán)體語(yǔ)句塊循環(huán)體語(yǔ)句塊 例子:例子:public class WhileTest public static void main(String args) double r = 0; while(r 0.99d) r = Math.random(); System.out.println(r); do while 循環(huán)循環(huán)v格式:格式:do 循環(huán)語(yǔ)句循環(huán)語(yǔ)句while(布爾表達(dá)式布爾表達(dá)式);v例子例子:breakv不帶標(biāo)號(hào)的不帶標(biāo)號(hào)的br

58、eak語(yǔ)句,跳出它所在的循環(huán)語(yǔ)句或語(yǔ)句,跳出它所在的循環(huán)語(yǔ)句或switch 語(yǔ)句,并從緊跟該循環(huán)語(yǔ)句或語(yǔ)句,并從緊跟該循環(huán)語(yǔ)句或switch 語(yǔ)句后語(yǔ)句后的第一條語(yǔ)句處執(zhí)行的第一條語(yǔ)句處執(zhí)行int n=13;boolean flag=true;for(int i=2;i=n/2;i+) if(n%i=0) flag=false; break; System.out.println(n+(flag?” is”:”is not”)+” a prime number”);帶標(biāo)號(hào)的帶標(biāo)號(hào)的 breakv 帶標(biāo)號(hào)的帶標(biāo)號(hào)的break語(yǔ)句:語(yǔ)句:對(duì)對(duì)Java來(lái)說(shuō),唯一用到標(biāo)簽的地方是在循環(huán)語(yǔ)句之前來(lái)說(shuō),唯

59、一用到標(biāo)簽的地方是在循環(huán)語(yǔ)句之前如:如:label1: 循環(huán)語(yǔ)句循環(huán)語(yǔ)句v 跳出標(biāo)號(hào)所指定的塊,并從緊跟該塊后的第一條語(yǔ)句處執(zhí)跳出標(biāo)號(hào)所指定的塊,并從緊跟該塊后的第一條語(yǔ)句處執(zhí)行行 continuev不帶標(biāo)號(hào)的不帶標(biāo)號(hào)的continue語(yǔ)句,用來(lái)結(jié)束本次循環(huán),跳過(guò)循環(huán)語(yǔ)句,用來(lái)結(jié)束本次循環(huán),跳過(guò)循環(huán)體中下面尚未執(zhí)行的語(yǔ)句,接著進(jìn)行終止條件的判斷,以決定體中下面尚未執(zhí)行的語(yǔ)句,接著進(jìn)行終止條件的判斷,以決定是否繼續(xù)循環(huán)是否繼續(xù)循環(huán) v帶標(biāo)號(hào)的帶標(biāo)號(hào)的continue語(yǔ)句跳轉(zhuǎn)到標(biāo)號(hào)指明的外層循環(huán)中。語(yǔ)句跳轉(zhuǎn)到標(biāo)號(hào)指明的外層循環(huán)中。本章總結(jié)本章總結(jié)v 在這一章里,我們討論了以下問(wèn)題在這一章里,我們討

60、論了以下問(wèn)題:q實(shí)例變量和局部變量實(shí)例變量和局部變量q實(shí)例變量的初始化實(shí)例變量的初始化qJava語(yǔ)言的運(yùn)算符語(yǔ)言的運(yùn)算符q基本數(shù)據(jù)類(lèi)型和引用類(lèi)型基本數(shù)據(jù)類(lèi)型和引用類(lèi)型q使用使用 if, switch, for, while, do, break and continue 來(lái)控制程序的流程來(lái)控制程序的流程練練 習(xí)習(xí)v 1.編寫(xiě)程序,判斷給定的某個(gè)年份是否是閏年。編寫(xiě)程序,判斷給定的某個(gè)年份是否是閏年。 閏年的判斷規(guī)則如下:閏年的判斷規(guī)則如下: (1)若某個(gè)年份能被)若某個(gè)年份能被4整除但不能被整除但不能被100整除,則是閏整除,則是閏年。年。 (2)若某個(gè)年份能被)若某個(gè)年份能被400整除,則也是閏年。整除,則也是閏年。v 2.給定一個(gè)百分制的分?jǐn)?shù),輸出相應(yīng)的等級(jí)。給定一個(gè)

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論