Java程序設(shè)計案例教程(慕課版)全套課件_第1頁
Java程序設(shè)計案例教程(慕課版)全套課件_第2頁
Java程序設(shè)計案例教程(慕課版)全套課件_第3頁
Java程序設(shè)計案例教程(慕課版)全套課件_第4頁
Java程序設(shè)計案例教程(慕課版)全套課件_第5頁
已閱讀5頁,還剩428頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

課件制作人:明日科技第

1

章搭建Java環(huán)境1.1Java語言簡介1.2搭建Java開發(fā)環(huán)境1.3熟悉Eclipse開發(fā)工具第1章搭建Java環(huán)境.ppt第2章Java語言基礎(chǔ).ppt第3章面向?qū)ο缶幊袒A(chǔ).ppt第4章推箱子游戲.pptx第5章飛機大戰(zhàn)游戲.pptx第6章文件處理器.pptx第7章圖片處理工具.pptx第8章學(xué)生成績管理系統(tǒng).pptx第9章藍宇快遞打印系統(tǒng).pptx第10章物流配貨系統(tǒng).pptx第11章看店寶(京東版).pptx課件制作人:明日科技Java簡介Java語言得名于印度尼西亞一個盛產(chǎn)咖啡的島嶼,中文名叫爪哇,其寓意是為世人端上一杯熱咖啡。正如認識一個新事物一樣,學(xué)習(xí)一門語言應(yīng)該是從整體到細節(jié),再從細節(jié)到整體的過程。學(xué)習(xí)Java語言也是一樣,首先需要對其有一個整體的了解,然后再慢慢的學(xué)習(xí)具體內(nèi)容,最后達到完全掌握Java語言的目的。目前,Java主要有3個獨立的版本。JavaSEJavaEEJavaME課件制作人:明日科技JavaSEJavaSE是Java語言的標準版本,包含Java基礎(chǔ)類庫和語法。它用于開發(fā)具有豐富的GUI(圖形用戶界面)、復(fù)雜邏輯和高性能的桌面應(yīng)用程序。課件制作人:明日科技JavaEEJavaEE用于編寫企業(yè)級應(yīng)用程序。它是一個標準的多層體系結(jié)構(gòu),可以將企業(yè)級應(yīng)用程序劃分為客戶層、表示層、業(yè)務(wù)層和數(shù)據(jù)層,主要用于開發(fā)和部署分布式、基于組件、安全可靠、可伸縮和易于管理的企業(yè)級應(yīng)用程序。課件制作人:明日科技JavaMEJ2ME主要用于開發(fā)具有有限的連接、內(nèi)存和用戶界面能力的設(shè)備應(yīng)用程序。例如移動電話(手機)、PDA(電子商務(wù))、能夠接入電纜服務(wù)的機頂盒或者各種終端和其他消費電子產(chǎn)品。課件制作人:明日科技Java語言誕生背景Java語言是Sun公司于1990年開發(fā)的,當時Green項目小組的研究人員正在致力于為未來的智能設(shè)備開發(fā)出一種新的編程語言,由于該小組的成員JamesGosling對C++的執(zhí)行過程中的表現(xiàn)非常不滿,于是把自己封閉在辦公室里編寫了一種新的語言,并將其命名為Oak。課件制作人:明日科技OakOak就是Java語言的前身,這個名稱源于Gosling辦公室的窗外正好有一棵橡樹(Oak)。這時的Oak已經(jīng)具備安全性、網(wǎng)絡(luò)通信、面向?qū)ο蟆arbageCollected、多線程等特性,是一款相當優(yōu)秀的程序語言。后來,由于去注冊O(shè)ak商標時,發(fā)現(xiàn)它已經(jīng)被另一家公司注冊,所以不得不改名。要取什么名字呢,工程師們邊喝咖啡邊討論著,看看手上的咖啡,再想到印度尼西亞有一個重要的盛產(chǎn)咖啡的島嶼,中文名叫爪哇,于是將其改名為Java。課件制作人:明日科技HotJava隨著Internet的迅速發(fā)展,Web的應(yīng)用日益廣泛,Java語言也得到了迅速發(fā)展。1994年,Gosling用Java開發(fā)了一個實時性較高、可靠、安全、有交互功能的新型Web瀏覽器,它不依賴于任何硬件平臺和軟件平臺。這種瀏覽器名稱為HotJava,并于1995年同Java語言一起,正式在業(yè)界對外發(fā)表,引起了巨大的轟動,Java的地位隨之而得到肯定。此后的發(fā)展非常迅速。課件制作人:明日科技Java語言的特點Java語言適用于Internet環(huán)境,是一種被廣泛使用的網(wǎng)絡(luò)編程語言,它具有簡單、面向?qū)ο?、可移植、分布性、解釋器通用性、穩(wěn)健、多線程、安全及高性能等語言特性。另外Java語言還提供了豐富的類庫,方便用戶進行自定義操作。下面將對Java語言的特點進行具體介紹。課件制作人:明日科技簡單Java語言的語法規(guī)則和C++類似。它通過提供最基本的方法完成指定的任務(wù)。但Java語言對C++進行了簡化和提高。例如,指針和多重繼承通常使程序變得復(fù)雜,Java用接口取代了多重繼承,并取消了指針。Java語言還通過實現(xiàn)自動垃圾收集大大簡化了程序設(shè)計人員的內(nèi)存管理工作。課件制作人:明日科技面向?qū)ο驤ava語言以面向?qū)ο鬄榛A(chǔ)。在Java語言中,不能在類外面定義單獨的數(shù)據(jù)和函數(shù),所有對象都要派生于同一個基類,并共享它所有功能,也就是說,Java語言最外部的數(shù)據(jù)類型是對象,所有的元素都要通過類和對象來訪問。課件制作人:明日科技可移植性Java程序具有與體系結(jié)構(gòu)無關(guān)的特性。這一特征使Java程序可以方便地移植到網(wǎng)絡(luò)的不同機器。同時,Java的類庫中也實現(xiàn)了針對不同平臺的接口,使這些類庫可以移植。課件制作人:明日科技分布性Java語言從誕生就和網(wǎng)絡(luò)緊密地聯(lián)系在一起。在Java中還內(nèi)置了TCP/IP、HTTP和FTP等協(xié)議類庫。因此,Java應(yīng)用程序可以通過URL地址打開訪問網(wǎng)絡(luò)上的對象,訪問方式與訪問本地文件系統(tǒng)幾乎完全相同。課件制作人:明日科技解釋器通用性運行Java程序需要解釋器。Java解釋器能直接對Java字節(jié)碼進行解釋執(zhí)行。字節(jié)代碼獨立于機器,它本身攜帶了許多編譯時信息,使得連接過程更加簡單,因此可以在任何有Java解釋器的機器上運行。課件制作人:明日科技穩(wěn)健Java能夠檢查程序在編譯和運行時的錯誤。類型檢查能幫助用戶檢查出許多在開發(fā)早期出現(xiàn)的錯誤。同時很多集成開發(fā)工具(IDE)的出現(xiàn)使編譯和運行Java程序更加容易,并且很多集成開發(fā)工具(如Eclipse)都是免費的。課件制作人:明日科技安全Java通常被應(yīng)用在網(wǎng)絡(luò)環(huán)境中,為此,Java提供了一個安全機制以防止惡意代碼攻擊。當使用支持Java的瀏覽器上網(wǎng)時,可以放心的運行JavaApplet程序,不必擔心病毒的感染和惡意企圖。課件制作人:明日科技多線程多線程是程序同時執(zhí)行多個任務(wù)的一種功能。多線程機制能夠使應(yīng)用程序并行執(zhí)行多項任務(wù),而且同步機制保證了各線程對共享數(shù)據(jù)的正確操作。使用多線程,程序設(shè)計人員可以用不同的線程完成特定的行為,使程序具有更好的交互能力和實時運行能力。課件制作人:明日科技高性能由于Java程序是可解釋的,字節(jié)碼不是直接由系統(tǒng)執(zhí)行,而是在解釋器中運行,所以它的速度比多數(shù)交互式應(yīng)用程序提高了很多。課件制作人:明日科技搭建Java開發(fā)環(huán)境下載JDK安裝JDK配置和測試JDK課件制作人:明日科技第一個Java程序在還沒有正式開發(fā)Java程序前,首先需要對Java程序的開發(fā)過程有所了解。開發(fā)Java程序總體上可以分為3個步驟:編寫Java源文件編譯Java源文件運行Java程序課件制作人:明日科技編寫Java源文件Java源文件是一種純文本文件,它可以使用任何文本編輯器進行編輯,其擴展名為.java。例如,可以使用Windows的記事本編寫一個名稱為OneJavaApp.java的Java源文件。課件制作人:明日科技編譯Java源文件編譯Java源文件,也就是將Java源文件編譯(Compile)成Java類文件(擴展名為.class)。例如,將OneJavaApp.java文件編譯成OneJavaApp.class類文件使用如下命令:注:編譯Java的原文件,需要指定文件擴展名。javacOneJavaApp.java課件制作人:明日科技運行Java程序Java程序可以分為JavaApplication(Java應(yīng)用程序)和JavaApplet(Java小應(yīng)用程序)。其中,JavaApplication必須通過Java解釋器(java.exe)來解釋執(zhí)行其字節(jié)碼文件,即類文件,JavaApplet需要使用支持它的瀏覽器(如NetscapeNavigator或IE等)運行。運行Java應(yīng)用程序的命令如下:注:運行Java的類文件,不需要指定文件擴展名。javaOneJavaApp課件制作人:明日科技Java程序程序的基本結(jié)構(gòu)類和Java文件主方法關(guān)鍵字標識符Java語句注釋課件制作人:明日科技熟悉Eclipse開發(fā)工具1.Eclipse簡介(一)Eclipse是基于Java的,開放源碼的、可擴展的應(yīng)用開發(fā)平臺,它為編程人員提供了一流的Java集成開發(fā)環(huán)境(IntegratedDevelopmentEnvironment,IDE)。是一個可以用于構(gòu)建集成Web和應(yīng)用程序的開發(fā)工具平臺,其本身并不會提供大量的功能,而是通過插件來實現(xiàn)程序的快速開發(fā)功能。課件制作人:明日科技2.簡介(二)Eclipse是一個成熟的可擴展的體系結(jié)構(gòu)。它為創(chuàng)建可擴展的開發(fā)環(huán)境提供了一個平臺。這個平臺允許任何人構(gòu)建與環(huán)境或其他工具無縫集成的工具,而工具與Eclipse無縫集成的關(guān)鍵是插件。Eclipse還包括插件開發(fā)環(huán)境(PDE),PDE主要針對那些希望擴展Eclipse的編程人員而設(shè)定的。這也正是Eclipse最具魅力的地方。通過不斷的集成各種插件,Eclipse的功能也在不斷的擴展,以便支持各種不同的應(yīng)用。課件制作人:明日科技3.Eclipse簡介(三)Eclipse利用Java語言寫成,所以Eclipse可以支持跨平臺操作,但是需要SWT(StandardWidgetToolkit)的支持,不過這已經(jīng)不是什么大問題了,因為SWT已經(jīng)被移植到許多常見的平臺上,例如Windows、Linux、Solaris等多個操作系統(tǒng),甚至可以應(yīng)用到手機或者PDA程序開發(fā)中。課件制作人:明日科技3.Eclipse開發(fā)工具制作人:明日科技第2章Java語言基礎(chǔ)課件制作人:明日科技2.1數(shù)據(jù)類型Java語言中的數(shù)據(jù)類型劃分為兩大類,分別是基本數(shù)據(jù)類型和引用數(shù)據(jù)類型。其中基本數(shù)據(jù)類型由Java語言定義,不可以再進行劃分?;緮?shù)據(jù)類型的數(shù)據(jù)占用內(nèi)存的大小固定,在內(nèi)存中存入的是數(shù)值本身引用數(shù)據(jù)類型在內(nèi)存中存入的是引用數(shù)據(jù)的存放地址,并不是數(shù)據(jù)本身。Java語言中的數(shù)據(jù)類型分類情況如下圖所示:數(shù)據(jù)類型課件制作人:明日科技2.1.1基本數(shù)據(jù)類型基本數(shù)據(jù)類型分為:整數(shù)型浮點數(shù)型字符型邏輯型(布爾型)它們分別用來存儲整數(shù)、小數(shù)、字符和布爾值,下面將依次講解這4個基本數(shù)據(jù)類型的特征及使用方法。課件制作人:明日科技整數(shù)型聲明為整數(shù)型的常量或變量用來存儲整數(shù),整數(shù)型包括:字節(jié)型(byte)短整型(short)整型(int)長整型(long)這4個數(shù)據(jù)類型的區(qū)別是它們在內(nèi)存中所占用的字節(jié)數(shù)不同,因此,它們所能夠存儲的整數(shù)的取值范圍也不同。整數(shù)占用內(nèi)存大小以及取值范圍數(shù)據(jù)類型關(guān)鍵字內(nèi)存字節(jié)取值范圍字節(jié)型byte1個字節(jié)-128~127短整型short2個字節(jié)-32768~32767整型int4個字節(jié)-2147483648~2147483647長整型long8個字節(jié)-9223372036854775808~9223372036854775807課件制作人:明日科技長整型數(shù)值在為long型常量或變量賦值時,需要在所賦值的后面加上一個字母“L”(或“l(fā)”),說明所賦的值為long型。如果所賦的值未超出int型的取值范圍,也可以省略字母“L”(或“l(fā)”)。例如下面的代碼均是正確的。longla=9876543234L; //超出了int取值范圍,必須加“L”longlb=98765432L; //未超出int取值范圍,也可以加“L”longlc=98765432; //未超出int取值范圍,可以省略“L”課件制作人:明日科技浮點數(shù)聲明為浮點數(shù)型的常量或變量用來存儲小數(shù),浮點數(shù)包括單精度型(float)和雙精度(double)兩個基本數(shù)據(jù)類型,這兩個數(shù)據(jù)類型的區(qū)別是它們在內(nèi)存中所占用的字節(jié)數(shù)不同,因此,它們所能夠存儲的整數(shù)的取值范圍也不同數(shù)據(jù)類型關(guān)鍵字占用內(nèi)存字節(jié)數(shù)取值范圍單精度型float4字節(jié)1.4E-45~3.4028235E38雙精度型double8字節(jié)4.9E-324~1.7976931348623157E308課件制作人:明日科技float型數(shù)值在為float型常量或變量賦值時,需要在所賦值的后面加上一個字母“F”(或“f”),說明所賦的值為float型。如果所賦的值為整數(shù),并且未超出int型的取值范圍,也可以省略字母“F”(或“f”)。例如下面的代碼均是正確的。floatfa=9412.75F; //賦值為小數(shù),必須“F”floatfb=9876543210F; //賦值超出int取值范圍,必須“F”floatfc=9412F; //未超出int取值范圍,可以“F”floatfd=9412; //也可以省略“F”課件制作人:明日科技double型數(shù)值在為double型常量或變量賦值時,需要在所賦值的后面加上一個字母“D”(或“d”),說明所賦的值為double型。如果所賦的值為小數(shù),或者所賦的值為整數(shù),并且未超出int型的取值范圍,也可以省略字母“D”(或“d”)。例如下面的代碼均是正確的。doubleda=9412.75D; //所賦值為小數(shù),可以加上“D”doubledb=9412.75; //所賦值為小數(shù),也可以省略“D”doubledc=9412D; //未超出int取值范圍,可以加上“D”doubledd=9412; //未超出int取值范圍,可以省略“D”doublede=9876543210D; //超出int取值范圍,必須加上“D課件制作人:明日科技字符型聲明為字符型的常量或變量用來存儲單個字符,它占用內(nèi)存的2個字節(jié)來存儲,字符型利用關(guān)鍵字“char”進行聲明。Java中的字符通過Unicode字符編碼,以二進制的形式存儲到計算機中,計算機可通過數(shù)據(jù)類型判斷要輸出的是一個字符還是一個整數(shù)。Unicode編碼采用無符號編碼,一共可存儲65536個字符,所以Java中的字符幾乎可以處理所有國家的語言文字。課件制作人:明日科技字符型數(shù)值在為char型常量或變量賦值時,無論值是一個英文字母,或者是一個符號,還是一個漢字,必須將所賦的值放在英文狀態(tài)下的一對單引號中。例如下面的代碼分別將字母“M”、符號“*”和漢字“男”賦值給char型變量ca、cb和cc。charca='M'; //將大寫字母“M”賦值給char型變量charcb='*'; //將符號“*”賦值給char型變量charcc='男'; //將漢字“男”賦值給char型變量課件制作人:明日科技布爾型聲明為邏輯型的常量或變量用來存儲邏輯值,邏輯值只有true和false,分別用來代表邏輯判斷中的“真”和“假”,邏輯型利用關(guān)鍵字“boolean”進行聲明。例如下面的代碼分別將true和false賦值給變量ba和bb。booleanba=true; //將true賦值給變量babooleanbb=false; //將false賦值給變量bb課件制作人:明日科技布爾型也可以將邏輯表達式賦值給boolean型變量,例如下面的代碼分別將邏輯表達式“6<8”和邏輯表達式“6>8”賦值給boolean型變量ba和bb。booleanba=6<8; //將表達式“6<8”賦值給變量babooleanbb=6>8; //將表達式“6>8”賦值給變量bb課件制作人:明日科技2.2常量與變量常量和變量在程序代碼中隨處可見,下面就具體講解常量和變量的概念及使用要點,從而達到區(qū)別常量和變量的目的。課件制作人:明日科技2.2.1常量的概念及使用要點所謂常量,就是值永遠不允許被改變的量。如果要聲明一個常量,就必須用關(guān)鍵字final修飾,聲明常量的具體方式如下:

