java簡(jiǎn)介和基本語(yǔ)法.ppt_第1頁(yè)
java簡(jiǎn)介和基本語(yǔ)法.ppt_第2頁(yè)
java簡(jiǎn)介和基本語(yǔ)法.ppt_第3頁(yè)
java簡(jiǎn)介和基本語(yǔ)法.ppt_第4頁(yè)
java簡(jiǎn)介和基本語(yǔ)法.ppt_第5頁(yè)
已閱讀5頁(yè),還剩77頁(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、面向?qū)ο蟪绦蛟O(shè)計(jì) - Java 語(yǔ)言,目錄,第一章 Java簡(jiǎn)介 第二章 Java基本語(yǔ)法 第三章 Java面向?qū)ο笏枷耄?) 第四章 Java異常處理 第五章 Java API ( ) 第六章 Java多線程 第七章 Java IO 第八章 Java項(xiàng)目實(shí)踐,第一章 Java簡(jiǎn)介,Java語(yǔ)言的發(fā)展歷程 Java的三大版本 Java虛擬機(jī)原理及Java跨平臺(tái)的原理 Java語(yǔ)言的特點(diǎn) Java開發(fā)環(huán)境的搭建及其設(shè)置 Java程序先睹為快,1.1 Java語(yǔ)言的發(fā)展歷程,90年12月,SUN公司的一個(gè)開發(fā)小組從事家用電器方面的小型研究項(xiàng)目。最初方案是用C+開發(fā)。開發(fā)人員James Goslin

2、g(吉姆斯高斯林 Java之父)對(duì)C+實(shí)現(xiàn)這一任務(wù)感到失望,決定自己編寫了一種更好的語(yǔ)言來(lái)實(shí)現(xiàn)這一項(xiàng)目.最初,這種語(yǔ)言命名為OAK,后來(lái)改名為Java(爪哇 d:v )。 Java最初為用于家用電器而開發(fā),Java的小型、安全、可移植性等特點(diǎn),使其適用于WEB。Java產(chǎn)生的時(shí)候,正是萬(wàn)維網(wǎng)日益流行的時(shí)候。 95年8月,Netscape公司的瀏覽器率先支持Java。隨后,Microsoft的Internet Explorer瀏覽器也支持Java。這樣,隨著萬(wàn)維網(wǎng)的日益普及,Java得到了廣泛的使用。(廣泛地應(yīng)用于Internet網(wǎng)絡(luò)程序設(shè)計(jì)。),1.1 Java語(yǔ)言的發(fā)展歷程,1995.8 J

3、ava語(yǔ)言誕生。 1996 JDK1.0發(fā)布,10個(gè)最主要操作系統(tǒng)供應(yīng)商申明將在其產(chǎn)品中支持Java技術(shù) 1997 JDK1.1發(fā)布。 1998 JDK1.1下載量超過(guò)200萬(wàn)次,JDK1.2(稱Java2)發(fā)布。 1999 Java被分成J2SE、J2EE 和J2ME,JSP/Servlet技術(shù)誕生。 2000 JDK1.3發(fā)布, JDK1.4發(fā)布。 2001 Nokia公司宣布到2003年將出售1億部支持Java的手機(jī),J2EE1.3發(fā)布。 2002 J2EE1.4發(fā)布,自此Java的計(jì)算能力有了大幅度提升.J2EE SDK的下載量達(dá)到200萬(wàn)次. 2003 5.5億臺(tái)桌面機(jī)上運(yùn)行Java

4、程序,75%的開發(fā)人員將Java作為首要開發(fā)工具 2004 J2SE1.5發(fā)布,這是Java語(yǔ)言的發(fā)展史上的又一里程碑事件。為了表示這個(gè)版本的重要性,J2SE1.5更名為J2SE5.0。 2005 JavaOne大會(huì)召開,Sun公司公開Java SE6。此時(shí),Java的各種版本被更名,取消其中的數(shù)字2:J2EE更名為Java EE, J2SE更名為Java SE,J2ME更名為Java ME,1.2 Java的三大版本,J2SE (Java2 Standard Edition) 標(biāo)準(zhǔn)版,定位在客戶端,主要用于桌面應(yīng)用軟件的編程 J2ME (Java2 Micro Edition) 微型版,主要

