《Java程序設(shè)計(jì)基礎(chǔ)教程(慕課版)(第2版)》全套教學(xué)課件_第1頁
《Java程序設(shè)計(jì)基礎(chǔ)教程(慕課版)(第2版)》全套教學(xué)課件_第2頁
《Java程序設(shè)計(jì)基礎(chǔ)教程(慕課版)(第2版)》全套教學(xué)課件_第3頁
《Java程序設(shè)計(jì)基礎(chǔ)教程(慕課版)(第2版)》全套教學(xué)課件_第4頁
《Java程序設(shè)計(jì)基礎(chǔ)教程(慕課版)(第2版)》全套教學(xué)課件_第5頁
已閱讀5頁,還剩520頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第1單元Java基礎(chǔ)知識(shí)Java程序設(shè)計(jì)基礎(chǔ)教程((慕課版)(第2版))全套可編輯PPT課件

本課件是可編輯的正常PPT課件目錄導(dǎo)航1.1

Java簡(jiǎn)介1.3

Java開發(fā)工具的使用1.5單元小結(jié)1.2

Java開發(fā)環(huán)境搭建1.4項(xiàng)目實(shí)戰(zhàn)本課件是可編輯的正常PPT課件1.1.1Java的發(fā)展歷程1999

年。Java2平臺(tái)的發(fā)布是Java發(fā)展過程中最重要的一個(gè)里程碑,標(biāo)志著Java的應(yīng)用開始普及。1995年,Sun公司推出了可以嵌入網(wǎng)頁且可以隨網(wǎng)頁在網(wǎng)絡(luò)上傳輸?shù)腁pplet(一種將小程序嵌入網(wǎng)頁中執(zhí)行的技術(shù))并申請(qǐng)了商標(biāo)。由于Oak已經(jīng)被使用,其名稱被修改為Java。1991年成立了Green小組。Java之父詹姆斯·高斯林與其他幾個(gè)工程師一起開發(fā)出了被稱為Oak的面向?qū)ο笳Z言,這就是Java語言的前身。1996年,JDK(JavaDevelopmentKit,Java軟件開發(fā)工具包)1.0發(fā)布,這是Java發(fā)展歷程中的重要里程碑,標(biāo)志著Java成為一種獨(dú)立的開發(fā)工具。2004年,J2SE1.5發(fā)布,并更名為JavaSE5.0。Java10于

2018年3月發(fā)布。本課件是可編輯的正常PPT課件1.1.2Java語言的特點(diǎn)1.簡(jiǎn)單性相對(duì)于C和C++而言,Java沒有g(shù)oto語句,使用break和continue語句及異常處理語句代替;沒有C++的運(yùn)算符過載和多繼承特征,免去了預(yù)處理程序。Java奉行一切皆是對(duì)象的理念,避免了對(duì)指針的使用。同時(shí),Java自帶垃圾回收機(jī)制,讓開發(fā)者無須關(guān)心存儲(chǔ)管理問題。2.面向?qū)ο驤ava是使用類(Class)來組織的,類的概念完美地契合了面向?qū)ο蟮睦砟睢n愂菍傩院托袨榈募希磾?shù)據(jù)和操作方法的集合。結(jié)合包(Package)的分層分體系來組織類,使得Java的層次感更強(qiáng),方法的調(diào)用和開發(fā)更加方便和簡(jiǎn)單。本課件是可編輯的正常PPT課件1.1.2Java語言的特點(diǎn)3.分布性Java支持多種層次的網(wǎng)絡(luò)連接,Socket類提供了可靠的流(Stream)連接,所以用戶可以使用Java來構(gòu)建分布式的客戶機(jī)和服務(wù)器。4.編譯和解釋性Java編譯程序生成字節(jié)碼(Bytecode),而不是常見的機(jī)器碼。Java程序可以在任何支持Java解釋程序的系統(tǒng)上運(yùn)行。

Java支持快速原型,可實(shí)現(xiàn)快速程序開發(fā)。這是與傳統(tǒng)的、耗時(shí)的“編譯、鏈接和測(cè)試”形成鮮明對(duì)比的精巧的開發(fā)過程。5.穩(wěn)健性Java不支持指針的使用,這增強(qiáng)了程序的穩(wěn)健性,簡(jiǎn)化了出錯(cuò)處理和恢復(fù)操作。本課件是可編輯的正常PPT課件1.1.2Java語言的特點(diǎn)可移植性安全性Java沒有指針,并且會(huì)在加載前對(duì)字節(jié)碼文件進(jìn)行安全性驗(yàn)證,這些特點(diǎn)使Java相對(duì)安全。Java是運(yùn)行在Java虛擬機(jī)(JavaVirtualMachine,JVM)上的,所以其運(yùn)行不依賴于平臺(tái)和操作系統(tǒng)。高性能為了提升性能,JVM會(huì)根據(jù)代碼邏輯和當(dāng)前系統(tǒng)重新排列字節(jié)碼中程序執(zhí)行的邏輯順序。這種重排不僅不會(huì)影響程序的邏輯,還會(huì)大大提升程序的運(yùn)行性能。080607本課件是可編輯的正常PPT課件1.1.2Java語言的特點(diǎn)動(dòng)態(tài)性多線程Java支持多線程開發(fā),并給出了一系列的類和關(guān)鍵字等,以確保在多線程環(huán)境中變量的位置保持一致。Java是一種動(dòng)態(tài)的語言,可適應(yīng)變化的環(huán)境。例如,Java中的類是根據(jù)需要載入的,其中部分類是通過網(wǎng)絡(luò)獲取的。0405本課件是可編輯的正常PPT課件目錄導(dǎo)航1.1

Java簡(jiǎn)介1.3

Java開發(fā)工具的使用1.5單元小結(jié)1.2

Java開發(fā)環(huán)境搭建1.4項(xiàng)目實(shí)戰(zhàn)本課件是可編輯的正常PPT課件1.2.1JDK、JRE與JVM

JDK是Sun公司針對(duì)Java開發(fā)者發(fā)布的產(chǎn)品。JDK中包含JRE。JDK的安裝目錄下有一個(gè)名為jre的目錄,里面有兩個(gè)文件夾,分別為bin文件夾和lib文件夾。在這里可以認(rèn)為bin文件夾中是JVM,lib文件夾中則是JVM工作所需要的類庫,而bin文件夾和lib文件夾合起來就稱為JRE。01JDK

JRE是Java程序不可缺少的運(yùn)行環(huán)境。有了它,Java開發(fā)者才可以發(fā)布自己開發(fā)的程序,讓用戶使用。

JRE中包含JVM、RuntimeClassLibraries和JavaApplicationLauncher,這些是運(yùn)行Java程序的必要組件。

與JDK不同,JRE是Java的運(yùn)行環(huán)境,而不是開發(fā)環(huán)境,所以它沒有包含任何開發(fā)工具(如編譯器和調(diào)試器),只是針對(duì)使用Java程序的用戶。02JRE

JVM是Java實(shí)現(xiàn)跨平臺(tái)運(yùn)行的核心部分。通常Java程序會(huì)先被編譯為.class文件,這種文件可以在虛擬機(jī)上執(zhí)行。

.class文件并不直接與操作系統(tǒng)交互,而是通過JVM與系統(tǒng)交互。JVM的這種屏蔽具體操作系統(tǒng)的特點(diǎn)是實(shí)現(xiàn)Java跨平臺(tái)運(yùn)行的關(guān)鍵。03JVM本課件是可編輯的正常PPT課件1.2.2系統(tǒng)環(huán)境變量配置1.安裝JDKstep01

在Oracle官網(wǎng)中下載JDK的安裝包,下載頁面如圖1-1所示。本書以JDK1.8為例進(jìn)行介紹,JDK11及更新版本的安裝和使用方法類似。step02