final

常量類型常量標識符;

例如:

finalintYOUTH_AGE; //聲明一個int型常量finalfloatPIE; //聲明一個float型常量注意:按照Java命名規(guī)則,常量標識符所有的字符都要大寫,各個單詞之間用下劃線_分隔課件制作人:明日科技常量在聲明常量時,通常情況下立即為其賦值,即立即對常量進行初始化,聲明并初始化常量的具體方式如下:

final

常量類型常量標識符=

常量值;例如:finalintYOUTH_AGE=18;//聲明int型常量,初始化為18finalfloatPIE=3.14F; //聲明float型常量,初始化為3.14說明:為float型常量賦值時,需要在數(shù)值的后面加上一個字母“F”或“f”。課件制作人:明日科技常量聲明多個同一類型的常量,可以采用下面的形式:

final

常量類型常量1=常量值1,常量2=常量值2,……;例如:finalintNUM1=14,NUM2=25,NUM3=36;注意:如果在聲明常量時已經(jīng)對其進行了初始化,則常量的值不允許再被修改課件制作人:明日科技2.2.2變量的概念及使用要點所謂變量,就是值可以被改變的量。聲明變量的具體方式如下:變量類型變量標識符;例如:注意:定義變量名時,按照Java的命名規(guī)則,第一個單詞的首字母小寫,其他單詞的首字母大寫,例如“partyMemberAge”。Stringname; //聲明String型變量intpartyMemberAge; //聲明int型變量課件制作人:明日科技變量在聲明變量時,可以立即為其賦值,即立即對變量進行初始化,具體語法如下:

變量類型變量標識符=變量值;例如:intpartyMemberAge=26; //聲明一個int型變量floatmoney=3150; //聲明float類型變量課件制作人:明日科技同類型變量如果需要聲明多個同一類型的變量,也可以采用下面的形式:

變量類型變量1,變量2,變量3;變量類型變量4=變量值4,變量5=變量值5,變量6=變量值6;例如:說明:變量區(qū)別于常量,它的值允許被改變。intA,B,C; //聲明3個int型變量intD=4,E=5,F=6; //聲明并分別初始化3個int型變量課件制作人:明日科技3.1運算符Java語言中的運算符主要包括:賦值運算符算術(shù)運算符關(guān)系運算符邏輯運算符位運算符課件制作人:明日科技3.1.2算術(shù)運算符算術(shù)運算符支持整數(shù)型數(shù)據(jù)和浮點數(shù)型數(shù)據(jù)的運算,當整數(shù)型數(shù)據(jù)與浮點數(shù)型數(shù)據(jù)之間進行算術(shù)運算時,Java會自動完成數(shù)據(jù)類型的轉(zhuǎn)換,并且計算結(jié)果為浮點數(shù)型。運算符功能舉例運算結(jié)果結(jié)果類型+加法運算10+7.517.5double-減法運算10–7.5F2.5Ffloat*乘法運算3*721int/除法運算21/3L7Llong%求余運算10%31int課件制作人:明日科技算術(shù)運算符在進行算術(shù)運算時,有兩種情況需要考慮:沒有小數(shù)參與運算有小數(shù)參與運算。課件制作人:明日科技沒有小數(shù)參與運算在對整數(shù)型數(shù)據(jù)或變量進行加法(+)、減法(-)和乘法(*)運算時,與數(shù)學(xué)中的運算方式完全相同,但是在整數(shù)之間進行除法(/)和求余(%)運算時需要注意幾個問題。注意除法運算注意求余運算關(guān)于0的問題課件制作人:明日科技除法運算在整數(shù)類型的數(shù)據(jù)和變量之間進行除法運算時,無論能否整除,運算結(jié)果都將是一個整數(shù),而且這個整數(shù)不是通過四舍五入得到的,而是簡單地去掉小數(shù)部分。例如通過下面的代碼分別計算10除以3和5除以2,最終輸出的運算結(jié)果依次為3和2:System.out.println(10/3); //輸出運算結(jié)果為3System.out.println(5/2); //輸出運算結(jié)果為2課件制作人:明日科技求余運算在整數(shù)類型的數(shù)據(jù)和變量之間進行求余(%)運算時,運算結(jié)果是數(shù)學(xué)運算中余數(shù)。例如通過下面的代碼分別計算10%3、10%5和10%7,最終輸出的運算結(jié)果依次為1、0和3:System.out.println(10%3); //輸出運算結(jié)果為1System.out.println(10%5); //輸出運算結(jié)果為0System.out.println(10%7); //輸出運算結(jié)果為3課件制作人:明日科技關(guān)于0的問題與數(shù)學(xué)運算一樣,0可以做被除數(shù),但是不可以做除數(shù)。當0做被除數(shù)時,無論是除法運算,還是求余運算,運算結(jié)果都為0。例如通過下面的代碼分別計算0除以6和0除以6求余數(shù),最終輸出的運算結(jié)果均為0:注意:如果0做除數(shù),雖然可以編譯成功,但是在運行時會拋出java.lang.ArithmeticException異常,即算術(shù)運算異常。System.out.println(0/6); //輸出運算結(jié)果為0System.out.println(0%6); //輸出運算結(jié)果為0課件制作人:明日科技有小數(shù)參與運算在對浮點數(shù)類型的數(shù)據(jù)或變量進行算術(shù)運算時,如果在算術(shù)表達式中含有double類型的數(shù)據(jù)或變量,則運算結(jié)果為double型,否則運算結(jié)果為float型。在對浮點數(shù)類型數(shù)據(jù)或變量進行算術(shù)運算時,計算機的計算結(jié)果可能會在小數(shù)點后包含n位小數(shù),這些小數(shù)在有些時候并不是精確的,計算機的計算結(jié)果會與數(shù)學(xué)運算的結(jié)果存在一定的誤差,只能是盡量接近數(shù)學(xué)運算中的結(jié)果。課件制作人:明日科技有小數(shù)參與運算如果被除數(shù)為浮點型數(shù)據(jù)或變量,無論是除法運算,還是求余運算,0都可以做除數(shù)。如果是除法運算,當被除數(shù)是正數(shù)時,運算結(jié)果為Infinity,表示無窮大,當被除數(shù)是負數(shù)時,運算結(jié)果為-Infinity,表示無窮小;如果是求余運算,運算結(jié)果為NaN,表示非數(shù)字。例如下面的代碼:System.out.println(7.5/0); //輸出的運算結(jié)果為InfinitySystem.out.println(-7.5/0); //輸出的運算結(jié)果為-InfinitySystem.out.println(7.5%0); //輸出的運算結(jié)果為NaNSystem.out.println(-7.5%0); //輸出的運算結(jié)果為NaN課件制作人:明日科技3.1.1賦值運算符賦值運算符的符號為“=”,它的作用是將數(shù)據(jù)、變量、對象賦值給相應(yīng)類型的變量,例如下面的代碼:賦值運算符的運算順序為從右到左。例如在下面的代碼中,首先是計算表達式“9412+75”的和,然后將計算結(jié)果賦值給變量result:inti=75; //將數(shù)據(jù)賦值給變量longl=i; //將變量賦值給變量Objectobject=newObject(); //創(chuàng)建對象intresult=9412+75;課件制作人:明日科技賦值運算符如果兩個變量的值相同,也可以采用下面的方式完成賦值操作:intx,y; //聲明兩個int型變量x=y=0; //為兩個變量同時賦值課件制作人:明日科技3.1.3關(guān)系運算符關(guān)系運算符用于比較大小,運算結(jié)果為boolean型,當關(guān)系表達式成立時,運算結(jié)果為true,否則運算結(jié)果為false。運算符功能舉例結(jié)果可運算數(shù)據(jù)類型>大于'a'>'b'false整數(shù)、浮點數(shù)、字符<小于2<3.0true整數(shù)、浮點數(shù)、字符==等于'X'==88true所有數(shù)據(jù)類型!=不等于true!=truefalse所有數(shù)據(jù)類型>=大于或等于6.6>=8.8false整數(shù)、浮點數(shù)、字符<=小于或等于'M'<=88true整數(shù)、浮點數(shù)、字符要注意關(guān)系運算符“==”和賦值運算符“=”的區(qū)別!