5、應(yīng)用于嵌入式系統(tǒng)開發(fā),如手機(jī)和PDA的編程 J2EE (Java2 Enterprise Edition)企業(yè)版,定義在服務(wù)器端,主要用于分布式網(wǎng)絡(luò)程序開發(fā),如電子商務(wù)網(wǎng)站和ERP系統(tǒng) 2005 JavaOne大會(huì)召開,Sun公司公開Java SE6。此時(shí),Java的各種版本被更名,取消其中的數(shù)字“2”:J2EE更名為Java EE, J2SE更名為Java SE,J2ME更名為Java ME。,1.3 Java虛擬機(jī)及跨平臺(tái)的原理,JVM:Java虛擬機(jī)(Java Virtual Machine),運(yùn)行Java字節(jié)碼的假想的計(jì)算機(jī) Java虛擬機(jī)是Java最核心技術(shù),也是跨平臺(tái)的基礎(chǔ)。 JV

6、M有自己的堆棧、 “ CPU”等定義,是用軟件模擬出一臺(tái)假想的計(jì)算機(jī),Sun公司制定了它的技術(shù)規(guī)范。,1.3 Java虛擬機(jī)及跨平臺(tái)的原理,Java以前的高級(jí)語(yǔ)言例如 C /C+語(yǔ)言,不同種類的計(jì)算機(jī)有不同的機(jī)器語(yǔ)言,1.3 Java虛擬機(jī)及跨平臺(tái)的原理,機(jī)器語(yǔ)言決定代碼移植的可行性,為一種計(jì)算機(jī)編寫的代碼不能在另一種計(jì)算機(jī)上運(yùn)行,Software for IBM Machine,IBM,1.3 Java虛擬機(jī)及跨平臺(tái)的原理,通過(guò)“編譯器”將Java源程序編譯成Java 字節(jié)碼文件(.class) (字節(jié)碼文件采用結(jié)構(gòu)中立的中間文件格式) 通過(guò)“解釋器”將Java字節(jié)碼文件解釋為對(duì)應(yīng)機(jī)器語(yǔ)言,

7、并運(yùn)行,1.3 Java虛擬機(jī)及跨平臺(tái)的原理,兩種過(guò)程比較Java跨平臺(tái)原理,“一次編譯 到處運(yùn)行”,1.4 Java語(yǔ)言的特點(diǎn),Java是跨平臺(tái)的 Java是簡(jiǎn)單的 Java是安全的 Java是完全面向?qū)ο蟮?Java是健壯的,1.4 Java語(yǔ)言的特點(diǎn),Java是跨平臺(tái)的 Java程序的跨平臺(tái)主要是指字節(jié)碼文件可以在任何具有Java虛擬機(jī)的計(jì)算機(jī)或者電子設(shè)備上運(yùn)行,Java虛擬機(jī)中的Java解釋器負(fù)責(zé)將字節(jié)碼文件解釋成為特定的機(jī)器碼進(jìn)行運(yùn)行。,1.4 Java語(yǔ)言的特點(diǎn),Java是簡(jiǎn)單的 不再有#include 和#define 等預(yù)處理功能 不再有struct,union及typedef

8、 不再有函數(shù)、 不再有指針、不再有多重繼承 不再有g(shù)oto 不再有操作符重載(Operatior Overloading) 不再有全局變量 取消自動(dòng)類型轉(zhuǎn)換,要求強(qiáng)制轉(zhuǎn)換 不再有手動(dòng)內(nèi)存管理,1.4 Java語(yǔ)言的特點(diǎn),Java是安全的 Java取消了強(qiáng)大但又危險(xiǎn)的指針。由于指針可進(jìn)行移動(dòng)運(yùn)算,指針可隨便指向一個(gè)內(nèi)存區(qū)域,而不管這個(gè)區(qū)域是否可用,這樣做是危險(xiǎn)的,因?yàn)樵瓉?lái)這個(gè)內(nèi)存地址可能存儲(chǔ)著重要數(shù)據(jù)或者是其他程序運(yùn)行所占用的, 并且使用指針也容易數(shù)組越界。 Java提供了自動(dòng)內(nèi)存管理機(jī)制,由垃圾回收器在后臺(tái)自動(dòng)回收, Java在字節(jié)碼的傳輸過(guò)程中使用了公開密鑰加密機(jī)制(PKC)。 而在運(yùn)行環(huán)境

