Java面向?qū)ο蟪绦蛟O(shè)計案例教程(第二版) 課件全套1-12 Java語言概述 - JDBC數(shù)據(jù)庫編程_第1頁
Java面向?qū)ο蟪绦蛟O(shè)計案例教程(第二版) 課件全套1-12 Java語言概述 - JDBC數(shù)據(jù)庫編程_第2頁
Java面向?qū)ο蟪绦蛟O(shè)計案例教程(第二版) 課件全套1-12 Java語言概述 - JDBC數(shù)據(jù)庫編程_第3頁
Java面向?qū)ο蟪绦蛟O(shè)計案例教程(第二版) 課件全套1-12 Java語言概述 - JDBC數(shù)據(jù)庫編程_第4頁
Java面向?qū)ο蟪绦蛟O(shè)計案例教程(第二版) 課件全套1-12 Java語言概述 - JDBC數(shù)據(jù)庫編程_第5頁
已閱讀5頁,還剩443頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第1章Java語言概述《Java面向?qū)ο蟪绦蛟O(shè)計案例教程(第2版)》目錄/Contents1.11.21.3Java語言簡介JDK的使用Java程序的開發(fā)1.4

Java的運行機制1.5

Java開發(fā)工具Eclipse思政要點/Point科技創(chuàng)新精神

Java作為編程語言,體現(xiàn)了科技創(chuàng)新的力量,鼓勵學(xué)生追求技術(shù)前沿。規(guī)范意識

Java語言有嚴(yán)格的語法規(guī)范,培養(yǎng)學(xué)生嚴(yán)謹(jǐn)?shù)木幊虘B(tài)度和規(guī)范意識。國際視野

Java的廣泛應(yīng)用和跨平臺特性,引導(dǎo)學(xué)生具有國際視野,關(guān)注全球技術(shù)發(fā)展。職業(yè)規(guī)劃意識

介紹Java語言在職業(yè)發(fā)展中的廣闊前景,引導(dǎo)學(xué)生根據(jù)自己的興趣和優(yōu)勢進(jìn)行職業(yè)規(guī)劃。Java語言簡介1.1

Java是一種面向?qū)ο蟮?、基于類的、通用型編程語言,最初由SunMicrosystems(現(xiàn)歸屬于Oracle公司)于1995年發(fā)布。Java的設(shè)計目標(biāo)是實現(xiàn)“一次編寫,到處運行”(WriteOnce,RunAnywhere),這意味著Java程序可以在任何支持Java虛擬機(JavaVirtualMachine,JVM)的設(shè)備上運行,無需對源代碼進(jìn)行修改或重新編譯。Java語言不僅適用于企業(yè)級應(yīng)用開發(fā)、移動應(yīng)用開發(fā),還廣泛應(yīng)用于大型網(wǎng)站后端服務(wù)、嵌入式系統(tǒng)以及桌面應(yīng)用開發(fā)等領(lǐng)域。1.1.1

什么是JavaJavaSEJavaEEJavaMEJavaSE(JavaPlatform,StandardEdition)以前被稱為J2SE。它允許開發(fā)和部署在桌面、服務(wù)器、嵌入式環(huán)境和實時環(huán)境中使用的Java應(yīng)用程序。JavaSE包含了支持JavaWeb服務(wù)開發(fā)的類,并為JavaEE(JavaPlatform,EnterpriseEdition)提供基礎(chǔ)。1.1.1

什么是JavaJavaEE以前被稱為J2EE。企業(yè)版本幫助開發(fā)和部署可移植、健壯、可伸縮且安全的服務(wù)器端Java應(yīng)用程序。JavaEE是在JavaSE的基礎(chǔ)上構(gòu)建的,它提供Web服務(wù)、組件模型、管理和通信API,可以用來實現(xiàn)企業(yè)級的面向服務(wù)體系結(jié)構(gòu)(Service-OrientedArchitecture,SOA)和Web2.0應(yīng)用程序。1.1.1

什么是JavaJavaSEJavaEEJavaMEJavaME(JavaPlatform,MicroEdition)以前被稱為J2ME。JavaME為在移動設(shè)備和嵌入式設(shè)備(比如手機、PDA、電視機頂盒和打印機)上運行的應(yīng)用程序提供一個健壯且靈活的環(huán)境。JavaME包括靈活的用戶界面、健壯的安全模型、許多內(nèi)置的網(wǎng)絡(luò)協(xié)議以及對可以動態(tài)下載的聯(lián)網(wǎng)和離線應(yīng)用程序的豐富支持?;贘avaME規(guī)范的應(yīng)用程序只需編寫一次,就可以用于許多設(shè)備,而且可以利用每個設(shè)備的本機功能。1.1.1

什么是JavaJavaSEJavaEEJavaME1.1.2

Java語言的特點Java語言是一種面向?qū)ο蟮恼Z言,它通過提供最基本的方法來完成指定的任務(wù)簡單性Java語言的設(shè)計集中于對象及其接口,它提供了簡單的類機制以及動態(tài)的接口模型。面向?qū)ο笸ㄟ^提供的類庫可以處理TCP/IP協(xié)議,用戶可以通過URL地址在網(wǎng)絡(luò)上很方便地訪問其他對象。分布式Java語言具有動態(tài)調(diào)整庫中方法和增加變量的能力。動態(tài)性Java語言內(nèi)置了對多線程的支持。多線程Java語言具有強大的錯誤檢查和異常處理機制魯棒性Java字節(jié)碼可以動態(tài)翻譯成特定CPU的機器碼,提高了執(zhí)行速度。高性能Java不支持指針,一切對內(nèi)存的訪問都必須通過對象的實例變量來實現(xiàn)安全性Java語言具有“一次編寫,到處運行”的特性立與可移植性平臺獨立與可移植性1234567891.1.3Java語言的發(fā)展歷史JDK1.1

1997年2月19日J(rèn)DK1.3(Java2SE1.3)2000年5月8日J(rèn)DK5.0(JavaSE5,也稱為JDK1.5)2004年9月30日J(rèn)DK7(JavaSE7)2011年7月28日J(rèn)DK9及以后版本JDK1.0