課件制作人:明日科技3.1.4邏輯運算符邏輯運算符用于對boolean型數(shù)據(jù)進行運算,運算結(jié)果仍為boolean型。Java中的邏輯運算符包括:!(取反)^(異或)&(與)|(或)&&(簡潔與)||(簡潔或)下面將依次介紹各個運算符的用法和特點。課件制作人:明日科技取反運算符“!”運算符“!”用于對邏輯值進行取反運算,當邏輯值為true時,經(jīng)過取反運算后運算結(jié)果為false,否則當邏輯值為false時,經(jīng)過取反運算后運算結(jié)果則為true,例如下面的代碼:System.out.println(!true); //輸出結(jié)果為falseSystem.out.println(!false); //輸出結(jié)果為true課件制作人:明日科技異或運算符“^”運算符“^”用于對邏輯值進行異或運算,當運算符的兩側(cè)同時為true或false時,運算結(jié)果為false,否則運算結(jié)果為true。例如下面的代碼:System.out.println(true^true); //輸出的運算結(jié)果為falseSystem.out.println(true^false); //輸出的運算結(jié)果為trueSystem.out.println(false^true); //輸出的運算結(jié)果為trueSystem.out.println(false^false); //輸出的運算結(jié)果為false課件制作人:明日科技運算符“&&”和“&”運算符“&&”和“&”均用于邏輯與運算,當運算符的兩側(cè)同時為true時,運算結(jié)果為true,否則運算結(jié)果均為false。例如下面的代碼:System.out.println(true&true); //輸出結(jié)果為trueSystem.out.println(true&false); //輸出結(jié)果為falseSystem.out.println(false&true); //輸出結(jié)果為falseSystem.out.println(false&false); //輸出結(jié)果為falseSystem.out.println(true&&true); //輸出結(jié)果為trueSystem.out.println(true&&false); //輸出結(jié)果為falseSystem.out.println(false&&true); //輸出結(jié)果為falseSystem.out.println(false&&false); //輸出結(jié)果為false課件制作人:明日科技運算符“&&”和“&”的區(qū)別運算符“&&”為簡潔與運算符,運算符“&”為非簡潔與運算符,它們的區(qū)別如下:運算符“&&”只有在其左側(cè)為true時,才運算其右側(cè)的邏輯表達式,否則直接返回運算結(jié)果false。運算符“&”無論其左側(cè)為true或false,都要運算其右側(cè)的邏輯表達式,最后才返回運算結(jié)果。課件制作人:明日科技運算符“||”和“|”運算符“||”和“|”均用于邏輯或運算,當運算符的兩側(cè)同時為false時,運算結(jié)果為false,否則運算結(jié)果均為true,例如下面的代碼:System.out.println(true|true); //輸出的運算結(jié)果為trueSystem.out.println(true|false); //輸出的運算結(jié)果為trueSystem.out.println(false|true); //輸出的運算結(jié)果為trueSystem.out.println(false|false); //輸出的運算結(jié)果為falseSystem.out.println(true||true); //輸出的運算結(jié)果為trueSystem.out.println(true||false); //輸出的運算結(jié)果為trueSystem.out.println(false||true); //輸出的運算結(jié)果為trueSystem.out.println(false||false); //輸出的運算結(jié)果為false課件制作人:明日科技運算符“||”和“|”的區(qū)別運算符“||”為簡潔或運算符,運算符“|”為非簡潔或運算符,它們的區(qū)別如下:運算符“||”只有在其左側(cè)為false時,才運算其右側(cè)的邏輯表達式,否則直接返回運算結(jié)果true。運算符“|”無論其左側(cè)為true或false,都要運算其右側(cè)的邏輯表達式,最后才返回運算結(jié)果。課件制作人:明日科技3.1.5位運算符位運算是對操作數(shù)以二進制位為單位進行的操作和運算,運算結(jié)果均為整數(shù)型。位運算符又分為邏輯位運算符和移位運算符兩種。課件制作人:明日科技邏輯位運算符邏輯位運算符包括:“~”(按位取反)“&”(按位與)“|”(按位或)“^”(按位異或)它們用來對操作數(shù)進行按位運算,運算規(guī)則如下表所示。課件制作人:明日科技邏輯位運算符按位取反運算是將二進制位中的0修改為1,1修改為0;在進行按位與運算時,只有當兩個二進制位都為1時,結(jié)果才為1;在進行按位或運算時,只要有一個二進制位為1,結(jié)果就為1;在進行按位異或運算時,當兩個二進制位同時為0或1時,結(jié)果為0,否則結(jié)果為1。操作數(shù)x操作數(shù)y~xx&yx|yx^y001000011011100011110110課件制作人:明日科技移位運算符移位運算符包括:“<<”(左移,低位添0補齊)“>>”(右移,高位添符號位)“>>>”(無符號右移,高位添0補齊)它們用來對操作數(shù)進行移位運算。課件制作人:明日科技3.1.7其他運算符Java中除了前面介紹的幾類運算符外,還有一些不屬于上述類別的運算符,如下表所示。運算符說明運算結(jié)果類型++一元運算符,自動遞增與操作元的類型相同-