9、提供了四級(jí)安全性保障機(jī)制: -字節(jié)碼校驗(yàn)器 -類裝載器 -運(yùn)行時(shí)內(nèi)存布局 -文件訪問(wèn)限制,1.4 Java語(yǔ)言的特點(diǎn),Java是完全面向?qū)ο蟮?Java和C+都是面向?qū)ο笳Z(yǔ)言。也就是說(shuō),它們都能夠?qū)崿F(xiàn)面向?qū)ο笏枷耄ǚ庋b,繼承,多態(tài))。 由于C+為了照顧大量C語(yǔ)言使用者而兼容了C,使得自身僅僅成為了帶類的C語(yǔ)言,多少影響了其面向?qū)ο蟮膹氐仔裕?Java則是完全的面向?qū)ο笳Z(yǔ)言,它句法更清晰,規(guī)模更小,更易學(xué)。它是在對(duì)多種程序設(shè)計(jì)語(yǔ)言進(jìn)行了深入細(xì)致研究的基礎(chǔ)上,據(jù)棄了其他語(yǔ)言的不足之處,從根本上解決了c+的固有缺陷。,1.4 Java語(yǔ)言的特點(diǎn),Java是健壯的 Java的強(qiáng)制類型機(jī)制、異常處理、垃

10、圾的自動(dòng)收集等是Java程序健壯性的重要保證。 對(duì)指針的丟棄是Java的明智選擇。 Java的安全檢查機(jī)制使得Java更具健壯性。,1.5 Java開發(fā)環(huán)境的搭建及其設(shè)置,Java開發(fā)環(huán)境 JDK(Java Development Kit)Java開發(fā)工具包 Java編輯器(記事本,EditPlus,Eclipse) JDK幫助文檔(兩種格式:html和chm ),1.5 Java開發(fā)環(huán)境的搭建及其設(shè)置,安裝JDK Javabin的目錄下包含義下主要文件: Javac: Java編譯器,負(fù)責(zé)將.Java源文件編譯成Java字節(jié)碼.class文件。 Java: Java解釋器,負(fù)責(zé)解釋Java字

11、節(jié)碼文件,并運(yùn)行該文件。 Javalib子目錄 Java標(biāo)準(zhǔn)類庫(kù)。rt.jar是核心 設(shè)置環(huán)境變量 通過(guò)“我的電腦”-“屬性”-“高級(jí)”-“環(huán)境變量” path c:Javabin classpath c:myJava,1.5 Java開發(fā)環(huán)境的搭建及其設(shè)置,1.5 Java開發(fā)環(huán)境的搭建及其設(shè)置,環(huán)境變量path的作用 設(shè)置供操作系統(tǒng)去尋找和執(zhí)行應(yīng)用程序的路徑,例如c:jdkbinJava.exe 如果操作系統(tǒng)在當(dāng)前目錄下沒有找到我們想要執(zhí)行的程序和命令時(shí),操作系統(tǒng)就會(huì)按照path環(huán)境變量指定的目錄依次去查找,以最先找到的為準(zhǔn)。 classpath的作用 讓JVM按照classpath指定的