首先根據(jù)自己的操作系統(tǒng)選擇安裝包(本書以Windows10、64位的操作系統(tǒng)為例,選擇Windowsx64安裝包)。下載后得到的安裝文件是jdk-8u401-windows-x64.exe。雙擊該文件即可開始安裝,安裝界面如圖1-2所示。本課件是可編輯的正常PPT課件1.2.2系統(tǒng)環(huán)境變量配置step03

單擊“下一步”按鈕,進(jìn)入定制安裝界面,如圖所示。step04

保持默認(rèn)設(shè)置,單擊“下一步”按鈕,進(jìn)入安裝執(zhí)行界面,如圖所示。step05

安裝執(zhí)行需要一定的時(shí)間,此處只需要等待即可。安裝完成之后,會(huì)提示用戶定制安裝JRE,選擇安裝目標(biāo)文件夾后如圖所示。step06

保持默認(rèn)配置,單擊“下一步”按鈕,將彈出JRE的安裝界面,如圖所示。step07

耐心等待,直到安裝完成,如圖1-7所示,單擊“關(guān)閉”按鈕即可完成JDK的安裝。本課件是可編輯的正常PPT課件1.2.2系統(tǒng)環(huán)境變量配置默認(rèn)的JDK安裝路徑是系統(tǒng)盤中的Java目錄,找到該目錄,其結(jié)構(gòu)如圖所示。從這個(gè)目錄結(jié)構(gòu)可以看出,JDK的安裝包含JRE的安裝。進(jìn)入JDK的文件目錄,其結(jié)構(gòu)如圖所示。JDK目錄下有很多子目錄和文件,它們都有其特定的功能,其中主要的子目錄和文件功能如下。bin目錄:用于存放可執(zhí)行程序。db目錄:小型的數(shù)據(jù)庫管理系統(tǒng),自JDK1.6之后引入,是一個(gè)純Java實(shí)現(xiàn)、開源的數(shù)據(jù)庫管理系統(tǒng),可直接使用,小巧輕便,支持JDBC4.0規(guī)范。include目錄:JDK是使用C和C++實(shí)現(xiàn)的,該目錄存放的是C類語言的頭文件。

jre目錄:JRE的根目錄,包含JVM、運(yùn)行時(shí)的類包、Java應(yīng)用啟動(dòng)器和bin目錄,但不包含開發(fā)環(huán)境中的開發(fā)工具。lib目錄:用于存放開發(fā)工具使用的歸檔包文件。

src.zip文件:用于存放JDK核心類的源代碼文件,通過該文件可以查看Java基礎(chǔ)類的源代碼。本課件是可編輯的正常PPT課件1.2.2系統(tǒng)環(huán)境變量配置2.配置環(huán)境變量step01

打開文件資源管理器,右擊“此電腦”選項(xiàng),在彈出的快捷菜單中選擇“屬性”,或在控制面板中選擇“系統(tǒng)”,然后單擊“高級(jí)系統(tǒng)設(shè)置”→“環(huán)境變量”按鈕,如圖1-10所示。打開環(huán)境變量配置界面,如圖1-11所示。和JDK相關(guān)的環(huán)境變量有3個(gè),分別是JAVA_HOME、Path和CLASSPATH。其中JAVA_HOME是JDK的安裝目錄,用來定義Path和CLASSPATH的相關(guān)位置;Path環(huán)境變量告訴操作系統(tǒng)到何處找JDK工具;LASSPATH環(huán)境變量告訴JDK工具到何處找類文件(.class文件)。下面以Windows10系統(tǒng)為例,介紹JDK環(huán)境變量的配置。Windows系統(tǒng)其他版本的配置方式都是類似的,讀者可以查閱資料。本課件是可編輯的正常PPT課件1.2.2系統(tǒng)環(huán)境變量配置step02

在系統(tǒng)環(huán)境目錄下創(chuàng)建JAVA_HOME環(huán)境變量,該變量的值是JDK的安裝目錄。首先單擊“新建”按鈕,然后在“變量名”文本框中輸入“JAVA_HOME”,在“變量值”文本框中輸入JDK的安裝路徑,單擊“確定”按鈕,如圖1-12所示。CLASSPATH環(huán)境變量的配置方法同JAVA_HOME環(huán)境變量,如圖1-13所示。與JAVA_HOME和CLASSPATH不同,在計(jì)算機(jī)中Path環(huán)境變量是存在的,所以只需要為其添加內(nèi)容即可,如圖1-14所示。環(huán)境變量分為兩類,一類是用戶的環(huán)境變量,另一類是系統(tǒng)環(huán)境變量。本課件是可編輯的正常PPT課件1.2.2系統(tǒng)環(huán)境變量配置step03

配置完畢之后,按【W(wǎng)IN+R】組合鍵打開“運(yùn)行”對(duì)話框,輸入“cmd”,單擊“確定”按鈕,打開Windows的命令提示符窗口,如圖1-15所示。step04

輸入“java–version”,按【Enter】鍵,命令提示符窗口中會(huì)顯示Java的版本信息,如圖1-16所示。step05

輸入“javac”,按【Enter】鍵,窗口會(huì)顯示Java的javac工具,如圖1-17所示。本課件是可編輯的正常PPT課件目錄導(dǎo)航1.1

Java簡(jiǎn)介1.3

Java開發(fā)工具的使用1.5單元小結(jié)1.2

Java開發(fā)環(huán)境搭建1.4項(xiàng)目實(shí)戰(zhàn)本課件是可編輯的正常PPT課件1.3

Java開發(fā)工具的使用JDK安裝配置完成之后就可以進(jìn)行Java的開發(fā)了,此時(shí),你只需要使用文本編輯器就可以開發(fā)Java代碼了。讓我們來體驗(yàn)一下吧!使用文本編輯器編寫一個(gè)Java程序,代碼如下:publicclassHelloJava{publicstaticvoidmain(String[]args){System.out.println("Helloworld,HelloJava!");}}按【W(wǎng)IN+R】組合鍵,輸入“cmd”,打開命令提示符窗口;先使用javac編譯.java文件,然后使用java運(yùn)行程序。需要注意的是,文件的名稱必須和類名一致。這里的文件名稱是HelloJava.java。javac用于編譯文件,所以使用“javacHelloJava.java”;java運(yùn)行的是類,所以使用“javaHelloJava”,運(yùn)行效果如圖1-18所示。本課件是可編輯的正常PPT課件1.3.1比較流行的Java開發(fā)工具簡(jiǎn)介JDK安裝配置完成之后就可以進(jìn)行Java的開發(fā)了,此時(shí),你只需要使用文本編輯器就可以開發(fā)Java代碼了。讓我們來體驗(yàn)一下吧!1.EclipseEclipse是一款主要用Java編寫的免費(fèi)JavaIDE(IntegratedDevelopmentEnvironment,集成開發(fā)環(huán)境)。Eclipse允許用戶創(chuàng)建各種可用于手機(jī)、網(wǎng)絡(luò)、桌面和企業(yè)領(lǐng)域的跨平臺(tái)Java應(yīng)用程序。Eclipse的主要功能包括Windows生成器、集成Maven、Mylyn、XML(ExtensibleMarkupLanguage,可擴(kuò)展標(biāo)記語言)編輯器、Git客戶端、CVS(ConcumentVersionsSystem,并發(fā)版本系統(tǒng))客戶端、PyDev,并且Eclipse還有一個(gè)基本工作區(qū),里面的可擴(kuò)展插件系統(tǒng)可滿足用戶自定義IDE的需求。Eclipse在Eclipse公共協(xié)議下可用,并且適用于Windows、macOS和Linux系統(tǒng)。本課件是可編輯的正常PPT課件1.3.1比較流行的Java開發(fā)工具簡(jiǎn)介2.NetBeansNetBeans是一款用Java編寫的開源IDE,是最受歡迎的JavaIDE編輯器之一。