-一元運算符,自動遞減與操作元的類型相同?:三元運算符,根據(jù)“?”左側(cè)的邏輯值,決定返回“:”兩側(cè)中的一個值,類似if…else流程控制語句與返回值的類型相同[

]用于聲明、建立或訪問數(shù)組的元素數(shù)組類型.訪問類的成員或?qū)ο蟮膶嵗蓡T若訪問的是成員變量,則類型與該成員變量相同;若訪問的是方法,則類型與該方法的返回值相同課件制作人:明日科技自動遞增、遞減運算符與C、C++類似,Java語言也提供了自動遞增與遞減運算符,其作用是自動將變量值加1或減1。它們既可以放在操作元的前面,也可以放在操作元的后面,根據(jù)運算符位置的不同,最終得到的結(jié)果也是不同的。放在操作元前面的自動遞增、遞減運算符,會先將變量的值加1,然后再使該變量參與表達式的運算課件制作人:明日科技自動遞增、遞減運算符放在操作元后面的遞增、遞減運算符,會先使變量參與表達式的運算,然后再將該變量加1。例如:intnum1=3;intnum2=3;inta=2+(++num1);//先將變量num1加1,然后再執(zhí)行“2+4”intb=2+(num2++);//先執(zhí)行“2+3”,然后再將變量num2加1課件制作人:明日科技三元運算符“?:”三元運算符“?:”的應(yīng)用形式如下:三元運算符“?:”的運算規(guī)則為:若邏輯表達式的值為true,則整個表達式的值為表達式1的值,否則為表達式2的值。例如:這段代碼的輸出結(jié)果為“庫存量:12”邏輯表達式?表達式1:表達式2intstore=12;System.out.println(store<=5?"庫存不足!":"庫存量:"+store);課件制作人:明日科技3.1.8運算符的優(yōu)先級別

及結(jié)合性當在一個表達式中存在多個運算符進行混合運算時,會根據(jù)運算符的優(yōu)先級別來決定運算順序,優(yōu)先級最高的是括號“()”,它的使用與數(shù)學(xué)運算中的括號一樣,只是用來指定括號內(nèi)的表達式要優(yōu)先處理。例如:intnum=8*(4+6); //num為80課件制作人:明日科技3.1.8運算符的優(yōu)先級別

及結(jié)合性對于處在同一層級的運算符,則按照它們的結(jié)合性,即“先左后右”還是“先右后左”的順序來執(zhí)行。Java中除賦值運算符的結(jié)合性為“先右后左”外,其他所有運算符的結(jié)合性都是“先左后右”。關(guān)于運算符優(yōu)先級的順序,如下表所示。課件制作人:明日科技優(yōu)先級說明運算符最高括號()

正負號+-

一元運算符++--!~乘除運算*/%

加減運算+-

移位運算<<>>>>>

比較大小<><=>=比較是否相等==!=

按位與運算&

按位異或運算^

按位或運算|

邏輯與運算&&

邏輯或運算||

三元運算符?:

最低賦值及復(fù)合賦值=*=/=%=+=-=>>=>>>=<<<=&=^=|=課件制作人:明日科技2.3.4數(shù)據(jù)類型轉(zhuǎn)換所謂數(shù)據(jù)類型之間的相互轉(zhuǎn)換,就是將變量從當前的數(shù)據(jù)類型轉(zhuǎn)換為其他數(shù)據(jù)類型。在Java中數(shù)據(jù)類型之間的相互轉(zhuǎn)換可以分為以下3種情況:基本數(shù)據(jù)類型之間的相互轉(zhuǎn)換;字符串與其他數(shù)據(jù)類型之間的相互轉(zhuǎn)換;引用數(shù)據(jù)類型之間的相互轉(zhuǎn)換。說明:這里只介紹基本數(shù)據(jù)類型之間的相互轉(zhuǎn)換,其他兩種情況將在相關(guān)的章節(jié)中介紹。課件制作人:明日科技2.3.4數(shù)據(jù)類型轉(zhuǎn)換在對多個基本數(shù)據(jù)類型的數(shù)據(jù)進行混合運算時,如果這幾個數(shù)據(jù)并不屬于同一基本數(shù)據(jù)類型,需要先將它們轉(zhuǎn)換為統(tǒng)一的數(shù)據(jù)類型,然后才能進行運算?;緮?shù)據(jù)類型之間的相互轉(zhuǎn)換又分為兩種情況:自動類型轉(zhuǎn)換強制類型轉(zhuǎn)換。課件制作人:明日科技1.自動類型轉(zhuǎn)換當需要從低級類型向高級類型轉(zhuǎn)換時,編程人員無需進行任何操作,Java會自動完成類型轉(zhuǎn)換。低級類型是指取值范圍相對較小的數(shù)據(jù)類型,高級類型則指取值范圍相對較大的數(shù)據(jù)類型,例如long型相對于float型是低級數(shù)據(jù)類型,但是相對于int型則是高級數(shù)據(jù)類型。在基本數(shù)據(jù)類型中,除了boolean類型外均可參與算術(shù)運算,這些數(shù)據(jù)類型從低到高的排序如下圖所示。課件制作人:明日科技自動類型轉(zhuǎn)換在不同數(shù)據(jù)類型間的算術(shù)運算中,自動類型轉(zhuǎn)換可以分為兩種情況進行考慮:第一種情況含有int、long、float或double型的數(shù)據(jù)第二種情況含有byte、short或char型的數(shù)據(jù)。課件制作人:明日科技自動類型轉(zhuǎn)換

第一種情況如果在算術(shù)表達式中含有int、long、float或double型的數(shù)據(jù),Java首先會將所有數(shù)據(jù)類型較低的變量自動轉(zhuǎn)換為表達式中最高的數(shù)據(jù)類型,然后再進行計算,并且計算結(jié)果的數(shù)據(jù)類型是表達式中級別最高的數(shù)據(jù)類型。例如下面這段代碼:Java首先會自動將表達式“b*c-i+l”中的變量b、c和i的數(shù)據(jù)類型轉(zhuǎn)換為long型。然后再進行計算,并且計算結(jié)果的數(shù)據(jù)類型為long型。所以將表達式“b*c-i+l”直接賦值給數(shù)據(jù)類型相對小于long型(例如int型)的變量是不允許的,但是可以直接賦值給數(shù)據(jù)類型相對大于long型(例如float型)的變量。byteb=75;charc='c';inti=794215;longl=9876543210L;longresult=b*c-i+l;再看下面這段代碼:Java首先會自動將表達式“b*c-i+d”中的變量b、c和i的數(shù)據(jù)類型轉(zhuǎn)換為double型,然后再進行計算,并且計算結(jié)果的數(shù)據(jù)類型為double型。所以將表達式“b*c-i+d”直接賦值給數(shù)據(jù)類型相對小于double型(例如long型)的變量是不允許的。byteb=75;charc='c';inti=794215;doubled=11.17;doubleresult=b*c-i+d;課件制作人:明日科技自動類型轉(zhuǎn)換