12、目錄去尋找要裝載并執(zhí)行的class類文件 可用點(diǎn)號(hào)(.)來(lái)默認(rèn)指定當(dāng)前目錄,例:c:set classpath=c:myJava;. 我們用到的包和類主要在X:Javajdk1.5.0_08jrelibrt.jar, JVM會(huì)自動(dòng)找到這個(gè)jar包,所以我們?cè)谑褂眠@個(gè)jar包中的類時(shí),無(wú)需再使用classpath類指定。,1.5 Java開發(fā)環(huán)境的搭建及其設(shè)置,Eclipse的安裝 Java集成開發(fā)環(huán)境(IDE),也支持c+ 開源項(xiàng)目,后來(lái)居上,IBM功不可沒 Eclipse:日食 若進(jìn)行J2EE開發(fā),還要加MyEclipse插件 MyEclipse是Eclipse的插件,也是一款功能強(qiáng)大的J2

13、EE集成開發(fā)環(huán)境,支持代碼編寫、配置、測(cè)試以及除錯(cuò)。 Eclipse是綠色安裝軟件,直接解壓即可。 現(xiàn)在直接安裝集成Eclipse的MyEclipse即可。,1.5 Java開發(fā)環(huán)境的搭建及其設(shè)置,JDK幫助文檔 SUN公司為JDK工具包提供了一整套文檔資料,我們習(xí)慣上稱之為JDK文檔。 JDK文檔中提供了Java中的各種技術(shù)的詳細(xì)資料,以及JDK中提供的各種類的幫助說(shuō)明。 JDK文檔是Java語(yǔ)言的完整說(shuō)明,大多數(shù)書籍中的類的介紹都要參照它來(lái)完成,它是編程者經(jīng)常查閱的資料。 兩種格式:html和chm,1.6 Java程序先睹為快,/*一個(gè)簡(jiǎn)單的Application程序;*/ public

14、 class Test public static void main(String args) System.out.println(“Hello World!”); /chaper1.Test,1.6 Java程序先睹為快,定義類時(shí)的注意點(diǎn): 1、一個(gè)Java類必須有一個(gè)class修飾符。 2、public static void main(String args)方法是該類被JVM解釋器執(zhí)行的入口。寫法是固定的。 3、System.out.println(“”)是標(biāo)準(zhǔn)的輸出語(yǔ)句,可將信息顯示在控制臺(tái)上。 4、如果類定義時(shí)加了public修飾符則類名必須和文件名一致。否則類名和文件名可以隨

15、意。 5、一個(gè)文件中可以有多個(gè)class類定義,但最多只能有一個(gè)public class類。,1.6 Java程序先睹為快,用Javac編譯源文件 c:Javac Test.Java 生成 className.class。 用Java 運(yùn)行編譯后的字節(jié)碼文件 c:Java className 編譯時(shí)必須加上擴(kuò)展名.java。 運(yùn)行的是類而非class文件,所以類名后不能加擴(kuò)展名.class,1.6 Java程序先睹為快,/*一個(gè)稍微不簡(jiǎn)單的Application程序;*/ class Student /定義學(xué)生類 int id=123; /定義學(xué)生id String name=“l(fā)kl”; /

16、定義學(xué)生姓名 Public void show() /輸出id和姓名 System.out.println(“id=“+id+”,name=“+name); public class Test public static void main(String args) Student st=new Student(); /創(chuàng)建學(xué)生對(duì)象 st.show(); /調(diào)用show()方法 /chaper1.Student,1.6 Java程序先睹為快,單行注釋:從/開始到本行結(jié)束的內(nèi)容都是注釋, 多行注釋:在/*和*/之間的所有內(nèi)容都是注釋, 文檔注釋:在注釋方面Java提供一種C/C+所不具有的文檔注

17、釋方式。其核心思想是當(dāng)程序員編完程序以后,可以通過(guò)JDK提供的Javadoc命令,生成所編程序的API文檔,而該文檔中的內(nèi)容主要就是從文檔注釋中提取的。該API文檔以HTML文件的形式出現(xiàn),與Java幫助文檔的風(fēng)格與形式完全一致。凡是在/*和*/之間的內(nèi)容都是文檔注釋。例如下面的DocTest.Java文件: /* 這是一個(gè)文檔注釋的例子,主要介紹下面這個(gè)類 */public class DocTest/* 變量注釋,下面這個(gè)變量主要是充當(dāng)整數(shù)計(jì)數(shù) */public int i;/* 方法注釋,下面這個(gè)方法的主要功能是計(jì)數(shù) */public void count( ) ,課堂練習(xí),1、用Jav