1996年1月23日J(rèn)DK1.2(Java2)1998年12月8日J(rèn)DK1.4(Java2SE1.4)2002年2月13日J(rèn)DK6(JavaSE6)2006年12月11日J(rèn)DK8(JavaSE8)2014年3月18日J(rèn)DK17及以后版本(LTS版本)JDK的使用1.21.2JDK的使用JDK(JavaDevelopmentKit)是Sun公司對Java開發(fā)人員發(fā)布的免費軟件開發(fā)工具包。JDK是整個Java的核心,包括Java運行環(huán)境、Java工具和Java基礎(chǔ)類庫。JDK提供了Java的開發(fā)編譯環(huán)境,而JRE(JavaRuntimeEnvironment)提供了Java的解釋運行環(huán)境。1.2.1安裝JDK步驟1步驟2步驟3步驟4訪問JDK網(wǎng)址下載JDK的網(wǎng)址為/java/technologies/downloads/,可以根據(jù)自己計算機的操作系統(tǒng)和硬件環(huán)境下載相對應(yīng)的JDK版本。步驟2步驟1步驟3步驟4進(jìn)入下載頁面進(jìn)入下載頁面,在選擇版本和下載之前用戶首先需要接受協(xié)議,然后根據(jù)自己的電腦系統(tǒng)選擇對應(yīng)的版本,接著單擊“下一步”按鈕進(jìn)行安裝1.2.1安裝JDK步驟3步驟1步驟2步驟4選擇JDK安裝路徑用戶在安裝時可以選擇要安裝的功能,同時可以根據(jù)需要選擇默認(rèn)安裝路徑或者選擇修改安裝路徑。如果需要修改安裝路徑,則單擊“更改”按鈕,在彈出的對話框中選擇要安裝的位置,然后單擊“下一步”按鈕進(jìn)行安裝。1.2.1安裝JDK步驟3步驟1步驟2步驟4安裝JDK安裝完成的界面如圖所示。1.2.1安裝JDK步驟4步驟1步驟2步驟3配置系統(tǒng)環(huán)境變量右鍵單擊“我的電腦”→“屬性”→“高級系統(tǒng)設(shè)置”,就會看到如圖所示的界面。1.2.1安裝JDK步驟5步驟6步驟7步驟8配置環(huán)境變量單擊“環(huán)境變量”按鈕,開始配置環(huán)境變量。1.2.1安裝JDK步驟6步驟5步驟7步驟8配置JAVA_HOME環(huán)境變量在系統(tǒng)變量選項區(qū)中單擊“新建”按鈕,變量名為“JAVA_HOME”(代表JDK安裝路徑),變量值為“C:\ProgramFiles\Java\jdk-17”,即JDK的安裝路徑。1.2.1安裝JDK步驟7步驟5步驟6步驟8配置Path環(huán)境變量在系統(tǒng)變量中查找Path變量,如果存在,點擊“編輯”按鈕,點擊“新建”按鈕,將JDK安裝目錄下的bin文件夾的安裝路徑添加其中。1.2.1安裝JDK步驟8步驟5步驟6步驟7驗證配置是否成功在搜索框中輸入cmd,單擊“回車”按鈕,打開命令行窗口。在命令行窗口中輸入“java–version”命令,顯示安裝的Java版本信息,則表明JavaJDK安裝成功1.2.1安裝JDK

bin目錄1.2.2JDK目錄介紹功能:存放Java的編譯器、解釋器等可執(zhí)行文件。主要文件:java.exe:Java運行工具,用于啟動Java應(yīng)用程序。javac.exe:Java編譯器,用于將Java源代碼編譯成字節(jié)碼。jar.exe:打包工具,用于創(chuàng)建、查看和管理Java歸檔文件(JAR)。javadoc.exe:文檔生成工具,用于從Java源代碼生成HTML格式的API文檔。javaw.exe:Java運行工具(窗口模式),與java.exe類似,但不會在命令行窗口中運行Java程序。

db目錄1.2.2JDK目錄介紹功能:JDK附帶的輕量級數(shù)據(jù)庫,名為Derby。用途:用于Java應(yīng)用程序的數(shù)據(jù)庫開發(fā)和測試。

include目錄功能:存放調(diào)用系統(tǒng)資源的接口文件,主要是C語言的頭文件。用途:這些頭文件在Java程序通過JNI(JavaNativeInterface)調(diào)用本地代碼時需要使用。

jre目錄1.2.2JDK目錄介紹功能:Java運行時環(huán)境的根目錄。包含內(nèi)容:Java虛擬機(JVM)、運行時的類包、Java運行啟動器以及一個bin目錄(包含Java運行工具和庫文件)。用途:用于運行Java程序,但不包含開發(fā)環(huán)境中的開發(fā)工具。lib目錄功能:存放Java的類庫文件。包含內(nèi)容:Java核心類庫、支持JVM運行的函數(shù)庫等。用途:這些類庫在Java程序編譯和運行時需要引用。

src.zip文件1.2.2JDK目錄介紹功能:JDK提供的類的源代碼壓縮文件。用途:通過解壓該文件,可以查看Java基礎(chǔ)類的源代碼,有助于學(xué)習(xí)和理解Java語言的實現(xiàn)原理。Java程序的開發(fā)1.3

利用記事本編寫Java程序第一步,編寫Java源程序由于JDK沒有提供專門的編輯工具,所以可以通過任意文本編輯器編寫Java源代碼,例如記事本、notepad等。程序編輯完成后保存文件,然后將文件的擴(kuò)展名改為“.java”1.3Java程序的開發(fā)圖1-16

使用記事本編寫程序

利用記事本編寫Java程序第二步,編譯程序生成字節(jié)碼文件。使用Javac命令編譯HelloWorld.java文件,并生成HelloWorld.class字節(jié)碼文件。1.3Java程序的開發(fā)第三步,運行Java程序使用Java命令解釋執(zhí)行HelloWorld.class文件,在屏幕上顯示“HelloWorld!”字符串,圖1-17程序運行結(jié)果Java的運行機制1.4

1.編譯階段1.4Java的運行機制源代碼:Java源代碼是以.java為后綴的文件,其中包含了用Java語言編寫的程序代碼。Java編譯器(javac):Java編譯器用于將源代碼編譯成字節(jié)碼(bytecode),這是Java程序的中間表示形式。字節(jié)碼不依賴于特定的硬件或操作系統(tǒng),因此具有跨平臺性。編譯后的字節(jié)碼文件以.class為后綴。

2.運行階段1.4Java的運行機制(1)Java虛擬機(JVM):JVM是Java程序的運行環(huán)境,負(fù)責(zé)執(zhí)行Java字節(jié)碼。JVM提供了平臺獨立性、安全性和自動內(nèi)存管理等功能。(2)類加載器(ClassLoader):類加載器負(fù)責(zé)將字節(jié)碼文件加載到JVM中。它按照父委托模型加載類,即先嘗試從父類加載器中加載類,如果父類加載器無法加載,則再由子類加載器加載。(3)字節(jié)碼驗證器(BytecodeVerifier):在字節(jié)碼被加載到JVM后,字節(jié)碼驗證器會驗證其正確性和安全性,以確保不破壞Java語言的安全模型。(4)執(zhí)行引擎(ExecutionEngine):執(zhí)行引擎包括解釋器和即時編譯器(JITCompiler)。解釋器逐行解釋字節(jié)碼并執(zhí)行,而JIT編譯器則將熱點代碼(經(jīng)常執(zhí)行的代碼)編譯成機器碼,以提高運行時性能。(5)內(nèi)存管理:JVM的內(nèi)存管理包括堆(Heap)、棧(Stack)、方法區(qū)(MethodArea)和本地方法棧(NativeMethodStack)。

3.Java程序的執(zhí)行流程1.4Java的運行機制(1)編寫Java源代碼:在Java開發(fā)環(huán)境中進(jìn)行程序代碼的編輯,生成.java文件。(2)編譯Java源代碼:使用Java編譯器(javac)對.java文件進(jìn)行編譯,生成.class字節(jié)碼文件。(3)運行Java程序:使用Java運行工具(java)運行.class文件。JVM加載字節(jié)碼文件,并通過類加載器、字節(jié)碼驗證器、執(zhí)行引擎等組件執(zhí)行程序。(4)輸出結(jié)果:程序執(zhí)行完畢后,將結(jié)果輸出到控制臺或其他輸出設(shè)備。Eclipse簡介1.51.5.1Eclipse簡介

Eclipse是一個基于Java的、開放源碼的、可擴(kuò)展的應(yīng)用開發(fā)平臺,它為編程人員提供了一流的Java集成開發(fā)環(huán)境(IDE),Eclipse最初由IBM公司開發(fā),作為VisualAgeforJava的替代品,旨在提供一個更為靈活和可擴(kuò)展的IDE。2001年11月,Eclipse被貢獻(xiàn)給開源社區(qū),并由非營利軟件供應(yīng)商聯(lián)盟Eclipse基金會管理。Eclipse可以從網(wǎng)/downloads/上免費下載。該開發(fā)環(huán)境擁有多個下載版本,可以適用于Linux、MacOSX、Windows、Solaris操作系統(tǒng),用戶可以根據(jù)自身需要下載不同的版本。