第二種情況如果在算術(shù)表達式中只含有byte、short或char型的數(shù)據(jù),Java首先會將所有變量的類型自動轉(zhuǎn)換為int型,然后再進行計算,并且計算結(jié)果的數(shù)據(jù)類型是int型。例如下面這段代碼:Java首先會自動將表達式“b+s*c”中的變量b、s和c的數(shù)據(jù)類型轉(zhuǎn)換為int型,然后再進行計算,并且計算結(jié)果的數(shù)據(jù)類型為int型。所以將表達式“b+s*c”直接賦值給數(shù)據(jù)類型小于int型(例如char型)的變量是不允許的,但是可以直接賦值給數(shù)據(jù)類型相對大于int型(例如long型)的變量。byteb=75;shorts=9412;charc='c';intresult=b+s*c;再看下面這段代碼:即使是在這段代碼中,Java也會自動將表達式“s1*s2”中的變量s1和s2的數(shù)據(jù)類型轉(zhuǎn)換為int型,然后再進行計算,并且計算結(jié)果的數(shù)據(jù)類型也為int型。對于數(shù)據(jù)類型為byte、short、int、long、float和double的變量,可以將數(shù)據(jù)類型較小的數(shù)據(jù)或變量,直接賦值給數(shù)據(jù)類型較大的變量,但是相反的條件則不成立。shorts1=75;shorts2=9412;intresult=s1*s2;課件制作人:明日科技2.強制類型轉(zhuǎn)換如果需要把數(shù)據(jù)類型較高的數(shù)據(jù)或變量賦值給數(shù)據(jù)類型相對較低的變量,就必須進行強制類型轉(zhuǎn)換。例如將Java默認為double型的數(shù)據(jù)“7.5”,賦值給數(shù)據(jù)類型為int型變量的方式如下:inti=(int)7.5;這句代碼在數(shù)據(jù)“7.5”的前方添加了代碼“(int)”,意思就是將數(shù)據(jù)“7.5”的類型強制轉(zhuǎn)換為int型。在執(zhí)行強制類型轉(zhuǎn)換時,可能會導(dǎo)致數(shù)據(jù)溢出或精度降低。例如上面語句中變量i的值最終為7,導(dǎo)致數(shù)據(jù)精度降低。課件制作人:明日科技2.強制類型轉(zhuǎn)換如果將Java默認為int型的數(shù)據(jù)“774”賦值給數(shù)據(jù)類型為byte型變量,方法如下:byteb=(byte)774;最終變量b的值為6,原因是整數(shù)774超出了byte型的取值范圍,在進行強制類型轉(zhuǎn)換時,整數(shù)774的二進制數(shù)據(jù)的前24位將被舍棄,變量b的數(shù)值是后8位的二進制數(shù)據(jù),如下圖所示。課件制作人:明日科技3.2if語句if語句可分為以下3種形式:(1)簡單的if條件語句(2)if-else條件語句(3)if-elseif多分支條件語句課件制作人:明日科技3.2.1簡單的if條件語句

簡單的if條件語句就是對某種條件做出相應(yīng)的處理。通常表現(xiàn)為“如果滿足某種情況,那么就進行某種處理”。它的一般形式為:例如:如果今天下雨,我們就不出去玩。條件語句為:if(表達式){

語句序列}if(今天下雨){

我們就不出去玩}課件制作人:明日科技簡單的if條件語句表達式是必要參數(shù)。其值可以由多個表達式組成,但是其最后結(jié)果一定是boolean類型,也就是其結(jié)果只能是true或false。語句序列是可選參數(shù)。包含一條或多條語句,當表達式的值為true時執(zhí)行這些語句。如果該語句只有一條語句,大括號也可以省略不寫。下面的代碼都是正確的。if(今天下雨);if(今天下雨)

我們就不出去玩;課件制作人:明日科技簡單的if條件語句如圖所示,if條件語句,在條件表達式的結(jié)果為true時,將執(zhí)行語句序列。課件制作人:明日科技3.2.2if...else條件語句if…else條件語句也是條件語句的一種最通用的形式。else是可選的。通常表現(xiàn)為“如果滿足某種條件,就做某種處理,否則做另一種處理”。它的一般形式為:if(表達式){

語句序列1}else{

語句序列2}課件制作人:明日科技if...else條件語句語句序列1是可選參數(shù)。由一條或多條語句組成,當表達式的值為true時執(zhí)行這些語句。語句序列2也是可選參數(shù)。包含一條或多條語句,當表達式的值為false時執(zhí)行這些語句。例如:如果指定年為閏年,二月份為29天,否則二月份為28天。條件語句為:if(今年是閏年){

二月份為29天}else{

二月份為28天}課件制作人:明日科技if...else條件語句如圖所示,if…else語句在表達式的值為true時,執(zhí)行語句序列1,否則,執(zhí)行語句序列2。課件制作人:明日科技3.2.3if...elseif多分支語句if…elseif多分支語句用于針對某一事件的多種情況進行處理。通常表現(xiàn)為“如果滿足某種條件,就進行某種處理,否則如果滿足另一種條件才執(zhí)行另一種處理”。它的一般形式為:if(表達式1){

語句序列1}elseif(表達式2){

語句序列2}else{

語句序列n}課件制作人:明日科技if...elseif多分支語句語句序列1在表達式1的值為true時被執(zhí)行,語句序列2在表達式2的值為true時被執(zhí)行,語句序列n在表達式1的值為false,表達式2的值也為false時被執(zhí)行。if…elseif多分支語句執(zhí)行過程如下圖所示。課件制作人:明日科技if...elseif多分支語句例如:如果今天是星期一,上數(shù)學(xué)課;如果今天是星期二,上語文課;否則上自習(xí)。條件語句為:if(今天是星期一){

上數(shù)學(xué)課}elseif(今天是星期二){

上語文課}else{

上自習(xí)}課件制作人:明日科技3.2.4if語句的嵌套if語句的嵌套就是在if語句中又包含一個或多個if語句。這樣的語句一般都用在比較復(fù)雜的分支語句中。它的一般形式為右側(cè)的語句格式。在嵌套的語句中最好不要省略大括號。以提高代碼的可讀性。if(表達式1){if(表達式2){

語句序列1}else{

語句序列2}}else{if(表達式3){

語句序列3}else{

語句序列4}}課件制作人:明日科技3.3switch多分支語句switch(表達式){case常量表達式1:語句序列1[break;]case常量表達式2:語句序列2[break;]

……case常量表達式n:語句序列n[break;]default:語句序列n+1[break;]}switch語句是多分支的開關(guān)語句。根據(jù)表達式的值來執(zhí)行輸出的語句。這樣的語句一般用于多條件多值的分支語句中。右側(cè)是它的語法格式:break用于結(jié)束switch語句。課件制作人:明日科技switch多分支語句switch語句中表達式的值必須是整型或字符型。即int、short、byte和char型。Switch會根據(jù)表達式的值,執(zhí)行符合常量表達式的語句序列。當表達式的值沒有匹配的常量表達式時,則執(zhí)行default定義的語句序列,即“語句序列n+1”。default是可選參數(shù),如果沒有該參數(shù),并且所有常量值與表達式的值不匹配,那么switch語句就不會進行任何操作。該語句執(zhí)行流程如右圖所示

課件制作人:明日科技3.4if語句和switch語句的區(qū)別

if語句和switch語句可以從使用的效率上來進行區(qū)別,也可以從實用性角度去區(qū)分。如果從使用的效率上進行區(qū)分,在對同一個變量的不同值作條件判斷時,使用switch語句的效率相對更高一些,尤其是判斷的分支越多越明顯。如果從語句的實用性的角度去區(qū)分,那switch語句肯定不如if語句。if語句是應(yīng)用最廣泛和最實用的語句。課件制作人:明日科技3.5循環(huán)語句循環(huán)語句就是重復(fù)執(zhí)行某段程序代碼,直到滿足特定條件為止。在Java語言中循環(huán)語句有以下3種形式:for循環(huán)語句while循環(huán)語句do-while循環(huán)語句課件制作人:明日科技3.5.1for循環(huán)語句