18、a程序輸出我一定能學(xué)好Java 2、分別解釋J2ME、J2SE、J2EE。 3、什么是JVM?什么是JDK?,第二章 Java語(yǔ)言基礎(chǔ),2.1 Java程序的基本語(yǔ)法格式 2.2 常量和變量 2.3 運(yùn)算符 2.4 流程控制語(yǔ)句 2.5 數(shù)組,2.1.1 標(biāo)識(shí)符,由字母、0到9的數(shù)字、下劃線或美元符組成 由字母、下劃線或美元符開頭 不能與關(guān)鍵字名或布爾值(true和false)同名 標(biāo)識(shí)符字母區(qū)分大小寫 正確的: name, Name,user_name ,$name , _name, publicName; 錯(cuò)誤的: 9username ,user name , public,常量、變量、方

19、法、類和包的名稱,練習(xí)題,下列哪個(gè)是合法的Java標(biāo)識(shí)符?( ) A、Tree final double PI=3.14; int x =new intNUM; int r=2; int length=PI*r*2;,2.2.2變量定義,特性 名稱:標(biāo)識(shí)符,代表這塊內(nèi)存中的數(shù)據(jù)。 類型:根據(jù)所存儲(chǔ)的數(shù)據(jù)類型的不同,有各種不同類型的變量。 初始值:為其賦值或者是保留缺省值,變量在使用前必須先初始化。 作用域 : 在不同程序塊中的可用性及生命周期 private int a=15;,在程序執(zhí)行期間可根據(jù)需要經(jīng)常變化的值。,2.2.3 變量類型,基本數(shù)據(jù)類型,引用數(shù)據(jù)類型,數(shù)值型,字符型(char)

20、,布爾型(boolean),整數(shù)類型(byte, short, int, long),浮點(diǎn)類型(float, double),類(class),接口(interface),數(shù)組,2.2.4 基本數(shù)據(jù)類型的取值范圍,Char類型占兩個(gè)字節(jié),采用Unicode碼,而不是ASCII碼。 byte類型是整數(shù)類型的一種。 所有類型長(zhǎng)度固定,不隨系統(tǒng)而不同。,2.2.5基本數(shù)據(jù)類型之間的轉(zhuǎn)換,在賦值或運(yùn)算時(shí),要求數(shù)據(jù)類型相同,否則要進(jìn)行類型轉(zhuǎn)換 轉(zhuǎn)換方式: 自動(dòng)轉(zhuǎn)換 強(qiáng)制轉(zhuǎn)換 除boolean類型外,所有的原始數(shù)據(jù)類型因?yàn)楦髯缘木炔煌?,賦值時(shí)都要考慮這個(gè)問(wèn)題,2.2.5基本數(shù)據(jù)類型之間的轉(zhuǎn)換,運(yùn)算時(shí)的轉(zhuǎn)

21、換 整型,實(shí)型,字符型數(shù)據(jù)可以混合運(yùn)算。運(yùn)算中,不同類型的數(shù)據(jù)先轉(zhuǎn)化為同一類型,然后進(jìn)行運(yùn)算,轉(zhuǎn)換從低級(jí)到高級(jí)。 5+3.6+A; /chapter2.TypeConversion,2.2.5基本數(shù)據(jù)類型之間的轉(zhuǎn)換,賦值時(shí)的轉(zhuǎn)換 自動(dòng)類型轉(zhuǎn)換(左右) byte b = 1; int x = b; /b自動(dòng)轉(zhuǎn)換成int型 /chapter2.TypeConversion,1,0,0,0,1,byte,int,低-高 byte short,charint longfloat double,2.2.5基本數(shù)據(jù)類型之間的轉(zhuǎn)換,強(qiáng)制類型轉(zhuǎn)換(左右) byte a; int b=1234; /? a =