主要功能與特點1.5.1Eclipse簡介強大的插件機制Eclipse的插件機制使得它可以輕松地擴(kuò)展和定制化,適應(yīng)各種不同的開發(fā)需求。用戶可以根據(jù)需要添加或刪除插件,擴(kuò)展IDE的功能。1多語言支持Eclipse支持其他多種編程語言,如C/C++、PHP、Python、JavaScript等。通過安裝不同的插件,Eclipse可以支持不同的編程語言,為程序員提供了一個統(tǒng)一的開發(fā)環(huán)境。2集成開發(fā)環(huán)境Eclipse是一個集成了編輯、調(diào)試、測試等功能的IDE,使得程序員可以在一個環(huán)境中完成整個開發(fā)流程。它提供了豐富的工具和功能,如代碼編輯器、調(diào)試器、性能分析器、代碼質(zhì)量檢查工具、版本控制工具等,可以提高開發(fā)效率和代碼質(zhì)量。3跨平臺性Eclipse可以在多個操作系統(tǒng)上運行,包括Windows、Linux、macOS等。這意味著用戶可以在不同平臺上使用相同的IDE進(jìn)行軟件開發(fā),而不必?fù)?dān)心兼容性問題。4開源免費Eclipse是開源免費軟件,用戶可以自由下載、使用和修改,沒有任何費用和限制。51.5.2Eclipse的安裝與啟動步驟1步驟2步驟3步驟4訪問Eclipse網(wǎng)址輸入網(wǎng)址/downloads/,進(jìn)入下載頁面,單擊DownloadePackages按鈕步驟2步驟1步驟3步驟4進(jìn)入下載頁面根據(jù)電腦配置,選擇相應(yīng)版本進(jìn)行下載1.5.2Eclipse的安裝與啟動步驟3步驟1步驟2步驟4下載Eclipse單擊DOWNLOAD按鈕1.5.2Eclipse的安裝與啟動步驟3步驟1步驟2步驟4選擇安裝路徑用戶可以根據(jù)需要選擇要安裝的路徑,單擊“下載”按鈕1.5.2Eclipse的安裝與啟動步驟4步驟1步驟2步驟3安裝完成Eclipse下載完成后無需安裝直接運行,將該文件直接解壓縮到指定的安裝目錄下即完成了安裝工作,雙擊eclipse.exe文件即可運行1.5.2Eclipse的安裝與啟動1.5.3Eclipse編寫Java程序的流程打開文件安裝目錄,運行eclipse.exe時需要選擇工作區(qū)Workspace,即保存程序源碼和字節(jié)碼文件的目錄。用戶可以使用默認(rèn)路徑,也可以根據(jù)需要自行修改。

運行Eclipse1.5.3Eclipse編寫Java程序的流程步驟1步驟2步驟3步驟4新建Java項目(1)啟動Eclipse,選擇項目存儲的路徑,進(jìn)入主界面后,從菜單選擇File→New→Project。(2)從對話框中選擇JavaProject,然后單擊Next按鈕。步驟2步驟1步驟3步驟4新建Java項目在新彈出的對話框中,在ProjectName文本框的位置輸入類名HelloWorld,單擊Finish按鈕。1.5.3Eclipse編寫Java程序的流程步驟3步驟1步驟2步驟4新建Java程序在創(chuàng)建的項目HelloWorld上單擊右鍵,選擇New→Class,新建Java類1.5.3Eclipse編寫Java程序的流程步驟4步驟1步驟2步驟3新建Java程序在新彈出的對話框中,在Package文本框的位置輸入包名,Java包的名字都是由小寫單詞組成的。在Name文本框中輸入類名HelloWorld,首字母大寫(多詞的都是首字母大寫)。選中加入Main方法的復(fù)選框。1.5.3Eclipse編寫Java程序的流程步驟5步驟6步驟7步驟8新建Java程序單擊Finish按鈕,在HelloWorld項目中生成HelloWorld.java文件1.5.3Eclipse編寫Java程序的流程步驟6步驟8步驟5步驟7運行Java程序在代碼編輯器中寫入如下代碼:1.5.3Eclipse編寫Java程序的流程packagecom.hello;publicclassHelloWorld{publicstaticvoidmain(String[]args){System.out.println("HelloWorld!");}}步驟7步驟5步驟6步驟8運行Java程序在項目資源管理器中右鍵單擊HelloWorld項目,在彈出的快捷菜單中選擇RunAs→JavaApplication,或者單擊工具欄上的快捷圖標(biāo)1.5.3Eclipse編寫Java程序的流程步驟8步驟5步驟6步驟7設(shè)置允許遠(yuǎn)程連接程序運行結(jié)果如圖所示。1.5.3Eclipse編寫Java程序的流程

Eclipse程序編寫界面1.5.3Eclipse編寫Java程序的流程感

聽《Java面向?qū)ο蟪绦蛟O(shè)計案例教程(第2版)》第2章Java編程基礎(chǔ)《Java面向?qū)ο蟪绦蛟O(shè)計案例教程(第2版)》目錄/Contents2.12.22.3Java基本語法Java中的常量與變量數(shù)據(jù)類型2.4

數(shù)組思政要點/Point守規(guī)則與紀(jì)律

遵守編程規(guī)則,培養(yǎng)嚴(yán)謹(jǐn)細(xì)致的邏輯思維和規(guī)則意識。穩(wěn)定性與靈活性

理解穩(wěn)定與變化的辯證關(guān)系,能夠適應(yīng)環(huán)境的變化,靈活應(yīng)對各種挑戰(zhàn)。分類與規(guī)劃

Java中的數(shù)據(jù)類型豐富多樣,引導(dǎo)學(xué)生認(rèn)識到,在生活中也需要進(jìn)行分類和規(guī)劃,以便更好地管理自己的時間和資源。團(tuán)隊協(xié)作與分工

引導(dǎo)學(xué)生體會團(tuán)隊協(xié)作與分工的重要性,培養(yǎng)有序規(guī)范的工作習(xí)慣,提高整體效率。Java基本語法2.1Unicode字符集是一個國際標(biāo)準(zhǔn),旨在統(tǒng)一世界上所有的書寫系統(tǒng),使計算機能夠處理和存儲各種語言的文本。Java語言從設(shè)計之初就采用了Unicode字符集,這使得Java程序能夠跨平臺、跨語言地運行,無需擔(dān)心字符編碼問題。2.1.1Unicode字符集Unicode字符集是不斷擴(kuò)展的,能夠容納新的字符和符號。3.擴(kuò)展性Unicode支持幾乎所有語言的字符,使得Java程序能夠處理多語言文本,滿足全球化需求。1.全球化支持使用Unicode字符集,可以確保在不同平臺和設(shè)備上顯示的文本內(nèi)容一致。2.一致性0201Unicode的優(yōu)勢032.1.2Java程序的基本格式

Java程序結(jié)構(gòu)Java程序的基本結(jié)構(gòu)包括類定義、方法定義和語句。每個Java程序都至少包含一個類,而類中可以包含多個方法和變量。

類定義類(Class)是Java程序的基本單位。一個類定義了對象的屬性和行為。類定義通常包括類名、修飾符(如public)、繼承的父類(如果有)以及實現(xiàn)的接口(如果有)。