for語句是最常用的循環(huán)語句,一般用在循環(huán)次數(shù)已知的情況下。它的一般形式為:初始化語句用于初始化循環(huán)體變量。循環(huán)條件用于判斷是否繼續(xù)執(zhí)行循環(huán)體。其只能是true或false。迭代語句用于改變循環(huán)條件的語句。語句序列稱為循環(huán)體,當循環(huán)條件的結(jié)果為true時,將重復(fù)執(zhí)行。for(初始化語句;循環(huán)條件;迭代語句){

語句序列}課件制作人:明日科技for循環(huán)語句for循環(huán)語句的流程首先執(zhí)行初始化語句,然后判斷循環(huán)條件,當循環(huán)條件為true時,就執(zhí)行一次循環(huán)體,最后執(zhí)行迭代語句,改變循環(huán)變量的值。這樣就結(jié)束了一輪的循環(huán)。接下來進行下一次循環(huán)(不包括初始化語句),直到循環(huán)條件的值為false時,才結(jié)束循環(huán)。for循環(huán)語句執(zhí)行過程如圖所示。課件制作人:明日科技3.5.2while循環(huán)語句while語句是用一個表達式來控制循環(huán)的語句。它的一般形式為:表達式用于判斷是否執(zhí)行循環(huán),它的值只能是true或false。當循環(huán)開始時,首先會執(zhí)行表達式,如果表達式的值為true,則會執(zhí)行語句序列,也就是循環(huán)體。當?shù)竭_循環(huán)體的末尾時,會再次檢測表達式,直到表達式的值為false,結(jié)束循環(huán)。while(表達式){

語句序列}課件制作人:明日科技while循環(huán)語句while語句執(zhí)行過程如圖所示。課件制作人:明日科技3.5.3do...while循環(huán)語句do..while循環(huán)語句稱為后測試循環(huán)語句,它利用一個條件來控制是否要繼續(xù)重復(fù)執(zhí)行這個語句。它的一般形式為:do…while循環(huán)語句的執(zhí)行過程與while循環(huán)語句有所區(qū)別。do…while循環(huán)至少被執(zhí)行一次,它先執(zhí)行循環(huán)體的語句序列,然后再判斷是否繼續(xù)執(zhí)行。do{

語句序列}while(表達式);課件制作人:明日科技do...while循環(huán)語句do…while循環(huán)執(zhí)行語句如圖所示。課件制作人:明日科技3.5.4循環(huán)的嵌套循環(huán)的嵌套就是在一個循環(huán)體內(nèi)又包含另一個完整的循環(huán)結(jié)構(gòu),而在這個完整的循環(huán)體內(nèi)還可以嵌套其他的循環(huán)循結(jié)構(gòu)。循環(huán)嵌套很復(fù)雜,在for語句、while語句和do…while語句中都可以嵌套。常用的嵌套循環(huán)包括:for循環(huán)語句的嵌套while循環(huán)語句嵌套do…while循環(huán)語句嵌套for循環(huán)語句與while循環(huán)語句嵌套while循環(huán)語句與for循環(huán)語句嵌套do…while循環(huán)語句與for循環(huán)語句嵌套課件制作人:明日科技3.6跳轉(zhuǎn)語句Java語言中支持的跳轉(zhuǎn)語句包括:break跳轉(zhuǎn)語句continue跳轉(zhuǎn)語句return跳轉(zhuǎn)語句。課件制作人:明日科技3.6.1break跳轉(zhuǎn)語句break語句可以終止循環(huán)或其他控制結(jié)構(gòu)。它在for,while或do…while循環(huán)中,用于強行終止循環(huán)。只要執(zhí)行到break語句,就會終止循環(huán)體的執(zhí)行。break不僅在循環(huán)語句里適用,在switch多分支語句里也適用。課件制作人:明日科技3.6.2continue跳轉(zhuǎn)語句continue語句應(yīng)用在for,while和do...while等循環(huán)語句中,如果在某次循環(huán)體的執(zhí)行中執(zhí)行了continue語句,那么本次循環(huán)就結(jié)束,即不再執(zhí)行本次循環(huán)中continue語句后面的語句,而進行下一次循環(huán)。課件制作人:明日科技3.6.3return跳轉(zhuǎn)語句return語句可以從一個方法返回,并把控制權(quán)交給調(diào)用它的語句。return語句通常被放在方法的最后,用于退出當前方法并返回一個值。它的語法格式為:return[表達式];表達式是可選參數(shù),表示要返回的值。它的數(shù)據(jù)類型必須同方法聲明中的返回值類型一致。例如:編寫返回a和b兩數(shù)相加之和的方法可以使用如下代碼:如果方法沒有返回值,可以省略return關(guān)鍵字的表達式,使方法結(jié)束。代碼如下:publicintset(inta,intb){returnsum=a+b;}publicvoidset(inta,intb){sum=a+b;return;}課件制作人:明日科技2.4數(shù)組數(shù)組是一種最為常見的數(shù)據(jù)結(jié)構(gòu),通過數(shù)組可以保存一組相同數(shù)據(jù)類型的數(shù)據(jù),數(shù)組一旦創(chuàng)建,它的長度就固定了。數(shù)組的類型可以為基本數(shù)據(jù)類型,也可以為引用數(shù)據(jù)類型,可以是一維數(shù)據(jù),二維數(shù)據(jù),甚至是多維數(shù)據(jù)。課件制作人:明日科技2.4.1數(shù)組的聲明聲明一維數(shù)組的方式如下:這兩種聲明數(shù)組格式的作用是相同的。Java語言中的二維數(shù)組是一種特殊的一維數(shù)組,即數(shù)組的每個元素又是一個一維數(shù)組,Java語言并不直接支持二維數(shù)組。聲明二維數(shù)組的方式如下:數(shù)組類型[]數(shù)組標識符;數(shù)組類型數(shù)組標識符[];數(shù)組類型[][]數(shù)組標識符;或數(shù)組類型數(shù)組標識符[][];課件制作人:明日科技2.4.2創(chuàng)建數(shù)組創(chuàng)建數(shù)組實質(zhì)上就是在內(nèi)存中為數(shù)組分配相應(yīng)的存儲空間,有兩種方式可以創(chuàng)建一維數(shù)組,一種是通過new關(guān)鍵字創(chuàng)建,另一種是通過“{}”創(chuàng)建,例如:int[]months=newint[12]; //months的長度為12boolean[]members={false,true,true,false}; //members的長度為4課件制作人:明日科技二維數(shù)組的創(chuàng)建方式如下:int[][]days=newint[2][3];booleanholidays[][]={{true,false,true},{false,true,false}};二維數(shù)組可以看做一個表格。數(shù)組days看成一個2行3列的表格,數(shù)組holidays看成2行3列的表格