22、(byte) b; / 強(qiáng)制轉(zhuǎn)換 強(qiáng)轉(zhuǎn)時(shí),當(dāng)心丟失數(shù)據(jù)或失真,2.2.5基本數(shù)據(jù)類型之間的轉(zhuǎn)換,類型轉(zhuǎn)換實(shí)例 int a=5+3.6+A; int a=(int)(5+3.6+A); float f=3+3.6*4; double f=3+3.6*4; 總結(jié) =右側(cè):所有變量先轉(zhuǎn)換為字節(jié)數(shù)最多的數(shù)據(jù)類型,再計(jì)算 =兩側(cè):左側(cè)寬度右側(cè)寬度 自動(dòng)轉(zhuǎn)換 左側(cè)寬度右側(cè)寬度 強(qiáng)制轉(zhuǎn)換 int x=3.4; 在c語(yǔ)言中合法,在Java中需強(qiáng)制轉(zhuǎn)換。int x=(int )3.4,練習(xí)題,short s1 = 1; s1 = s1 + 1;有什么錯(cuò)? short s1 = 1; s1 += 1;有什么錯(cuò)?

23、請(qǐng)各位同學(xué)在自己的計(jì)算機(jī)上檢測(cè)一下 /chapter2. TypeConversion,2.3.1 運(yùn)算符類型,運(yùn)算符是一種特殊符號(hào),用以表示數(shù)據(jù)的運(yùn)算、賦值和比較,一般由一至三個(gè)字符組成 。 運(yùn)算符共分以下幾種 算術(shù)運(yùn)算符 賦值運(yùn)算符 關(guān)系運(yùn)算符 邏輯運(yùn)算符 位運(yùn)算符,2.3.2 算術(shù)運(yùn)算符,注意: 1:/ 除 6/4=1 6/4.0=1.5 2: %取模(求余) 6%4=2 3:+ 6+a=103 6+“a“=6a 4:+ a=2;b=+a+9; a=2;b=a+9; chapter2. Operators,2.3.3 賦值運(yùn)算符,a=3;b=2;a*=b+2;- a=a*(b+2); a

24、=a*b+2; x=y=z=3;,2.3.4 關(guān)系運(yùn)算符,關(guān)系表達(dá)式將返回一個(gè)布爾結(jié)果。 true/false,若int a=3;則 if(a=3) ? if(3=a) ? 若boolean b=false; if(b=true) ? if(b=true) ? String aa =“student”; If(aa instanceof String) If(“student” instance of String),比較運(yùn)算符“=”不能誤寫成“=” ,切記!切記!,2.3.5 邏輯運(yùn)算符,邏輯運(yùn)算符與布爾操作數(shù)一起使用,2.3.5 邏輯運(yùn)算符,“ x = 4,y = 4,b = false。

25、 “|”和“|”的區(qū)別與“ salary = daysPresent = 20 ? 2000 : 3000; System.out.println(您本月薪資為 $+salary); /chapter2.TernaryOp,2.3.8運(yùn)算符的優(yōu)先級(jí),高 優(yōu) 先級(jí) 低,2.4.1 流程控制結(jié)構(gòu),流程控制語(yǔ)句是用來(lái)控制程序中各語(yǔ)句執(zhí)行順序的語(yǔ)句,可以把單個(gè)語(yǔ)句組合成能完成一定功能的小邏輯模塊。 其流程控制方式采用結(jié)構(gòu)化程序設(shè)計(jì)中規(guī)定的三種基本流程結(jié)構(gòu),即:順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu),如下圖所示:,2.4.2 流程控制語(yǔ)句,選擇 if-else(雙分支) Switch(多分支) 循環(huán) while