方法定義方法(Method)是類中的函數(shù),用于執(zhí)行特定的操作。方法定義包括方法名、返回類型、參數(shù)列表以及方法體。方法體是包含實際代碼的塊,用花括號({})括起來。2.1.2Java程序的基本格式publicclassHelloWorld{//main方法是Java程序的入口點publicstaticvoidmain(String[]args){//打印輸出Hello,World!到控制臺System.out.println("Hello,World!");}}語句語句(Statement)是Java程序中的基本執(zhí)行單元。每條語句都以分號(;)結(jié)尾。常見的語句包括賦值語句、條件語句、循環(huán)語句等。2.1.2Java程序的基本格式1.Java程序是大小寫敏感的,因此類名、方法名和變量名在書寫時應(yīng)保持一致。2.每個Java程序都至少包含一個main方法,作為程序的入口點。3.在編寫Java程序時,應(yīng)遵循良好的編程規(guī)范,如使用有意義的變量名、注釋代碼等。語句注意事項:2.1.3Java中的注釋注釋1.單行注釋符//單行注釋是最常用的注釋,通常用于注釋可以顯示在一行內(nèi)的文本,注釋內(nèi)容從//開始到本行結(jié)尾。2.多行注釋符?

/*…*/多行注釋以“?/*?”為開頭,以“?*/?”為結(jié)尾,中間內(nèi)容為注釋的內(nèi)容。該注釋符既可以用于多行注釋,也可以用于單行注釋。System.out.println("HelloWorld!");//輸出打印HelloWorld字符串/*這是多行注釋這是多行注釋*/2.1.3Java中的注釋注釋3.文檔注釋符

?/**…*/文檔注釋以“/**?”開頭以“?*/?”結(jié)尾,注釋中包含一些說明性的文字及一些JavaDoc標(biāo)簽,后期可以用來自動生成文檔。/***這個類演示了文檔注釋*@authorXXX*@version1.2*/2.1.4Java中的標(biāo)識符(1)標(biāo)識符可以由字母、數(shù)字、下劃線(?_?)和美元符(?$?)組成,但是不能包含@、%、空格等其他的特殊符號,不能以數(shù)字開頭。例如:123name就是不合法的標(biāo)識符。(2)標(biāo)識符不能是Java關(guān)鍵字和保留字(Java預(yù)留的關(guān)鍵字,或者以后升級版本中有可能作為關(guān)鍵字),但可以包含關(guān)鍵字和保留字。例如:不可以使用void作為標(biāo)識符,但是可以使用Myvoid。(3)標(biāo)識符嚴(yán)格區(qū)分大小寫,所以number和Number是兩個不同的標(biāo)識符。(4)標(biāo)識符的命名最好能反映出其作用,做到見名知意。標(biāo)識符就是用于Java程序中常量、變量、類、方法等命名的符號。使用標(biāo)識符時,需要遵守以下幾條規(guī)則:2.1.5Java中的關(guān)鍵字Java語言中有一些具有特殊用途的詞被稱為關(guān)鍵字,但不能當(dāng)作一般的標(biāo)識符使用。Java關(guān)鍵字均用小寫字母表示。abstractbooleanbreakbytecasecatchcharclasscontinuedefaultdodoubleelseextendsfalsefinalfinallyfloatforifimplementsimportinstanceofintinterfacelongnativenewnullpackageprivateprotectedpublicreturnshortstaticsuperswitchsynchronizedthisthrowthrowstransienttruetryvoidvolatilewhileJava中的常量與變量2.2常量是指在程序上始終保持不變的量。也就是說,一旦被賦值,就不能再更改了。習(xí)慣上,常量名使用大寫字母,用關(guān)鍵字final修飾。聲明常量的語法格式如下:final數(shù)據(jù)類型常量名=值2.2.1常量的定義例如:

finaldoublePI=3.1415;

finalStringCOURSE="Java"在程序中,如果某個值需要被重復(fù)使用多次,就可以將其設(shè)置為常量。一方面可以省去重復(fù)輸入同一個數(shù)值的麻煩,另一方面當(dāng)這個值需要修改時,只需要修改一次。變量是Java程序中的基本存儲單元,是內(nèi)存中的一塊空間,能夠存放數(shù)據(jù)和信息。它的定義包括變量名、變量類型和作用域幾個部分。2.2.2變量變量名可以由字母、數(shù)字、下劃線(?_?)、美元符(?$?)組成,但是不能以數(shù)字開頭變量的命名規(guī)范2.2.2變量(1)駝峰法,即第一個單詞首字母小寫,其后單詞首字母大寫,如myName。(2)盡量簡短且清楚,見名知意,如stuName“學(xué)生姓名”。(3)長度沒有限制,但區(qū)分大小寫,如price和Price是兩個不同的變量。變量的命名習(xí)慣2.2.2變量變量的初始化Java語言規(guī)定,變量在使用前必須先聲明,包括聲明變量的類型、名稱,還可以為其賦初值。聲明變量的語法格式如下:類型變量名[=初始值]例如:

inti;chara='A';doublenumber=15;如果聲明的幾個變量屬于同一類型,那么可以一起聲明,變量之間用逗號“?,?”隔開。例如:inta,b,c;數(shù)據(jù)類型2.32.3數(shù)據(jù)類型Java是一種強類型的語言,也就是說,必須為每一個變量聲明一種類型。Java的數(shù)據(jù)類型可以分為基本數(shù)據(jù)類型和引用數(shù)據(jù)類型,本節(jié)主要介紹這些數(shù)據(jù)類型。2.3.1

基本數(shù)據(jù)類型整型數(shù)據(jù)表示沒有小數(shù)部分的數(shù)值,可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制表示,一般情況下使用十進(jìn)制表示,并且它允許是負(fù)數(shù)。整數(shù)類型類

型存儲需求取值范圍byte1字節(jié)-27~27-1short2字節(jié)-215~215-1int4字節(jié)-231~231-1long8字節(jié)-263~263-12.3.1

基本數(shù)據(jù)類型浮點型數(shù)據(jù)表示有小數(shù)部分的數(shù)值。在Java中有兩種浮點類型,其中float表示單精度,double表示雙精度。浮點類型類

型存儲需求取值范圍float1字節(jié)-27~27-1double2字節(jié)-215~215-1double表示的數(shù)值精度是float類型的兩倍,大部分應(yīng)用程序都采用double類型。float類型的數(shù)值需要在尾部加后綴f或F,例如1.23f。沒有后綴的浮點數(shù)值(如1.23)默認(rèn)為double類型,當(dāng)然也可以在數(shù)值尾部加后綴D(如1.23D)。2.3.1

基本數(shù)據(jù)類型整型數(shù)據(jù)表示沒有小數(shù)部分的數(shù)值,可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制表示,一般情況下使用十進(jìn)制表示,并且它允許是負(fù)數(shù)。整數(shù)類型類

型存儲需求取值范圍byte1字節(jié)-27~27-1short2字節(jié)-215~215-1int4字節(jié)-231~231-1long8字節(jié)-263~263-12.3.1

基本數(shù)據(jù)類型Java語言中,char用來表示單個字符,字符型數(shù)據(jù)必須用單引號括起來,例如?'a'、'A'等。Java中還有一些用于表示特殊字符的轉(zhuǎn)義字符,如表所示。字符類型轉(zhuǎn)義字符名

稱轉(zhuǎn)義字符名

稱\b退格\"雙引號\t制表\'單引號\n換行\(zhòng)\反斜杠\r回車

2.3.1

基本數(shù)據(jù)類型布爾型(boolean)包括兩個值,即false(假)和true(真),常用于程序的比較和流程控制?;緮?shù)據(jù)類型在Java中是不可變的,即一旦賦值,其值就不能改變(除非重新賦值)。布爾類型2.3.2