列索引0列索引1列索引2行索引0days[0][0]days[0][1]days[0][2]行索引1days[1][0]days[1][1]days[1][2]課件制作人:明日科技2.4.3初始化數(shù)組在聲明數(shù)組的同時也可以給數(shù)組元素一個初始值,一維數(shù)組初始化如下:二維數(shù)組初始化如下:intboy[]={2,45,36,7,69};或intboy[]=newint[5]booleanholidays[][]={{true,false,true},{false,true,false}};課件制作人:明日科技2.4.4數(shù)組長度如果需要獲得一維數(shù)組的長度,可以通過下面的方式:System.out.println(months.length); //輸出值為12System.out.println(members.length); //輸出值為4課件制作人:明日科技如果是通過下面的方式獲得二維數(shù)組的長度,得到的是二維數(shù)組的行數(shù):如果需要獲得二維數(shù)組的列數(shù),可以通過下面的方式:System.out.println(days.length); //輸出值為2System.out.println(holidays.length); //輸出值為2System.out.println(days[0].length); //輸出值為3System.out.println(holidays[0].length); //輸出值為3課件制作人:明日科技2.4.5使用數(shù)組元素一維數(shù)組在訪問數(shù)組中的元素時,需要同時指定數(shù)組標識符和元素在數(shù)組中的索引,例如訪問上面代碼中創(chuàng)建的數(shù)組,具體代碼如下:System.out.println(months[2]);System.out.println(members[2]);課件制作人:明日科技二維數(shù)組也是通過索引符訪問自己的元素,在訪問數(shù)組中的元素時,需要同時指定數(shù)組標識符和元素在數(shù)組中的索引,例如訪問2.4.2節(jié)代碼中創(chuàng)建的二維數(shù)組,輸出位于第2行、第3列的元素,具體代碼如下:System.out.println(days[1][2]);System.out.println(holidays[1][2]);制作人:明日科技第3章面向?qū)ο缶幊袒A(chǔ)課件制作人:明日科技3.1面向?qū)ο蟪绦蛟O(shè)計課件制作人:明日科技3.2類Java語言與其他面向?qū)ο笳Z言一樣,引入了類和對象的概念,類是用來創(chuàng)建對象的模板,它包含被創(chuàng)建對象的屬性和方法的定義。因此,要學(xué)習(xí)Java編程就必須學(xué)會怎樣去編寫類,即怎樣用Java的語法去描述一類事物共有的屬性和行為。課件制作人:明日科技3.2.1定義類在Java語言中,類是基本的構(gòu)成要素,是對象的模板,Java程序中所有的對象都是由類創(chuàng)建的。一個Java類主要包括以下兩部分:類的聲明類的主體課件制作人:明日科技類的聲明在類聲明中,需要定義類的名稱、對該類的訪問權(quán)限、該類與其他類的關(guān)系等。類聲明的格式如下:[修飾符]用于指定類的訪問權(quán)限,可選值為public、abstract和final。類名用于指定類的名稱,類名必須是合法的Java標識符。一般情況下,要求首字母大寫。[extends父類]名用于指定要繼承參數(shù)。[implements接口列表]用于指定該類實現(xiàn)的所有接口。[修飾符]class<類名>[extends父類名][implements接口列表]{}課件制作人:明日科技類體類聲明部分大括號中的內(nèi)容為類體。類體主要由以下兩部分構(gòu)成:(1)成員變量的定義;(2)成員方法的定義。在程序設(shè)計過程中,編寫一個能完全描述客觀事物的類是不現(xiàn)實的。比如,構(gòu)建一個Apple類,該類可以擁有很多很多的屬性(即成員變量),在定義該類時,選取程序需要的必要屬性和行為就可以了。課件制作人:明日科技3.2.2成員變量和局部變量在類體中所聲明的變量稱為類的成員變量,而在方法體中聲明的變量和方法的參數(shù)則稱為局部變量?,F(xiàn)在我們來看一下,如何聲明成員變量和局部變量,以及變量的有效范圍。課件制作人:明日科技聲明成員變量Java用成員變量來表示類的狀態(tài)和屬性,聲明成員變量的基本語法格式如下:修飾符:可選參數(shù),用于指定變量的被訪問權(quán)限,可選值為public、protected和private。static:可選,用于指定該成員變量為靜態(tài)變量,可以直接通過類名訪問。如果省略該關(guān)鍵字,則表示該成員變量為實例變量。final:可選,用于指定該成員變量為取值不會改變的常量。變量類型:必選:用于指定變量的數(shù)據(jù)類型,其值可以為Java中的任何一種數(shù)據(jù)類型。變量名:必選,用于指定成員變量的名稱,變量名必須是合法的Java標識符。[修飾符][static][final]<變量類型><變量名>;課件制作人:明日科技聲明成員變量例如,在類中聲明3個成員變量。publicclassApple{publicStringcolor; //聲明公共變量colorpublicstaticintcount; //聲明靜態(tài)變量countpublicfinalbooleanMATURE=true; //聲明常量MATURE并賦值publicstaticvoidmain(String[]args){System.out.println(Apple.count);Appleapple=newApple();System.out.println(apple.color);System.out.println(apple.MATURE);}}課件制作人:明日科技聲明局部變量定義局部變量的基本語法格式同定義成員變量類似,所不同的不能使用權(quán)限修是不和static關(guān)鍵字對局部變量進行修飾,但可以使用final關(guān)鍵字:final:可選,用于指定該局部變量為常量。變量類型:必選,用于指定變量的數(shù)據(jù)類型,其值可以為Java中的任何一種數(shù)據(jù)類型。變量名:必選,用于指定局部變量的名稱,變量名必須是合法的Java標識符。[final]<變量類型><變量名>;課件制作人:明日科技聲明局部變量例如,在grow()成員方法中聲明兩個局部變量。publicvoidgrow(){finalbooleanSTATE; //聲明常量STATEintage; //聲明局部變量age}課件制作人:明日科技變量的有效范圍變量的有效范圍是指該變量在程序代碼中的作用區(qū)域,在該區(qū)域外不能直接訪問變量。有效范圍決定了變量的生命周期,變量的生命周期是指從聲明一個變量并分配內(nèi)存空間、使用變量,然后釋放該變量并清除所占用內(nèi)存空間的一個過程。進行變量聲明的位置,決定了變量的有效范圍,根據(jù)有效范圍的不同,可將變量分為以下兩種。(1)成員變量:在類中聲明,在整個類中有效。(2)局部變量:在方法內(nèi)或方法內(nèi)的復(fù)合代碼塊(“{”與“}”之間的代碼)中聲明的變量。在復(fù)合代碼塊聲明的變量,只在當前復(fù)合代碼塊中有效;在復(fù)合代碼塊外、方法內(nèi)聲明的變量在整個方法內(nèi)都有效。課件制作人:明日科技變量的有效范圍例如下面的實例:publicclassOlympics{privateintmedal_All=800; //成員變量

publicvoidChina(){intmedal_CN=100; //方法的局部變量

if(medal_CN<1000){ //代碼塊

intgold=50; //代碼塊的局部變量

medal_CN+=50; //允許訪問

medal_All-=150; //允許訪問

}}}課件制作人:明日科技3.2.3了解成員方法Java中類的行為由類的成員方法來實現(xiàn)。類的成員方法由方法聲明和方法體兩部分組成。其一般格式如下:[修飾符]用于指定方法的訪問權(quán)限,可選值為public、protected和private。方法返回值的類型用于指定該方法的返回值的類型,如果該方法沒有返回值,必須使用關(guān)鍵字void進行標識。方法返回值的類型可以是任何Java數(shù)據(jù)類型。[修飾符]<方法返回值的類型><方法名>([參數(shù)列表]){[方法體]}課件制作人:明日科技了解成員方法方法名用于指定成員方法的名稱,方法名必須是合法的Java標識符。[參數(shù)列表]用于指定方法中所需的參數(shù)。當存在多個參數(shù)時,各參數(shù)之間應(yīng)使用逗號分隔。方法的參數(shù)可以是任何Java數(shù)據(jù)類型。方法體是方法的實現(xiàn)部分,在方法體中可以完成指定的工作,可以只打印一句話,也可以省略方法體,使方法什么都不做。需要注意的是:當省略方法體時,其外面的大括號一定不能省略。課件制作人:明日科技3.2.4注意事項上面說過,類

溫馨提示

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

評論

0/150

提交評論