26、do-while for,跳轉(zhuǎn) break Continue return,2.4.3 if-else 選擇語(yǔ)句,if-else 結(jié)構(gòu)的語(yǔ)法為:,if (條件) 語(yǔ)句1; else 語(yǔ)句2;,if (條件) 語(yǔ)句組; else 語(yǔ)句組; ,if和else塊中只有一條語(yǔ)句,if和else塊中有多條語(yǔ)句,if (條件1) 語(yǔ)句1; else if (條件2) 語(yǔ)句2; else if (條件m) 語(yǔ)句 m; else 語(yǔ)句n; ,條件結(jié)果必須是布爾值,2.4.3 if-else 選擇語(yǔ)句,if (i 10) return i * 100; else return i * 10; 以上代碼片斷等效于

27、:return i 10 ? i * 100 : i * 10; if (i 10) i=i*100; return i; else i=i*10; return i;,2.4.4 switch 選擇語(yǔ)句,switch(表達(dá)式) case 常量值 1: 語(yǔ)句(組); break; case 常量值 2: 語(yǔ)句(組); break; case 常量值 N: 語(yǔ)句(組); break; default: 語(yǔ)句(組); ,表達(dá)式必須為byte,short,int或char類型,常量值必須是與表達(dá)式類型兼容的特定的一個(gè)常量 不允許有重復(fù)的case值,default子句為可選,2.4.4 switch

28、選擇語(yǔ)句,switch舉例 int i = 3; switch (i) default: System.out.println(default); case 0: System.out.println(zero); case 1: System.out.println(one); break; case 2: System.out.println(two); /chapter2.SwitchCase,2.4.5 選擇結(jié)構(gòu)舉例,public class IfElse public static void main(String args) int score = 59; if(score60)

29、System.out.println(你此次考試沒及格,你得加油哦); else if(score70) System.out.println(恭喜你,考試及格了); else if(score80) System.out.println(你的成績(jī)中等); else if(score=90) System.out.println(你的成績(jī)還不錯(cuò)啊); else System.out.println(你的成績(jī)非常好); ,2.4.5 選擇結(jié)構(gòu)舉例,class SwitchCase public static void main(String args) int score = 88; switc

30、h(score/10) case 0: case 1: case 2: case 3: case 4: case 5: System.out.println(你考試沒及格); break; case 6: System.out.println(恭喜你,你終于有一次及格了); break; case 7: System.out.println(你的成績(jī)?cè)诎嗌现械?; break; case 8: System.out.println(你的成績(jī)?cè)诎嗌虾芎?; break; default: System.out.println(你考的真的太好了!); ,while 循環(huán) while(條件) 語(yǔ)句組

31、; ,2.4.5 while循環(huán)語(yǔ)句,1+2+3+100=? int i=1; int sum=0; while(i=100) sum+=i; i+; System.out.println(“sum=”+sum);,“當(dāng)型”循環(huán),先判斷條件再執(zhí)行,可能一次也不執(zhí)行,2.4.6 do-while循環(huán)語(yǔ)句,do-while循環(huán) do 語(yǔ)句組; while(條件);,1+2+3+100=? int i=1; int sum=0; do sum+=i; i+; while(i=100); System.out.println(“sum=”+sum);,“直到型”循環(huán),先執(zhí)行再判斷條件,也就是說(shuō),至少可