NetBeans支持所有Java應(yīng)用類型(包括JavaSE、JavaFX、JavaME、Web應(yīng)用、EJB和移動(dòng)App)的標(biāo)準(zhǔn)開箱即用式開發(fā)。NetBeans模塊化的設(shè)計(jì)意味著它可以由第三方插件來擴(kuò)展其功能,如NetBeans的PDF插件。

NetBeans既可用于Java開發(fā),也支持其他語言,特別是PHP、C/C++和HTML5(HyperTextMarkupLanguage5,超文本標(biāo)記語言第5版)。

NetBeans是基于Ant的項(xiàng)目系統(tǒng),支持Maven、重構(gòu)、版本控制(包括CVS、Subversion、Git、Mercurial和ClearCase),并且是在由通用開發(fā)與發(fā)布許可證(CommonDevelopmentandDistributionLicense,CDDL)v1.0和GNU通用公共許可證(GeneralPubicLicense,GPL)v2.0構(gòu)成的雙重協(xié)議下發(fā)布的。

NetBeans可在多個(gè)平臺(tái)上運(yùn)行,包括Windows、macOS、Linux、Solaris和其他支持兼容JVM的平臺(tái)。本課件是可編輯的正常PPT課件1.3.1比較流行的Java開發(fā)工具簡(jiǎn)介3.IntelliJIDEAIntelliJIDEA是一款免費(fèi)的JavaIDE,主要用于Android應(yīng)用開發(fā)、Scala、Groovy、JavaSE和JavaEE編程。它設(shè)計(jì)精巧,并提供了JUnit測(cè)試、TestNG、調(diào)試、代碼檢查、智能代碼補(bǔ)全、多元重構(gòu)、Maven和Ant構(gòu)建工具、可視化GUI(GraphicalUserInterface,圖形用戶界面)設(shè)計(jì)器以及XML和Java代碼編輯器等實(shí)用功能。4.MyEclipseMyEclipse是一個(gè)出色的Eclipse插件集合,專門用于Java、J2EE開發(fā)。MyEclipse的功能非常強(qiáng)大,支持面也十分廣,尤其是對(duì)多種開源產(chǎn)品的支持都不錯(cuò)。MyEclipse支持JavaServlet、AJAX(AsynchronousJavaScriptAndXML,異步JavaScript和XML)、JSP(JavaServerPage,Java服務(wù)器頁面)、JSF(JavaServerFaces,Java服務(wù)器界面)、Struts、Spring、Hibernate、EJB3(EnterpriseJavaBean3,企業(yè)級(jí)JavaBean第3版)、JDBC(JavaDatabaseConneetivity,Java數(shù)據(jù)庫連接)數(shù)據(jù)庫連接工具等多項(xiàng)功能。目前MyEclipse提供Windows、macOS和Linux3種操作系統(tǒng)的安裝包,可在這3種操作系統(tǒng)上安裝。本課件是可編輯的正常PPT課件1.3.1比較流行的Java開發(fā)工具簡(jiǎn)介5.其他工具Java的魅力是支持多種工具,例如構(gòu)建工具Ant、包管理工具M(jìn)aven和項(xiàng)目運(yùn)行容器Tomcat等。這些工具可以幫助Java開發(fā)者快速創(chuàng)建項(xiàng)目及進(jìn)行項(xiàng)目的持續(xù)集成等。其中Maven是項(xiàng)目包管理的重要工具,它可以減少包導(dǎo)入導(dǎo)致的項(xiàng)目占用空間巨大和Java包沖突等問題;Tomcat則是JavaWeb項(xiàng)目發(fā)布時(shí)需要使用的服務(wù)器,可以讓W(xué)eb項(xiàng)目在其上運(yùn)行并提供服務(wù)。本課件是可編輯的正常PPT課件1.3.2Eclipse的安裝及使用目前Eclipse有很多版本,本書以Neon版本為例進(jìn)行說明。用戶只需下載“eclipse-inst-win64.exe”安裝包,并按照提示安裝即可,步驟如下。step01

雙擊安裝包,選擇“EclipseIDEforJavaDevelopers”選項(xiàng),如圖1-20所示;進(jìn)入安裝配置界面,單擊“INSTALL”按鈕安裝即可,如圖1-21所示;安裝時(shí)會(huì)跳出協(xié)議界面,單擊“確定”按鈕繼續(xù)安裝。step02

安裝完成之后會(huì)在桌面上生成一個(gè)快捷圖標(biāo)。雙擊快捷圖標(biāo)運(yùn)行軟件,軟件打開后界面如圖1-22所示。本課件是可編輯的正常PPT課件目錄導(dǎo)航1.1

Java簡(jiǎn)介1.3

Java開發(fā)工具的使用1.5單元小結(jié)1.2

Java開發(fā)環(huán)境搭建1.4項(xiàng)目實(shí)戰(zhàn)本課件是可編輯的正常PPT課件項(xiàng)目1-1使用Eclipse編寫HelloWorld程序我們學(xué)習(xí)一門新的語言,編寫的第一個(gè)程序基本上都是HelloWorld。本項(xiàng)目就是使用Java語言編寫HelloWorld程序,開發(fā)工具使用Eclipse。Eclipse的使用較為簡(jiǎn)單,首先創(chuàng)建項(xiàng)目,然后創(chuàng)建類,執(zhí)行一個(gè)入口類就可以查看運(yùn)行結(jié)果了。如果編輯中出現(xiàn)簡(jiǎn)單的錯(cuò)誤,編輯器會(huì)進(jìn)行提示,在錯(cuò)誤代碼下顯示一條紅色的波浪線。具體步驟如下。step01

創(chuàng)建項(xiàng)目。選擇“File”→“new”→“Project”→“JavaProject”,或者按【Alt+Shift+N】組合鍵后選擇“Project”→“JavaProject”;然后輸入項(xiàng)目名稱“firstprogram”,再依次單擊“Finish”→“Yes”即可,如圖1-23、圖1-24所示。本課件是可編輯的正常PPT課件項(xiàng)目1-1使用Eclipse編寫HelloWorld程序step02

項(xiàng)目創(chuàng)建完成之后,就進(jìn)入了Java項(xiàng)目的編輯界面,如圖1-25所示。step03

創(chuàng)建類。在項(xiàng)目文件結(jié)構(gòu)中使用默認(rèn)的包(包的概念在第5單元中介紹)新建一個(gè)類,方法為:右擊src文件夾,在彈出的快捷菜單中選擇“New”→“Class”,如圖1-26所示;在彈出的“NewJavaClass”對(duì)話框的“Package”文本框中輸入包名稱“firstprogram”,在“Name”文本框中輸入類名稱“HelloJava”,勾選“publicstaticvoidmain(String[]args)”,默認(rèn)創(chuàng)建一個(gè)主方法,其他選項(xiàng)保持默認(rèn)值不變,如圖1-27所示。本課件是可編輯的正常PPT課件項(xiàng)目1-1使用Eclipse編寫HelloWorld程序step04

單擊“Finish”按鈕后,就可成功地創(chuàng)建Java類了。創(chuàng)建完成之后,編輯器會(huì)自動(dòng)打開所創(chuàng)建類的視圖,如圖1-28所示。step05

此時(shí),Java類已經(jīng)創(chuàng)建完成。為了形成對(duì)比,此處使用與在文本編輯器中編寫的Java類相似的執(zhí)行邏輯:在main()方法中通過System.out.println()輸出“HelloEclipse,HelloJava!”;在類文件中右擊,選擇“Runas”,會(huì)在控制臺(tái)中輸出“HelloEclipse,HelloJava!”,如圖1-29所示。本課件是可編輯的正常PPT課件項(xiàng)目1-1使用Eclipse編寫HelloWorld程序Java提供了豐富的API,這些API可以幫助開發(fā)者快速開發(fā)項(xiàng)目。這些API按照功能被放在了不同的包中,具體如下。

java.util包:包含大量的工具類,例如Arrays、List和Map等。