引用數(shù)據(jù)類型類(Class)在Java中是通過引用指向?qū)ο蟮膶嵗@些對象存儲在堆內(nèi)存中。引用數(shù)據(jù)類型包括類(Class)、接口(Interface)、數(shù)組(Array)以及枚舉(Enum)。當(dāng)創(chuàng)建一個引用數(shù)據(jù)類型的變量時,實際上是創(chuàng)建了一個引用,該引用指向存儲實際數(shù)據(jù)的內(nèi)存位置。用戶自定義的類,如String、ArrayList等,以及用戶自己定義的類。類的實例通過new關(guān)鍵字創(chuàng)建,存儲在堆內(nèi)存中,而引用(即對象的地址)存儲在棧內(nèi)存中。接口(Interface)接口是一種特殊的引用類型,定義了一組方法,但不實現(xiàn)它們。類可以實現(xiàn)接口,從而提供接口中定義的方法的具體實現(xiàn)。2.3.2

引用數(shù)據(jù)類型數(shù)組(Array)數(shù)組是固定大小的、同類型元素的集合。數(shù)組通過索引訪問,索引從0開始。字符串(String)String類就是一種引用數(shù)據(jù)類型,用于表示字符串。2.3.3

基本類型與引用類型的區(qū)別1.

存儲位置基本類型存儲在棧內(nèi)存中。引用類型存儲的是對象的引用(即對象的地址),對象本身存儲在堆內(nèi)存中。5.

傳遞方式基本類型在方法調(diào)用時是按值傳遞的。引用類型在方法調(diào)用時是按引用傳遞的,但傳遞的是引用的副本,這意味著方法內(nèi)部對引用的改變(如指向新的對象)不會影響外部引用,但對對象本身的修改(如修改對象的屬性)是可見的。4.

可變性基本類型的值是不可變的(除非重新賦值)。引用類型的對象是可變的(對象的屬性可以修改)。3.

默認(rèn)值基本類型有默認(rèn)值(如int的默認(rèn)值為0)。引用類型的默認(rèn)值為null,表示沒有指向任何對象。2.

內(nèi)存分配基本類型在聲明時自動分配內(nèi)存。引用類型在創(chuàng)建對象時分配內(nèi)存(使用new關(guān)鍵字)。2.3.4

數(shù)據(jù)類型轉(zhuǎn)換自動類型轉(zhuǎn)換在運行程序時,經(jīng)常需要將一種類型的數(shù)據(jù)轉(zhuǎn)換為另一種類型的數(shù)據(jù),Java語言提供了這種數(shù)據(jù)類型相互轉(zhuǎn)換的機制。數(shù)據(jù)類型的轉(zhuǎn)換分為兩種:自動類型轉(zhuǎn)換和強制類型轉(zhuǎn)換。數(shù)據(jù)類型可以由低字節(jié)向高字節(jié)進(jìn)行自動轉(zhuǎn)換,不會損失數(shù)據(jù)精度。

例如:inta=5;doubleb=16.5;doublec=a+b;在上述代碼中,在運行時首先把a自動轉(zhuǎn)換為double類型,然后與b相加,最后賦值給c。2.3.4

數(shù)據(jù)類型轉(zhuǎn)換強制類型轉(zhuǎn)換當(dāng)高字節(jié)數(shù)據(jù)轉(zhuǎn)換為低字節(jié)數(shù)據(jù)時,就需要用到強制類型轉(zhuǎn)換,轉(zhuǎn)換后可能導(dǎo)致數(shù)據(jù)丟失精度。強制類型轉(zhuǎn)換的語法格式是在括號中給出將要轉(zhuǎn)換的目標(biāo)類型,后面緊跟待轉(zhuǎn)換的變量名。強制類型轉(zhuǎn)換的語法格式如下:

(數(shù)據(jù)類型)變量名在上述代碼中,a是double類型,賦值給b的時候必須強制轉(zhuǎn)換為int類型。doublea=15.5;intb=(int)a;System.out.println(a);System.out.println(b);例如:

數(shù)組2.42.4.1數(shù)組的聲明數(shù)組是一種數(shù)據(jù)結(jié)構(gòu),用于存儲相同類型的數(shù)據(jù)元素的集合。數(shù)組中的每個元素都可以通過索引進(jìn)行訪問。數(shù)組在使用之前必須先聲明,也就是定義數(shù)組元素的類型、數(shù)組的名稱和維數(shù)。數(shù)組的聲明格式有兩種,分別是:

數(shù)據(jù)類型[]數(shù)組名;

數(shù)據(jù)類型數(shù)組名[];注意:數(shù)組聲明時,并沒有在內(nèi)存中為數(shù)組分配存儲空間,因此方括號中不能有數(shù)組元素的個數(shù)。必須先使用new關(guān)鍵字創(chuàng)建數(shù)組對象,才能夠訪問數(shù)組中的元素。int[]scores; //定義存儲分?jǐn)?shù)的數(shù)組,類型為整型doubleheight[]; //定義存儲身高的數(shù)組,類型為浮點型String[]names; //定義存儲姓名的數(shù)組,類型為字符串其中,數(shù)組名可以是任意合法的變量名,數(shù)據(jù)類型可以是基本數(shù)據(jù)類型或者引用數(shù)據(jù)類型。例如:

2.4.2數(shù)組的創(chuàng)建創(chuàng)建數(shù)組,需要使用new關(guān)鍵字為數(shù)組分配存儲空間,語法格式如下:

數(shù)組名=new數(shù)據(jù)類型[數(shù)組長度]也可以將以上兩步進(jìn)行合并,在聲明數(shù)組的同時創(chuàng)建數(shù)組,例如:int[]scores; //聲明一個整型數(shù)組scoresscores=newint[5]; //定義數(shù)組scores能夠存放5個整型元素Stringnames[]; //聲明一個字符串?dāng)?shù)組namesnames=newString[3]; //定義數(shù)組names能夠存放3個字符串元素數(shù)組長度也就是數(shù)組中能存放元素的個數(shù),例如:

intint[]scores=newint[5];Stringnames[]=newString[3];2.4.3數(shù)組的初始化數(shù)組的初始化可以在聲明時直接進(jìn)行,也可以單獨進(jìn)行。在創(chuàng)建數(shù)組后,就可以為每個數(shù)組元素進(jìn)行賦值,例如:int[]scores; scores=newint[5];scores[0]=95;scores[1]=93;scores[2]=80;scores[3]=86;scores[4]=79;2.4.3數(shù)組的初始化也可以用以下方式為數(shù)組元素賦值,數(shù)組長度由“{}”中的元素個數(shù)決定。例如://聲明并初始化整型數(shù)組int[]scores={95,93,80,86,79}//聲明并初始化字符串?dāng)?shù)組String[]stringArray={"Hello","World","Java"};2.4.4數(shù)組的長度數(shù)組的長度即數(shù)組中可以存儲的元素數(shù)量??梢酝ㄟ^其length屬性獲取,例如:int[]array={1,2,3,4,5};System.out.println("數(shù)組的長度是:"+array.length);//輸出:數(shù)組的長度是:52.4.5數(shù)組元素的使用創(chuàng)建數(shù)組后,數(shù)組中的元素可以通過索引進(jìn)行訪問和修改,格式為:

數(shù)組名[下標(biāo)]可以對賦值后的數(shù)組元素進(jìn)行操作和處理,如獲取并輸出數(shù)組中元素的值:

int[]scores={95,93,80,86,79}System.out.print("scores數(shù)組中第1個元素的值:"+scores[0]);2.4.5數(shù)組元素的使用運行時會報錯,如圖所示。注意:數(shù)組下標(biāo)是從0開始的,也就是說,scores[0]代表數(shù)組中的第一個元素,最后一個數(shù)組元素的下標(biāo)為“數(shù)組長度-1”。使用數(shù)組時要注意下標(biāo)不能超出范圍,如果超出范圍,在程序運行時,系統(tǒng)就會拋出數(shù)組下標(biāo)越界異常。例如:

int[]scores=newint[2];

scores[2]=85;2.4.5數(shù)組元素的使用【例3-1】循環(huán)打印輸出數(shù)組中的數(shù)字。publicclassTest{publicstaticvoidmain(String[]args){//定義一個長度為4的數(shù)組int[]scores={78,91,85,88};//循環(huán)打印輸出數(shù)組中的元素,數(shù)組最大長度為scores.lengthfor(inti=0;i<scores.length;i++){System.out.println("數(shù)組中第"+(i+1)+"個元素的值是"+scores[i]);}}}2.4.5數(shù)組元素的使用程序運行結(jié)果如圖所示其中,數(shù)組名具有一個屬性length,用于獲取數(shù)組的長度,其用法為:

數(shù)組名.length如上述代碼中的scores.length的值為4。2.4.5數(shù)組元素的使用【例3-2】定義一個數(shù)組hobbys,其值為music、sports、game,循環(huán)打印輸出。publicclassTest{publicstaticvoidmain(String[]args){//定義一個長度為3的數(shù)組String[]hobbys=newString[3];hobbys[0]="music";hobbys[1]="sports";hobbys[2]="game";//循環(huán)打印輸出數(shù)組中的元素for(inti=0;i<hobbys.length;i++){System.out.println(hobbys[i]);}}}程序運行結(jié)果如圖所示2.4.6二維數(shù)組二維數(shù)組是數(shù)組的數(shù)組。其實Java只有一維數(shù)組,但是由于數(shù)組可以存放任意類型的數(shù)據(jù),當(dāng)數(shù)組中的每個元素類型也是數(shù)組時,這個數(shù)組就被稱為多維數(shù)組。最常見的是二維數(shù)組,可以把二維數(shù)組看作一個矩陣。

數(shù)據(jù)類型[][]數(shù)組名=new數(shù)據(jù)類型[行的個數(shù)][列的個數(shù)];數(shù)據(jù)類型[][]數(shù)組名;數(shù)組名?=?new數(shù)據(jù)類型[行的個數(shù)][列的個數(shù)];二維數(shù)組的創(chuàng)建格式為:二維數(shù)組的創(chuàng)建或者:2.4.6二維數(shù)組二維數(shù)組的賦值和一維數(shù)組類似,可以通過下標(biāo)來逐個賦值,索引從0開始。語法格式如下:

數(shù)值類型[][]數(shù)組名={{值1,值2…},{值11,值22…},{值21,值22…}};int[][]number=newint[2][3];number[0][0]=11;number[0][1]=32;number[0][2]=15;例如:也可以在聲明數(shù)組的同時直接賦值。語法格式如下:

數(shù)組名[行的索引][列的索引]=值;

例如:

int[][]number={{1,2,3},{4,5,6}};2.4.6二維數(shù)組二維數(shù)組的訪問和輸出同一維數(shù)組一樣,只是多了一個下標(biāo)而已。二維數(shù)組的索引也是從0開始,第一個索引表示行,第二個索引表示列。例如:int[][]number={{1,2,3},{4,5,6}};//訪問二維數(shù)組元素System.out.println("第一行第二個元素是:"+number[0][1]);//輸出:第一行第二個元素是:2在循環(huán)輸出時,需要里面再內(nèi)嵌一個循環(huán),即使用二重循環(huán)來輸出二維數(shù)組中的每一個元素。二維數(shù)組的訪問2.4.5數(shù)組元素的使用【例3-2】定義一個數(shù)組hobbys,其值為music、sports、game,循環(huán)打印輸出。publicclassTest{publicstaticvoidmain(String[]args){//定義一個長度為3的數(shù)組String[]hobbys=newString[3];hobbys[0]="music";hobbys[1]="sports";hobbys[2]="game";//循環(huán)打印輸出數(shù)組中的元素for(inti=0;i<hobbys.length;i++){System.out.println(hobbys[i]);}}}程序運行結(jié)果如圖所示2.4.5數(shù)組元素的使用【例3-2】定義一個數(shù)組hobbys,其值為music、sports、game,循環(huán)打印輸出。publicclassTest{publicstaticvoidmain(String[]args){//定義一個兩行三列的二維數(shù)組并賦值int[][]num={{1,2,3},{4,5,6}};//定位行for(inti=0;i<num.length;i++){//定位每行的元素for(intj=0;j<num[i].length;j++){//依次輸出每個元素System.out.print(num[i][j]);}//實現(xiàn)換行System.out.println();}}}程序運行結(jié)果如圖所示感

聽《Java面向?qū)ο蟪绦蛟O(shè)計案例教程(第2版)》第3章運算符與流程控制語句《Java面向?qū)ο蟪绦蛟O(shè)計案例教程(第2版)》目錄/Contents3.13.23.3Java中的運算符選擇結(jié)構(gòu)語句循環(huán)結(jié)構(gòu)語句3.4

跳轉(zhuǎn)語句思政要點/Point實踐能力

通過Java編程實踐,培養(yǎng)學(xué)生的動手能力和解決問題的能力。持續(xù)學(xué)習(xí)

編程技術(shù)日新月異,鼓勵學(xué)生保持持續(xù)學(xué)習(xí)的態(tài)度,不斷提升自我。團(tuán)隊協(xié)作

編程往往需要團(tuán)隊合作,培養(yǎng)學(xué)生團(tuán)隊協(xié)作精神和溝通能力。創(chuàng)新思維

鼓勵學(xué)生嘗試不同的編程方法,培養(yǎng)創(chuàng)新思維和解決問題的能力。Java中的運算符3.1算術(shù)運算符主要用于進(jìn)行基本的算術(shù)運算,如加法、減法、乘法、除法等。Java中常用的算術(shù)運算符如表2-5所示。3.1.1算術(shù)運算符算術(shù)運算符名

稱舉

例+加15+7=22-減、取反15-7=8*乘15*7=105/除15/7=2%取余15%7=1++自增1inti=7;i++--自減1inti=7;i--【例3-1】算術(shù)運算符的程序?qū)嵗?。publicclassTest{publicstaticvoidmain(String[]args){intage1=24;intage2=18;intage3=36;intage4=27;intsum=age1+age2+age3+age4;doubleavg=sum/4;intminus=age1-age2;intnewAge=--age1;System.out.println("年齡總和:"+sum);System.out.println("平均年齡:"+avg);System.out.println("年齡差值:"+minus);System.out.println("自減后的年齡:"+newAge);}}程序運行結(jié)果如圖所示3.1.1算術(shù)運算符【例3-2】“++”在操作數(shù)左邊的程序?qū)嵗ublicclassTest{publicstaticvoidmain(String[]args){inta=7;intb=++a;//++出現(xiàn)在左邊System.out.println("a:"+a); //a先自增,再賦值給變量bSystem.out.println("b:"+b);}}程序運行結(jié)果如圖所示3.1.1算術(shù)運算符【例3-3】“++”在操作數(shù)右邊的程序?qū)嵗?。publicclassTest{publicstaticvoidmain(String[]args){inta=7;intb=a++; //++出現(xiàn)在右邊System.out.println("a:"+a); //a先賦值給變量b,然后再自增System.out.println("b:"+b);}}程序運行結(jié)果如圖所示3.1.1算術(shù)運算符3.1.2賦值運算符賦值運算符是指為變量或常量指定數(shù)值的符號。比如說可以使用“=”將右邊的表達(dá)式結(jié)果賦值給左邊的操作數(shù)。Java支持的常用賦值運算符如表2-8所示。賦值運算符名

稱舉

例=賦值a=7是把7賦值給a+=加等于a+=b等價于a=a+b-=減等于a-=b等價于a=a-b*=乘等于a*=b等價于a=a*b/=除等于a/=b等價于a=a/b%=模等于a%=b等價于a=a%b【例3-4】賦值運算符的程序?qū)嵗?。publicclassTest{publicstaticvoidmain(String[]args){

inta=10;

intb=5;

//基本賦值運算符

a=b;

System.out.println("a=b;a="+a);//輸出:a=5

//復(fù)合賦值運算符

a+=b;//相當(dāng)于a=a+b;

System.out.println("a+=b;a="+a);//輸出:a=103.1.2賦值運算符【例3-4】賦值運算符的程序?qū)嵗-=b;//相當(dāng)于a=a-b;System.out.println("a-=b;a="+a);//輸出:a=5

a*=b;//相當(dāng)于a=a*b;System.out.println("a*=b;a="+a);//輸出:a=25

a/=b;//相當(dāng)于a=a/b;System.out.println("a/=b;a="+a);//輸出:a=5

//注意:當(dāng)使用/=運算符時,如果b為0,將拋出ArithmeticException異常//為了避免異常,可以在這里添加異常處理或使用條件語句檢查b的值//但為了演示目的,我們在這里直接進(jìn)行除法運算,假設(shè)b不為03.1.2賦值運算符【例3-4】賦值運算符的程序?qū)嵗?/p>

a=20;//重新賦值給a以進(jìn)行模運算演示a%=b;//相當(dāng)于a=a%b;System.out.println("a%=b;a="+a);//輸出:a=0(因為20除以5的余數(shù)是0)}}3.1.2賦值運算符程序運行結(jié)果如圖所示3.1.3比較運算符比較運算符用于判斷兩個數(shù)據(jù)的大小。例如:大于、等于、不等于的比較結(jié)果是一個布爾值(true或false)。Java中常用的關(guān)系運算符如表2-6所示。關(guān)系運算符名

稱舉

例結(jié)

果>大于a=7;b=5;a>b;true<小于a=7;b=5;a<b;false>=大于等于a=7;a>=5;true<=小于等于a=7;b=5;a<=b;false==等于a=7;b=5;a==b;false!=不等于a=7;b=5;a!=b;true注意:(1)

“>”、“<”、“>=”、“<=”只支持左右兩邊的操作數(shù)為數(shù)值類型。(2)

“==”、“!=”兩邊的操作數(shù)既可以是數(shù)值類型,也可以是引用類型?!纠?-5】關(guān)系運算符的程序?qū)嵗?。publicclassTest{publicstaticvoidmain(String[]args){inta=16;doubleb=9.5;Stringstr1="hello";Stringstr2="world";System.out.println("a等于b:"+(a==b));System.out.println("a大于b:"+(a>b));System.out.println("a小于等于b:"+(a<=b));System.out.println("str1等于str2:"+(str1==str2));}}程序運行結(jié)果如圖所示3.1.3比較運算符3.1.4邏輯運算符邏輯運算符主要用于進(jìn)行邏輯運算,Java中常用的邏輯運算符如表2-7所示。注意:“&”和“&&”都執(zhí)行的是“與”運算,“|”和“||”都執(zhí)行的是“或”操作。不同之處在于“&”和“|”在執(zhí)行操作時,運算符左右兩邊的表達(dá)式首先被執(zhí)行,然后再對結(jié)果進(jìn)行與、或的運算?!?&”和“||”在執(zhí)行操作時,如果從左邊的表達(dá)式中得到的操作數(shù)能確定運算結(jié)果,則不再對右邊的表達(dá)式進(jìn)行運算,從而提高運算速度。邏輯運算符名

稱舉

例結(jié)

果&或

&&與a&b或a&&b如果a與b都為true,則返回true|或

||或a|b或a||b如果a與b任一為true,則返回true!非!a如果a為false,則返回true,即取反^異或a^b如果a與b有且只有一個為true,則返回true【例3-6】a、b、c、d四個人投票,根據(jù)代碼分析運行結(jié)果。publicclassTest{publicstaticvoidmain(String[]args){booleana=true; //a同意booleanb=false; //b反對booleanc=false; //c反對booleand=true; //d同意System.out.println("a&&b:"+(a&&b));System.out.println("a||b:"+(a||b));System.out.println("!a:"+(!a));System.out.println("c^d:"+(c^d));}}程序運行結(jié)果如圖所示3.1.4邏輯運算符3.1.5運算符的優(yōu)先級在一個表達(dá)式中可能同時含有多個運算符,運算符的優(yōu)先級決定了運算的先后次序,優(yōu)先級高的先進(jìn)行運算,然后執(zhí)行優(yōu)先級較低的。在優(yōu)先級相同的情況下,按照結(jié)合性來決定運算的順序,運算符的結(jié)合性決定運算是從左到右執(zhí)行,還是從右到左執(zhí)行。優(yōu)先級運

符結(jié)合性1()[]

.從左到右2!

+?(正)

–?(負(fù))~++--從右到左3*

/

%從左到右4+?(加)

–?(減)從左到右5<<

>>

>>>從左到右6<

<=

>

>=

instanceof從左到右7==

!=從左到右8&從左到右9^從左到右10|從左到右11&&從左到右12||從左到右13?:從右到左14=

+=

-=

*=

/=

%=

&=

|=

^=~=

<

<=

>

>=

>>>=從右到左【例3-7】運算符的優(yōu)先級運行實例。publicclassTest{publicstaticvoidmain(String[]args){intm=5;intn=7;intx=(m*8/(n+2))%m;System.out.println("m:"+m);System.out.println("n:"+n);System.out.println("x:"+x);}}程序運行結(jié)果如圖所示3.1.5運算符的優(yōu)先級選擇結(jié)構(gòu)語句3.23.2.1if條件語句1.單if語句當(dāng)條件成立時,執(zhí)行代碼塊中的內(nèi)容,否則程序結(jié)束。if(條件){條件成立時執(zhí)行的代碼}這里注意,如果if條件成立時的執(zhí)行語句只有一條,則可以省略大括號。但如果執(zhí)行語句有多條,那么大括號就是不可或缺的。語法:

程序執(zhí)行過程:

【例3-8】判斷變量age的值,如果大于18,則提示“成年”。publicclassTest{ publicstaticvoidmain(String[]args){ intage=25; if(age>=18){ System.out.println("成年"); }}}程序運行結(jié)果如圖所示3.2.1if條件語句3.2.1if條件語句2.if-else語句該語句的操作比if語句多了一步。當(dāng)條件成立時,則執(zhí)行if部分的代碼塊1;當(dāng)條件不成立時,則進(jìn)入else部分,執(zhí)行代碼塊2。if(條件){代碼塊1;}else{代碼塊2;}語

法:

程序執(zhí)行過程:

【例3-9】判斷變量age的值,如果大于18,則提示“成年”,否則提示“未成年”。publicclassTest{publicstaticvoidmain(String[]args){intage=15;if(age>=18){System.out.println("成年");}else{System.out.println("未成年");}}}程序運行結(jié)果如圖所示3.2.1if條件語句3.2.1if條件語句3.多重if語句在條件1不滿足的情況下,會進(jìn)行條件2的判斷;當(dāng)前面的條件均不成立時,才會執(zhí)行else塊內(nèi)的代碼。if(條件1){代碼塊1;}elseif(條件2){代碼塊2;}else{代碼塊3;}語法:

程序執(zhí)行過程:

【例3-10】應(yīng)用多重if語句實現(xiàn)如下代碼。功能:如果年齡大于60歲,則提示“老年”;如果年齡介于40歲至60歲之間,則提示“中年”;如果年齡介于18歲至40歲之間,則提示“少年”;18歲以下則提示“童年”。publicclassTest{publicstaticvoidmain(String[]args){intage=25;if(age>60){System.out.println("老年");}elseif(age>40){System.out.println("中年");}elseif(age>18){System.out.println("少年");}else{System.out.println("童年");}}}3.2.1if條件語句程序運行結(jié)果如圖所示3.2.1if條件語句4.嵌套if語句只有當(dāng)外層if的條件成立時,才會判斷內(nèi)層if的條件。if(條件1){if(條件2){代碼塊1;}else{代碼塊2;}}else{代碼塊3;}語

法:

程序執(zhí)行過程:

【例3-11】應(yīng)用嵌套if語句實現(xiàn)如下代碼。功能:判斷一個數(shù)字是正數(shù)、負(fù)數(shù)還是零,并對于正數(shù),將進(jìn)一步判斷它是奇數(shù)還是偶數(shù)。publicclassTest{publicstaticvoidmain(String[]args){intnumber=5;

//首先判斷數(shù)字是正數(shù)、負(fù)數(shù)還是零if(number>0){System.out.println(number+"是正數(shù)");//對于正數(shù),進(jìn)一步判斷是奇數(shù)還是偶數(shù)if(number%2==0){System.out.println(number+"是偶數(shù)");}else{System.out.println(number+"是奇數(shù)");}}elseif(number<0){System.out.println(number+"是負(fù)數(shù)");}else{System.out.println(number+"是零");}}程序運行結(jié)果如圖所示3.2.1if條件語句3.2.2三元運算符在Java中,三元運算符(也稱為條件運算符)是一種簡潔的寫法,用于根據(jù)一個布爾表達(dá)式的值來選擇兩個值中的一個。它的語法格式如下:布爾表達(dá)式?表達(dá)式1:表達(dá)式2運算過程:如果布爾表達(dá)式的值為true,則返回“表達(dá)式1”的值;如果值為false,則返回“表達(dá)式2”的值。例如:Stringexample=(7>9)?"7大于9":"7不大于9"System.out.println(example);在上述例子中,表達(dá)式7?>?9的值顯然為false,所以返回表達(dá)式2的值,即“7不大于9”。【例3-12】三元運算符的程序?qū)嵗ublicclassTest{publicstaticvoidmain(String[]args){inta=10;intb=20;

//使用三元運算符判斷a和b的大小,并返回較大的值intmax=(a>b)?a:b;

System.out.println("較大的值是:"+max);}}程序運行結(jié)果如圖所示3.2.2三元運算符3.2.3switch條件語句當(dāng)面對多分支結(jié)構(gòu)問題時,可以使用嵌套if語句,但是當(dāng)嵌套的層數(shù)太多,結(jié)構(gòu)比較復(fù)雜時,使用switch語句更加簡潔明了。switch(表達(dá)式){case值1:執(zhí)行代碼塊1break;case值2:執(zhí)行代碼塊2break;… case值n:執(zhí)行代碼塊nbreak; default:默認(rèn)執(zhí)行的代碼}語

法:

程序執(zhí)行過程:

switch語句的執(zhí)行過程是,當(dāng)switch后表達(dá)式的值和case語句后的值相同時,從該位置開始向下執(zhí)行,直到遇到break語句或者switch語句塊結(jié)束。如果沒有匹配的case語句則執(zhí)行default塊的代碼。3.2.3switch條件語句注意:(1)?switch后面小括號中表達(dá)式的值必須是整型或字符型。(2)在同一個switch語句中沒有兩個相同的case常量。(3)??case后面的值可以是常量數(shù)值,如1、2;也可以是一個常量表達(dá)式,如2+2;但不能是變量或帶有變量的表達(dá)式,如a*2。(4)??case匹配后,執(zhí)行匹配塊里的程序代碼,如果沒有遇見break會繼續(xù)執(zhí)行下一個case塊的內(nèi)容,直到遇到break語句或者switch語句塊結(jié)束。

(5)可以把功能相同的case語句合并起來,如:case1:

case2:System.out.println("春天");(6)?default塊可以出現(xiàn)在任意位置,也可以省略。語

法:

【例3-13】編寫程序,判斷季節(jié)。其中3~5月是春天,6~8月是夏天,9~11月是秋天,12、1、2月是冬天。importjava.util.Scanner;publicclassTest{publicstaticvoidmain(String[]args){Scannerscan=newScanner(System.in);System.out.println("輸入月份:");intmonth=scan.nextInt();switch(month){case3:case4:case5:System.out.println("春天");break;case6:case7:case8:System.out.println("夏天");break;

程序運行結(jié)果如圖所示

case9:case10:case11:System.out.println("秋天");break;default:System.out.println("冬天");}}}3.2.3switch條件語句循環(huán)結(jié)構(gòu)語句3.33.3.1while語句Java的循環(huán)語句有while循環(huán)、do-while循環(huán)和for循環(huán)。一般情況下,while和do-while循環(huán)用于處理循環(huán)次數(shù)不確定的情況,for循環(huán)用于處理循環(huán)次數(shù)確定的情況。while(判斷條件){循環(huán)體;}語

法:

程序執(zhí)行過程:

第1步,判斷while后面的條件是否成立。第?2?步,當(dāng)條件成立時,執(zhí)行循環(huán)內(nèi)的操作代碼,然后重復(fù)執(zhí)行第1、2步,直到循環(huán)條件不成立。特點:先判斷,后執(zhí)行?!纠?-14】順序輸出數(shù)字1~10。publicclassTest{publicstaticvoidmain(String[]args){inti=1; //初始化變量 while(i<11){ //設(shè)置循環(huán)條件,當(dāng)變量小于等于11時執(zhí)行循環(huán)System.out.println(i); //輸出變量的值i++; //對變量加1,以便于進(jìn)行下次循環(huán)條件判斷}}}程序運行結(jié)果如圖所示3.3.1while語句3.3.2do-while語句[初始化]do{循環(huán)體;循環(huán)變量控制;}while(判斷條件);語

法:

程序執(zhí)行過程:

第1步,先執(zhí)行一遍循環(huán)操作,然后判斷循環(huán)條件是否成立。第2步,如果條件成立,則重復(fù)執(zhí)行第1、2步,直到循環(huán)條件不成立。特點:先執(zhí)行,后判斷。由此可見,do-while語句保證循環(huán)至少被執(zhí)行一

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論