32、以執(zhí)行一次 在while(條件)后面的分號(hào)不要忘,2.4.7 for循環(huán)語(yǔ)句,for 循環(huán) for(變量初始化;循環(huán)條件表達(dá)式;遞增或遞減變量的值) 語(yǔ)句組; ,int sum=0; for(int i=1;i=100;i+) sum+=i; System.out.println(sum=+sum); /Thats call it today!,“初始化”和“循環(huán)條件表達(dá)式”部分可以使用逗號(hào)來(lái)執(zhí)行多個(gè)操作 如果三個(gè)部分都為空語(yǔ)句(分號(hào)不能省),相當(dāng)于一個(gè)無(wú)限循環(huán),2.4.7 for循環(huán)語(yǔ)句,多重循環(huán):打印金字塔 class Formore public static void main(Str

33、ing args) for(int i=0;i8;i+) for(int j=0;j8-i;j+)System.out.print( ); for (int j = 0; j 2*i-1; j+) System.out.print(*); System.out.println(); /chapter2. Formore,2.4.8 break語(yǔ)句,遇到 break 語(yǔ)句時(shí),將跳出當(dāng)前循環(huán)。 import Javax.swing.*; class TestBreak1 public static void main(String arg) String strResult; while(true

34、) strResult=JOptionPane.showInputDialog(請(qǐng)輸入一個(gè)值:); if(strResult.equals(exit) System.out.println(good-by!); break; else System.out.println(strResult); / TestBreak1,結(jié)束本層循環(huán),class TestBreak2 public static void main(String args) outer:for(int i=2;i10) break outer; System.out.println( +i+j); ,2.4.9 continu

35、e語(yǔ)句,遇到 continue語(yǔ)句時(shí),將跳到當(dāng)前循環(huán)的開始處 。continue 語(yǔ)句之后的語(yǔ)句將不再執(zhí)行 for (int i=0;i100;i+) if(i%6!=0) continue; System.out.println(i); /Chapter2.ContinueExample,結(jié)束本次循環(huán),2.4.10 return返回語(yǔ)句,return語(yǔ)句從當(dāng)前方法退出,返回到調(diào)用該方法的語(yǔ)句處,并從該語(yǔ)句的下條語(yǔ)句處繼續(xù)執(zhí)行程序。 返回語(yǔ)句的兩種格式: 1、return expression 返回一個(gè)值給調(diào)用該方法的語(yǔ)句。 返回值的數(shù)據(jù)類型必須和方法聲明中的返回值類型一致或是精度低于聲明的數(shù)

36、據(jù)類型。 2、return 當(dāng)方法聲明中用void聲明返回類型為空時(shí),應(yīng)使用這種返回類型,它不返回任何值。,2.5.1 數(shù)組定義,數(shù)組:是有相同類型的、用一個(gè)標(biāo)識(shí)符名稱封裝到一起的一個(gè)對(duì)象序列或基本數(shù)據(jù)類型數(shù)據(jù)序列。 數(shù)組是一種最簡(jiǎn)單的復(fù)合數(shù)據(jù)類型。 數(shù)組可以是一維的也可以是多維的。,2.5.2 一維數(shù)組,舉例 public class ArrayTest public static void main(String args) /*先聲明,再賦值*/ int x=new int5; for(int i=0;ix.length;i+) xi=i*10; for(int j=0;jx.lengt

37、h;j+) System.out.println(x+j+=+xj); /*聲明的同時(shí)就賦值*/ int y = 12,45,2,900,476; System.out.println(數(shù)組y的長(zhǎng)度:+y.length); ,/*用5個(gè)隨機(jī)數(shù)填充一個(gè)int型數(shù)組a*/ Random r = new Random(); int z = new int5; /*一維數(shù)組的解析*/ for(int i =0;iz.length;i+) int temp = r.nextInt(); zi=temp; System.out.println(“z+i+=+zi); /chapter2. ArrayTes

38、t,2.5.2 一維數(shù)組,定義(聲明)+分配內(nèi)存空間 int x; /int x ; x= new int10; 等價(jià)于 方法一:int x = new int10; 方法二:int x = new int10;,2.5.2 一維數(shù)組,int x;,X = new int100,此時(shí)還未給數(shù)組的元素分配內(nèi)存,數(shù)組下標(biāo)0 開始, 默認(rèn)值為0,2.5.2 一維數(shù)組,方法一:int x = new int10; 方法二:int x= new int10; 說(shuō)明: x只是代表數(shù)組的代號(hào)或名子,它是特殊變量,用于存儲(chǔ)地址;x的存儲(chǔ)空間在棧內(nèi)存中分配 /int x10 聲明的時(shí)候不能指定長(zhǎng)度 new int10:用new為具有十個(gè)元素的整型數(shù)組在堆內(nèi)存中分配存儲(chǔ)空間,2.5.2 一維數(shù)組,賦值 int x; x= new int10; for(int i=0;ix.length;i+) xi=i; 初始化 int x=new int41,2,3,4; / 不允許指

溫馨提示

  • 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)論