包:包含與網(wǎng)絡(luò)編程相關(guān)的類和接口。

java.io包:包含所有與輸入輸出操作相關(guān)的類和接口。

java.awt包:包含與圖像界面相關(guān)的類和接口。

java.lang包:包含與語言相關(guān)的類和接口。

java.sql包:包含與數(shù)據(jù)庫相關(guān)的類和接口。

java.rmi包:包含與遠(yuǎn)程調(diào)用相關(guān)的類和接口。本課件是可編輯的正常PPT課件目錄導(dǎo)航1.1

Java簡(jiǎn)介1.3

Java開發(fā)工具的使用1.5單元小結(jié)1.2

Java開發(fā)環(huán)境搭建1.4項(xiàng)目實(shí)戰(zhàn)本課件是可編輯的正常PPT課件1.5單元小結(jié)本單元是Java的基本介紹單元,1.1節(jié)主要講解了Java的發(fā)展歷程和語言特點(diǎn),并指出了Java熱度不減的原因;1.2節(jié)講解了JDK、JRE和JVM的關(guān)系、JDK的安裝及系統(tǒng)環(huán)境變量的配置,這是開發(fā)Java項(xiàng)目必不可少的環(huán)節(jié);1.3節(jié)介紹了Java常用的開發(fā)工具,這些開發(fā)工具各有優(yōu)點(diǎn),其中Eclipse較為常用,Eclipse有免安裝版本,可以直接解壓后使用;1.4節(jié)的項(xiàng)目實(shí)戰(zhàn)主要介紹了Eclipse工具的使用,帶領(lǐng)讀者了解了使用Eclipse創(chuàng)建Java項(xiàng)目和Java類并運(yùn)行的方法,讀者可以根據(jù)自己的興趣使用Eclipse創(chuàng)建并編寫一個(gè)Java項(xiàng)目。

Java最大的優(yōu)勢(shì)之一就是盡力讓開發(fā)者只關(guān)注業(yè)務(wù)邏輯,這極大地減少了C類程序中讓開發(fā)者頭疼的空間管理和指針問題,而且Java豐富的類庫讓開發(fā)者更容易入手,加上Java強(qiáng)大的擴(kuò)展能力,使其成為開發(fā)領(lǐng)域中最活躍的編程語言之一。本課件是可編輯的正常PPT課件單元1站點(diǎn)創(chuàng)建與制作商品簡(jiǎn)介頁面HTML5+CSS3網(wǎng)頁設(shè)計(jì)與制作實(shí)用教程學(xué)習(xí)快樂!本課件是可編輯的正常PPT課件第2單元基本數(shù)據(jù)類型及運(yùn)算符Java程序設(shè)計(jì)基礎(chǔ)教程((慕課版)(第2版))本課件是可編輯的正常PPT課件目錄導(dǎo)航2.1基本數(shù)據(jù)類型2.3項(xiàng)目實(shí)戰(zhàn)2.2運(yùn)算符2.4單元小結(jié)本課件是可編輯的正常PPT課件2.1.1基本數(shù)據(jù)類型分類Java中的整型可以分為以下4種類型?;拘停河胕nt表示。

短整型:用short表示。

長(zhǎng)整型:用long表示。

字節(jié)型:用byte表示。01OPTION整型Java的基本數(shù)據(jù)類型可以分為三大類,分別是字符型(char)、布爾型(boolean)和數(shù)值類型(byte、short、int、long、float和double),數(shù)值類型又分為整型(byte、short、int和long)和浮點(diǎn)型(float和double)。數(shù)據(jù)類型內(nèi)存占用大小取值范圍byte8位(1個(gè)字節(jié))-128~127short16位(2個(gè)字節(jié))-32768~32767int32位(4個(gè)字節(jié))-231~231-1long64位(8個(gè)字節(jié))-263~263-1表2-1Java中整型的內(nèi)存占用大小及取值范圍本課件是可編輯的正常PPT課件2.1.1基本數(shù)據(jù)類型分類Java的數(shù)據(jù)類型是以補(bǔ)碼的形式存放在內(nèi)存中的。以short為例,它有16位,能存儲(chǔ)的最小數(shù)是:這個(gè)數(shù)是-216,換算成十進(jìn)制數(shù)就是-32768。

它能存儲(chǔ)的最大數(shù)是:這個(gè)數(shù)是216-1,換算成十進(jìn)制數(shù)就是32767。其他數(shù)據(jù)類型的取值及其與十進(jìn)制數(shù)之間的轉(zhuǎn)換方式與此相似,讀者可以按照這個(gè)方式進(jìn)行換算。在Java中,高位是符號(hào)位,1表示負(fù)數(shù),0表示整數(shù)。本課件是可編輯的正常PPT課件2.1.1基本數(shù)據(jù)類型分類Java使用浮點(diǎn)型來表示實(shí)數(shù)。浮點(diǎn)型也有兩種:?jiǎn)尉雀↑c(diǎn)型和雙精度浮點(diǎn)型,分別使用float和double來表示。浮點(diǎn)型的相關(guān)說明如表2-2所示。02OPTION浮點(diǎn)型表2-2浮點(diǎn)型的相關(guān)說明數(shù)據(jù)類型內(nèi)存占用大小有效數(shù)字取值范圍float32位(4個(gè)字節(jié))7個(gè)十進(jìn)制位約±3.4×1038double64位(8個(gè)字節(jié))15~16個(gè)十進(jìn)制位約±1.8×10308Java中的浮點(diǎn)型是按照IEEE(InstituteofElectricalquelElectronicsEngineers,電氣與電子工程師協(xié)會(huì))754標(biāo)準(zhǔn)存放的。值得注意的是,程序開發(fā)中需要將整數(shù)當(dāng)作一種類型,將實(shí)數(shù)當(dāng)作另一種類型,因?yàn)檎麛?shù)和實(shí)數(shù)在計(jì)算機(jī)內(nèi)存中的表示方法截然不同:整數(shù)是精確存儲(chǔ)的,而實(shí)數(shù)只是存儲(chǔ)近似值。本課件是可編輯的正常PPT課件2.1.1基本數(shù)據(jù)類型分類Java中的字符型用char來表示。和C/C++不同的是,它使用2個(gè)字節(jié)(16位)來存儲(chǔ)一個(gè)字符,而且存放的并非ASCII值而是Unicode值。Unicode是一種在計(jì)算機(jī)上使用的字符編碼,其為每種語言定義了統(tǒng)一且唯一的二進(jìn)制編碼,以滿足跨語言、跨平臺(tái)進(jìn)行文本轉(zhuǎn)換處理的需求。Unicode值和ASCII值是兼容的,所有的ASCII字符都可通過在高字節(jié)位添加0,成為Unicode值。例如,a的ASCII值是0x61,在Unicode中,其編碼是0x0061。03OPTION字符型布爾型使用boolean來表示,它的值只有true和false。布爾型是用來處理邏輯的,又被稱為邏輯類型,true和false分別表示條件成立和條件不成立。04OPTION布爾型本課件是可編輯的正常PPT課件2.1.2基本數(shù)據(jù)類型的拆裝箱基本數(shù)據(jù)類型的數(shù)據(jù)可以作為變量(Variable)存儲(chǔ)在計(jì)算機(jī)內(nèi)存中。變量是有名稱和數(shù)據(jù)類型的內(nèi)存空間,用于存儲(chǔ)值。01OPTION變量聲明變量02OPTION變量的存在就是為了告訴程序我是誰和我的數(shù)據(jù)類型是什么。所以,你需要發(fā)表一個(gè)聲明,告訴程序你要聲明一個(gè)變量,這個(gè)變量叫什么,將要存儲(chǔ)什么類型的數(shù)據(jù),如下所示:<類型><名稱>;需要注意的是,每個(gè)變量名稱只能聲明一次,否則Java編譯器會(huì)報(bào)錯(cuò)。類型可以使用Java的8種基本數(shù)據(jù)類型的名字來表示。變量一旦聲明了,Java就會(huì)為它分配一段內(nèi)存空間來存儲(chǔ)它的值,但是僅聲明變量并不能讓Java向變量對(duì)應(yīng)的內(nèi)存空間存放初始值。僅聲明的變量被稱為未初始化的變量,這種變量需要對(duì)其進(jìn)行賦值操作之后才能使用。本課件是可編輯的正常PPT課件2.1.2基本數(shù)據(jù)類型的拆裝箱變量的賦值使用“=”表示,該符號(hào)用于告訴JVM將后面的值交給前面的變量進(jìn)行保存。需要注意的是,變量在進(jìn)行賦值操作會(huì)執(zhí)行類型安全檢查。如果你定義的變量是char類型的,但賦予該變量一個(gè)boolean類型的值,Java編譯器就會(huì)拋出異常。03OPTION變量賦值<variable>=<expression>;賦值語句可以與聲明語句同時(shí)使用,即你可在聲明一個(gè)變量的時(shí)候就為這個(gè)變量賦值:<type><variable>=<expression>;例如,你可以聲明一個(gè)int類型的變量,其名稱是height,其值是180:intheight=180;與變量相對(duì)的是常量。常量的值在程序運(yùn)行過程中不能被改變。這一點(diǎn)是不同于變量的,變量的值是可以根據(jù)需要進(jìn)行改變的。本課件是可編輯的正常PPT課件任務(wù)2-1常量和變量文件ConstantAndVariablesDemo.java序號(hào)程序代碼010203040506070809101112131415161718publicclassConstantAndVariablesDemo{publicstaticvoidmain(String[]args){finalintMALE=1;//定義常量MALE表示男性,常量需要在聲明時(shí)賦值intage;//聲明age,其類型是intintheight=180;//聲明height,其類型是int,并賦值為180//age未定義,所以此處會(huì)拋出錯(cuò)誤//System.out.println("MALE="+MALE+";age="+age+";height="+height);age=20;//給age賦值//輸出System.out.println("MALE="+MALE+";age="+age+";height="+height);height=177;//變量重新賦值System.out.println("MALE="+MALE+";age="+age+";height="+height);//MALE=0;//常量無法重新賦值}}運(yùn)行結(jié)果如圖2-1所示。本課件是可編輯的正常PPT課件任務(wù)2-2基本數(shù)據(jù)類型的拆裝箱文件AssemblyAndDisDemo.java序號(hào)程序代碼0102030405060708091011121314publicclassAssemblyAndDisDemo{publicstaticvoidmain(String[]args){intage=39;//定義基本數(shù)據(jù)類型變量IntegerageNor=38;//定義包裝類變量//輸出System.out.println("age="+age+",ageNor="+ageNor);inttemp=age;//將基本數(shù)據(jù)類型變量賦給一個(gè)臨時(shí)變量age=ageNor;//將包裝類變量賦給基本數(shù)據(jù)類型變量ageNor=temp;//將基本數(shù)據(jù)類型變量賦給一個(gè)包裝類變量//輸出System.out.println("age="+age+",ageNor="+ageNor);}}運(yùn)行結(jié)果如圖2-2所示。本課件是可編輯的正常PPT課件任務(wù)2-3獲取基本數(shù)據(jù)類型的取值范圍文件BasicValueDemo.java序號(hào)程序代碼0102030405060708091011121314151617publicclassBasicValueDemo{publicstaticvoidmain(String[]args){//整型System.out.println("byte類型的最大值:"+Byte.MAX_VALUE+";最小值:"+Byte.MIN_VALUE);System.out.println("short類型的最大值:"+Short.MAX_VALUE+";最小值:"+Short.MIN_VALUE);System.out.println("int類型的最大值:"+Integer.MAX_VALUE+";最小值:"+Integer.MIN_VALUE);System.out.println("long類型的最大值:"+Long.MAX_VALUE+";最小值:"+Long.MIN_VALUE);//浮點(diǎn)型System.out.println("float類型的最大值:"+Float.MAX_VALUE+";最小值:"+Float.MIN_VALUE);System.out.println("double類型的最大值:"+Double.MAX_VALUE+";最小值:"+Double.MIN_VALUE);//布爾型System.out.println("boolean類型的true:"+Boolean.TRUE+";false:"+Boolean.FALSE);//字符型System.out.println("char類型的最大值:"+(int)(Character.MAX_VALUE)+";最小值:"+(int)(Character.MIN_VALUE));}}本課件是可編輯的正常PPT課件任務(wù)2-2基本數(shù)據(jù)類型的拆裝箱運(yùn)行結(jié)果如圖2-3所示。包裝類的名稱一般是將對(duì)應(yīng)基本數(shù)據(jù)類型的名稱改為首字母大寫。但int類型和char類型較為特殊,其對(duì)應(yīng)的包裝類分別是Integer和Character。通過包裝類的基本方法可以獲取其對(duì)應(yīng)的基本數(shù)據(jù)類型的閾值。本課件是可編輯的正常PPT課件任務(wù)2-4包裝類的轉(zhuǎn)換方法文件AssemblyParseDemo.java序號(hào)程序代碼0102030405060708091011121314publicclassAssemblyParseDemo{publicstaticvoidmain(String[]args){//定義String類型的變量,一個(gè)是整型的100,一個(gè)是浮點(diǎn)型的99.88StringintValue="100";StringdoubleValue="99.88";byteb=Byte.parseByte(intValue);//將字符串轉(zhuǎn)換成byte類型的數(shù)據(jù)shorts=Short.parseShort(intValue);//將字符串轉(zhuǎn)換成short類型的數(shù)據(jù)inti=Integer.parseInt(intValue);//將字符串轉(zhuǎn)換成int類型的數(shù)據(jù)System.out.println("b="+b+";s="+s+";i="+i);//輸出floatf=Float.parseFloat(doubleValue);//將字符串轉(zhuǎn)換成float類型的數(shù)據(jù)doubled=Double.parseDouble(doubleValue);//將字符串轉(zhuǎn)換成double類型的數(shù)據(jù)System.out.println("f="+f+";d="+d);//輸出}}運(yùn)行結(jié)果如圖2-4所示。本課件是可編輯的正常PPT課件2.1.3拓展:parseInt()方法和valueOf()方法的使用Integer的parseInt()和valueOf()方法都可以將字符串轉(zhuǎn)換成Integer類型的值。在對(duì)字符串的處理方面,valueOf()一般會(huì)調(diào)用parseInt()方法,但是何時(shí)使用parseInt(),何時(shí)使用valueOf()呢?此時(shí)需要深入查看API,通過查看API不難發(fā)現(xiàn):publicstaticIntegervalueOf(Strings)throwsNumberFormatException{returnInteger.valueOf(parseInt(s,10));}其實(shí)valueOf()方法最終還是需要使用parseInt()方法的,這里還用到了valueOf()方法。進(jìn)入這個(gè)方法,可以看到如下內(nèi)容:publicstaticIntegervalueOf(inti){if(i>=IntegerCache.low&&i<=IntegerCache.high)returnIntegerCache.cache[i+(-IntegerCache.low)];returnnewInteger(i);}此處發(fā)現(xiàn)了IntegerCache。從代碼中可以看出,IntegerCache是一個(gè)已經(jīng)預(yù)先初始化的數(shù)字常量池:staticfinalintlow=-128;staticfinalinthigh;…inth=127;…for(intk=0;k<cache.length;k++)cache[k]=newInteger(j++);本課件是可編輯的正常PPT課件目錄導(dǎo)航2.1基本數(shù)據(jù)類型2.3項(xiàng)目實(shí)戰(zhàn)2.2運(yùn)算符2.4單元小結(jié)本課件是可編輯的正常PPT課件2.2運(yùn)算符Java中的運(yùn)算符共36種,依照運(yùn)算類型可以分為六大類,包含算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、條件運(yùn)算符、位運(yùn)算符和賦值運(yùn)算符。這6種運(yùn)算的說明如表2-3所示。類型運(yùn)算符算術(shù)運(yùn)算符+、-、*、/、%、++、--關(guān)系運(yùn)算符>、<、==、>=、<=、!=邏輯運(yùn)算符!、&&、||條件運(yùn)算符?:位運(yùn)算符<<、>>、>>>、^、~、|、&賦值運(yùn)算符=、+=、-=、*=、/=、&=、|=、^=、%=、<<=、>>=、>>>=表2-3Java中的運(yùn)算符本課件是可編輯的正常PPT課件2.2.1算術(shù)運(yùn)算符算術(shù)運(yùn)算就是我們?nèi)粘I钪兴f的加減乘除等運(yùn)算,在計(jì)算機(jī)中還有取余運(yùn)算和自增自減運(yùn)算。在基本數(shù)據(jù)類型中,boolean類型無法進(jìn)行算術(shù)運(yùn)算。我們?cè)?.1節(jié)中介紹了基本數(shù)據(jù)類型中除了boolean外的其他幾種類型。需要注意的是,精度小于int類型精度的數(shù)據(jù)在做加減乘除運(yùn)算時(shí),會(huì)使用int類型進(jìn)行計(jì)算,同時(shí)將表達(dá)式中精度最高的操作數(shù)的數(shù)據(jù)類型作為結(jié)果的類型。1.加減運(yùn)算在基本數(shù)據(jù)類型中,“+”和“-”與普通數(shù)學(xué)中的用法一致。因?yàn)榉?hào)左右都需要一個(gè)操作數(shù),所以加減運(yùn)算也稱雙目運(yùn)算,其一般語法格式是:<expr1>+<expr2><expr1>-<expr2>加減運(yùn)算的具體應(yīng)用請(qǐng)參看任務(wù)2-5。本課件是可編輯的正常PPT課件任務(wù)2-5加減運(yùn)算publicclassAddAndMinus{publicstaticvoidmain(String[]args){charch1='c';charch2='d';shorts1=10;shorts2=12;inti1=100;inti2=20;//charch3=ch1+ch2;//編譯器報(bào)異常inti3=ch1+ch2;//shorts3=s1+s2;//編譯器報(bào)異常inti4=s1+s2;//charch4=i1+i2;//編譯器報(bào)異常inti5=i1+i2;System.out.println("i3="+i3);System.out.println("i4="+i4);System.out.println("i5="+i5);//int類型數(shù)據(jù)與float類型數(shù)據(jù)的和是float類型的數(shù)據(jù)floatf1=3.0F;System.out.println("i1+f1="+(i1+f1));}}文件AddAndMinus.java運(yùn)行結(jié)果如圖2-5所示。從任務(wù)2-5中不難發(fā)現(xiàn),char類型數(shù)據(jù)和short類型數(shù)據(jù)在做運(yùn)算的時(shí)候其結(jié)果是int類型的數(shù)據(jù)。這并非由于Java中的精度安全機(jī)制,而是由于JVM中存儲(chǔ)長(zhǎng)度小于int類型的數(shù)據(jù)時(shí)是使用int類型的,這樣就避免了過多的數(shù)據(jù)類型而增加額外的開銷,同時(shí)簡(jiǎn)化了數(shù)據(jù)操作。本課件是可編輯的正常PPT課件2.2.1算術(shù)運(yùn)算符2.正負(fù)值運(yùn)算需要注意的是,“+”和“-”并非在所有的情況下都是加減運(yùn)算符,它們有時(shí)候也是正負(fù)值的標(biāo)識(shí)。這個(gè)標(biāo)識(shí)和數(shù)學(xué)中的使用方式一致,即標(biāo)識(shí)常量或數(shù)字的正負(fù)性,例如-1、+a、-b等。正負(fù)值運(yùn)算只有右側(cè)有值,所以是單目運(yùn)算,這一點(diǎn)有別于加減運(yùn)算。正負(fù)值運(yùn)算另一個(gè)要關(guān)注的點(diǎn)是:這兩個(gè)運(yùn)算符只是標(biāo)識(shí),并不能改變操作數(shù)本身。例如,對(duì)于a=1,如果我們執(zhí)行-a操作,a還是等于1,而非-1。正負(fù)值運(yùn)算的一般語法格式是:+<expr1>-<expr1>3.乘除運(yùn)算Java中的乘法運(yùn)算符是“*”,除法運(yùn)算符是“/”。同加減運(yùn)算一樣,其運(yùn)算符左右必須有值。乘除運(yùn)算也是雙目運(yùn)算,其用法也與數(shù)學(xué)中的用法一致。乘除運(yùn)算的具體應(yīng)用請(qǐng)參看任務(wù)2-6。+<expr1>-<expr1>本課件是可編輯的正常PPT課件任務(wù)2-6乘除運(yùn)算publicclassMultipAndDivide{publicstaticvoidmain(String[]args){System.out.println("5/3="+(5/3));System.out.println("5*3="+(5*3));System.out.println("5/3.0="+(5/3.0));System.out.println("5*3.0="+(5*3.0));System.out.println("5.0/3="+(5.0/3));System.out.println("5.0*3*3="+(5.0*3*3));}}文件MultipAndDivide.java運(yùn)行結(jié)果如圖2-6所示。4.取余運(yùn)算取余運(yùn)算的運(yùn)算符是“%”。取余運(yùn)算也是雙目運(yùn)算,和數(shù)學(xué)中的取余運(yùn)算一致,其表達(dá)式為:<expr1>%<expr2>取余運(yùn)算實(shí)際上相當(dāng)于:<expr1>-(expr1/expr2)*expr2本課件是可編輯的正常PPT課件任務(wù)2-7取余運(yùn)算publicclassRemainderDemo{publicstaticvoidmain(String[]args){System.out.println("5%3="+(5%3));System.out.println("5%-3="+(5%-3));System.out.println("-5%3="+(-5%3));System.out.println("-5%-3="+(-5%-3));System.out.println("5%3.0="+(5%3.0));System.out.println("5.0%3="+(5.0%3));System.out.println("5.0%3.1="+(5.0%3.1));System.out.println("-5.1%3.1="+(-5.1%3.1));System.out.println("-5.2%-3.1="+(-5.2%-3.1));}}文件RemainderDemo.java運(yùn)行結(jié)果如圖2-7所示。從任務(wù)2-7中可以看出,取余運(yùn)算的余數(shù)的正負(fù)與被除數(shù)的正負(fù)相同,其類型與除數(shù)與被除數(shù)中精度較大的數(shù)據(jù)類型相同。同時(shí),進(jìn)行浮點(diǎn)型數(shù)值的取余運(yùn)算時(shí),將被除數(shù)與除數(shù)進(jìn)行整除后,用被除數(shù)減去除數(shù)與整除值的乘積得到余數(shù)。所以,5.2%3.1的運(yùn)算過程和結(jié)果就是:5.2-3.1*1=2.1。這與C語言中的fmod()函數(shù)的計(jì)算方法是一致的。本課件是可編輯的正常PPT課件2.2.1算術(shù)運(yùn)算符5.自增自減運(yùn)算自增和自減運(yùn)算的運(yùn)算符分別是“++”和“--”。和正負(fù)號(hào)一樣,自增自減運(yùn)算符也是單目運(yùn)算符。它們唯一的區(qū)別是:自增自減運(yùn)算符會(huì)改變變量的值,該運(yùn)算符只對(duì)變量有效,對(duì)常量無效。自增自減運(yùn)算符可以在變量的前面,稱為前綴;也可以在變量的后面,稱為后綴。前綴和后綴在計(jì)算方式上會(huì)有所不同。任務(wù)2-8自增自減運(yùn)算文件AutoIncrAndDecrDemo.javapublicclassAutoIncrAndDecrDemo{publicstaticvoidmain(String[]args){inta=1;intb=1;intc=++a;//前自增intd=--b;//前自減System.out.println("a="+a+",b="+b+",c="+c+",d="+d);c=a++;//后自增d=b--;//后自減System.out.println("a="+a+",b="+b+",c="+c+",d="+d);}}運(yùn)行結(jié)果如圖2-8所示。本課件是可編輯的正常PPT課件2.2.2關(guān)系運(yùn)算符和邏輯運(yùn)算符關(guān)系運(yùn)算因?yàn)槭菍?duì)兩個(gè)操作數(shù)的關(guān)系進(jìn)行判斷,所以是雙目運(yùn)算。在Java中,關(guān)系運(yùn)算符有相等運(yùn)算符“==”、不相等運(yùn)算符“!=”和大小關(guān)系運(yùn)算符“>”“<”“>=”“<=”。關(guān)系運(yùn)算的操作數(shù)可以是一個(gè)數(shù)值,也可以是一個(gè)表達(dá)式。需要注意的是,關(guān)系運(yùn)算符左右的數(shù)據(jù)必須是相同或者相容類型的數(shù)據(jù)或者表達(dá)式。其中,相等與不相等運(yùn)算符可以使用布爾型數(shù)據(jù)或表達(dá)式作為操作數(shù),但大小關(guān)系運(yùn)算符的操作數(shù)只能是整型或者浮點(diǎn)型數(shù)據(jù)或表達(dá)式。

相等運(yùn)算符的一般語法格式是:01OPTION關(guān)系運(yùn)算符<expr1>==<expr2>表達(dá)式也能作為其比較對(duì)象,操作數(shù)也可以是布爾型的。例如如下語句:5==3(a*3)==(b–2)(a==3)==truetrue==true如果表達(dá)式兩側(cè)的值是相等的,則返回true,否則返回false。本課件是可編輯的正常PPT課件2.2.2關(guān)系運(yùn)算符和邏輯運(yùn)算符不相等表達(dá)式0的運(yùn)算符是“!=”,其一般語法格是:<expr1>!=<expr2>5!=3true!=false(3+a)!=(b–6)(5==3)!=true不相等運(yùn)算符的兩側(cè)可以是相等或者相容類型的數(shù)據(jù),支持布爾型數(shù)據(jù)的判斷。例如如下語句:不相等表達(dá)式與相等表達(dá)式得到的結(jié)果相反。如果表達(dá)式相等,則返回false,否則返回true。Java中的大小關(guān)系運(yùn)算符有4個(gè),即“>”(大于)、“<”(小于)、“>=”(大于或等于)和“<=”(小于或等于),其一般語法格式是:<expr1><大小關(guān)系運(yùn)算符><expr2>大小關(guān)系運(yùn)算符與現(xiàn)代代數(shù)中對(duì)應(yīng)符號(hào)的規(guī)則完全相同。參與大小關(guān)系運(yùn)算的操作數(shù)可以是整型和浮點(diǎn)型。如果類型不相同,會(huì)首先進(jìn)行自動(dòng)類型轉(zhuǎn)換,然后進(jìn)行關(guān)系判斷。本課件是可編輯的正常PPT課件2.2.2關(guān)系運(yùn)算符和邏輯運(yùn)算符Java中的邏輯運(yùn)算有3種:與運(yùn)算、或運(yùn)算和非運(yùn)算(也叫取反運(yùn)算)。我們將參與邏輯運(yùn)算的數(shù)據(jù)對(duì)象稱為邏輯量,將用邏輯運(yùn)算符連接起來的式子稱為邏輯表達(dá)式。邏輯表達(dá)式的值又稱邏輯值,參與邏輯運(yùn)算的操作數(shù)必須是布爾型的數(shù)據(jù)或者表達(dá)式。邏輯運(yùn)算除了邏輯非運(yùn)算外都是雙目運(yùn)算,邏輯非運(yùn)算是單目運(yùn)算。02OPTION邏輯運(yùn)算符01邏輯與運(yùn)算邏輯與運(yùn)算的運(yùn)算符是“&&”,其語法格式是:<expr1>&&<expr2>expr1expr2expr1&&expr2truetruetruefalsetruefalsetruefalsefalsefalsefalsefalse表2-4邏輯與運(yùn)算的真值表本課件是可編輯的正常PPT課件2.2.2關(guān)系運(yùn)算符和邏輯運(yùn)算符02邏輯或運(yùn)算邏輯或運(yùn)算的運(yùn)算符是“||”,其表達(dá)式的一般形式是:<expr1>||<expr2>表2-5邏輯或運(yùn)算的真值表expr1expr2expr1||expr2truetruetruefalsetruetruetruefalsetruefalsefalsefalse03邏輯非運(yùn)算邏輯非運(yùn)算的運(yùn)算符是“!”,它是單目運(yùn)算,其語法格式一般為:!<expr1>因?yàn)殛P(guān)系運(yùn)算是雙目運(yùn)算,此處必須用括號(hào)“()”將表達(dá)式括起來,否則編譯器會(huì)報(bào)錯(cuò)。本課件是可編輯的正常PPT課件任務(wù)2-9邏輯與運(yùn)算和邏輯或運(yùn)算publicclassAnd_OrDemo{publicstaticvoidmain(String[]args){inta=3;intb=5;//因?yàn)閍+b=8,所以無須執(zhí)行a++表達(dá)式booleanbool1=a+b<7&&a++<9;System.out.println("a="+a+",b="+b+",bool1="+bool1);//因?yàn)閍+b<9成立,所以執(zhí)行b++表達(dá)式bool1=a+b<9&&b++>7;System.out.println("a="+a+",b="+b+",bool1="+bool1);//因?yàn)閍<4成立,所以不執(zhí)行a--表達(dá)式bool1=a<4||a-->3;System.out.println("a="+a+",b="+b+",bool1="+bool1);//因?yàn)閍>5不成立,所以執(zhí)行a++表達(dá)式

bool1=a>5||a++>1;System.out.println("a="+a+",b="+b+",bool1="+bool1);}}文件And_OrDemo.java運(yùn)行結(jié)果如圖2-9所示。關(guān)系表達(dá)式和邏輯表達(dá)式的值都是true或false,是boolean類型,所以它們一般被用在控制執(zhí)行流程中,例如if()語句、while()語句等,作為控制條件。控制執(zhí)行流程將在第3單元進(jìn)行講解。本課件是可編輯的正常PPT課件2.2.3賦值運(yùn)算符與條件運(yùn)算符Java中的賦值運(yùn)算符有兩種:對(duì)于簡(jiǎn)單的賦值運(yùn)算,使用簡(jiǎn)單賦值運(yùn)算符“=”;對(duì)于復(fù)雜的賦值運(yùn)算,將“=”與其他運(yùn)算符復(fù)合在一起形成復(fù)合賦值運(yùn)算符,如“+=”和“%=”等。賦值運(yùn)算符01OPTION01簡(jiǎn)單賦值運(yùn)算符簡(jiǎn)單賦值運(yùn)算符是“=”,其賦值語法格式如下:a=b+1;在Java中,所謂的賦值,其物理意義就是將賦值運(yùn)算右側(cè)操作數(shù)的值存放到左側(cè)操作數(shù)所標(biāo)識(shí)的存儲(chǔ)單元中。賦值運(yùn)算具有右結(jié)合性,也就是說:a=b=c=1;可以理解成:a=(b=(c=1));在Java中,賦值語句右側(cè)的執(zhí)行順序是從左向右的,例如:a=++b+b--;02復(fù)合賦值運(yùn)算符在程序設(shè)計(jì)中,類似下面的表達(dá)式是常見的:a=a+b;此類運(yùn)算的特點(diǎn)是參與運(yùn)算的量既是運(yùn)算分量也是存儲(chǔ)對(duì)象。本課件是可編輯的正常PPT課件2.2.3賦值運(yùn)算符與條件運(yùn)算符為了避免對(duì)同一存儲(chǔ)對(duì)象的地址反復(fù)計(jì)算,Java引入了復(fù)合賦值運(yùn)算符,凡是雙目運(yùn)算都可以與賦值運(yùn)算組合成復(fù)合賦值運(yùn)算。復(fù)合賦值運(yùn)算符有11種,它們的存在提升了編譯的效率:+=、-=、*+、/=、%=、<<=、>>=、>>>=、&=、^=、|=其對(duì)應(yīng)的運(yùn)算語義如下:x+=6;等效于x=x+6;z*=x+y等效于z=z*(x+y)m+=n-=q+1等效于m=m+(n=n-(q+1))x/=6等效于x=x/6x%=6等效于x=x%6x<<=1等效于x=x<<1x>>=1等效于x=x>>1x>>>=1等效于x=x>>>1x&=y等效于x=x&yx^=y等效于x=x^yx|=y等效于x=x|y本課件是可編輯的正常PPT課件2.2.3賦值運(yùn)算符與條件運(yùn)算符條件運(yùn)算符又稱三目運(yùn)算符,其一般語法格式如下:條件運(yùn)算符02OPTION<expr1>?<expr2>:<expr3>三目運(yùn)算符的語義是:如果表達(dá)式expr1是true,則返回expr2,否則返回expr3。三目運(yùn)算符同邏輯運(yùn)算符一樣也能控制子表達(dá)式的求值順序。三目運(yùn)算符的另一個(gè)優(yōu)勢(shì)是:其子表達(dá)式也可以是一個(gè)三目運(yùn)算表達(dá)式:x%3==0?“3的倍數(shù)”:x%2==0?“偶數(shù)”:“基數(shù)”三目運(yùn)算符在取多個(gè)數(shù)的最大值和最小值時(shí)非常有效,如下:inta=10;intb=12;intc=20;intmax=a<b?b<c?c:b:a<c?c:a;本課件是可編輯的正常PPT課件2.2.4位運(yùn)算符<<是左移運(yùn)算符,左移操作是將一個(gè)數(shù)的二進(jìn)制碼整體向左移動(dòng)指定的位數(shù),左邊移除的位被丟棄,并在右邊空出的位上補(bǔ)0。左移操作相當(dāng)于將原數(shù)乘以2的n次方,其中n是移動(dòng)的位數(shù)。>>是右移運(yùn)算符,右移操作是將一個(gè)數(shù)的二進(jìn)制碼整體向右移動(dòng)指定的位數(shù),右邊移除的位被丟棄,左邊空出的位根據(jù)原有數(shù)值的符號(hào)位來補(bǔ)充。即針對(duì)正數(shù)的位移,左邊空出的位會(huì)補(bǔ)0;針對(duì)負(fù)數(shù)的位移,左邊空出的位會(huì)補(bǔ)1。右移操作相當(dāng)于將原數(shù)除以2的n次方,其中n是移動(dòng)的位數(shù)。>>>是無符號(hào)右移運(yùn)算符。無符號(hào)右移操作和右移操作類似,區(qū)別在于無符號(hào)右移不考慮符號(hào)位,右邊移除的位被丟棄,左邊空出的位始終補(bǔ)0。對(duì)于正數(shù),無符號(hào)右移操作的結(jié)果和右移操作一致,對(duì)于負(fù)數(shù)則不同。01OPTION<<、>>、>>>本課件是可編輯的正常PPT課件2.2.4位運(yùn)算符^、~、|、&02OPTION^是異或運(yùn)算符,用于對(duì)兩個(gè)整數(shù)的二進(jìn)制碼按位進(jìn)行比較。如果同一位置的兩個(gè)比特值相等,則將該位置為0;如果同一位置的兩個(gè)比特值不相等,則將該位置為1。~是按位取反運(yùn)算符,用于對(duì)一個(gè)整數(shù)的二進(jìn)制碼的所有位數(shù)進(jìn)行取反操作,即將所有的0變?yōu)?,將所有的1變成0。|是按位或運(yùn)算符,用于對(duì)兩個(gè)整數(shù)的二進(jìn)制碼按位進(jìn)行比較。如果同一位置的兩個(gè)比特值有一個(gè)為1,則結(jié)果位就為1,否則為0。&是按位與運(yùn)算符,用于對(duì)兩個(gè)整數(shù)的二進(jìn)制碼按位進(jìn)行比較。如果同一位置的兩個(gè)比特值都為1,則結(jié)果位就為1,否則為0。本課件是可編輯的正常PPT課件2.2.5運(yùn)算符的優(yōu)先級(jí)當(dāng)一個(gè)表達(dá)式包含多個(gè)運(yùn)算符的時(shí)候,表達(dá)式的求值順序由3個(gè)因素決定,分別是運(yùn)算符的優(yōu)先級(jí)、運(yùn)算符的結(jié)合性和是否控制求值順序(指Java中的3個(gè)運(yùn)算符:邏輯與運(yùn)算符&&、邏輯或運(yùn)算符||和條件運(yùn)算符?:)。除了這3個(gè)特殊的運(yùn)算符,Java中求值順序的基本原則是:兩個(gè)相鄰運(yùn)算符的計(jì)算順序由它們的優(yōu)先級(jí)決定;如果它們的優(yōu)先級(jí)相同,那么結(jié)合性就決定了它們的求值順序;如果使用了圓括號(hào)“()”,那么它具有最高優(yōu)先級(jí)。注意:“()(小括號(hào))”“.(點(diǎn)號(hào))”“[](中括號(hào))”“{}(大括號(hào))”“,(英文逗號(hào))”“,(中文逗號(hào))”在Java中都是分隔符,不是運(yùn)算符,其中“()”可以改變表達(dá)式的求值順序。若有多個(gè)括號(hào),則先根據(jù)自左向右的順序處理括號(hào)內(nèi)的表達(dá)式,然后根據(jù)結(jié)合性進(jìn)行求值。本課件是可編輯的正常PPT課件2.2.5運(yùn)算符的優(yōu)先級(jí)表2-6Java中運(yùn)算符的優(yōu)先級(jí)和結(jié)合性運(yùn)算符優(yōu)先級(jí)結(jié)合性++、--、!、~1從右向左*、/、%2從左向右+、-3從左向右>>>、>>、<<4從左向右>、>=、<、<=5從左向右==、!=6從左向右&7從左向右^8從左向右|9從左向右&&10從左向右||11從左向右?:12從右向左=、+=、-=、*=、/=、%=、>>=、>>>=、<<=、&=、^=、|=13從右向左本課件是可編輯的正常PPT課件2.2.5運(yùn)算符的優(yōu)先級(jí)在程序中有一個(gè)很容易混淆的表達(dá)式是:a+++b;因?yàn)檫@個(gè)式子可以理解成:(a++)+b;或者:a+(++b);計(jì)算機(jī)的特性使其拒絕歧義,所以Java專門規(guī)定了它的處理方法。Java在從左到右掃描運(yùn)算符時(shí),會(huì)盡可能多地掃描字符,以匹配成一個(gè)合法的運(yùn)算符,因此“a+++b”會(huì)被處理成“(a++)+b”。對(duì)于任何一個(gè)雙目運(yùn)算,Java明確規(guī)定:左側(cè)操作數(shù)先求值,右側(cè)操作數(shù)后求值。本課件是可編輯的正常PPT課件任務(wù)2-10雙目運(yùn)算的求值順序publicclassInTurnDemo{publicstaticvoidmain(String[]args){inta=10;//相當(dāng)于a=a+(a=3),所以a=10+3a+=a=3;System.out.println("a="+a);intb=2;//相當(dāng)于b=3*3b=(b=3)*b;System.out.println("b="+b);}}文件InTurnDemo.java運(yùn)行結(jié)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論