JAVA程序設計PPT完整全套教學課件_第1頁
JAVA程序設計PPT完整全套教學課件_第2頁
JAVA程序設計PPT完整全套教學課件_第3頁
JAVA程序設計PPT完整全套教學課件_第4頁
JAVA程序設計PPT完整全套教學課件_第5頁
已閱讀5頁,還剩659頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第1章認識Java1.1項目任務1.2項目解析1.3技術準備1.4項目學做 1.5強化訓練 1.6習題

單元概述

本單元以任務為向?qū)?,使讀者了解Java程序設計語言的發(fā)展、特點及應用,并詳細介紹JavaJDK環(huán)境的搭建過程,以及在JDK和Eclipse環(huán)境下的Java應用程序和Java小程序的開發(fā)過程。

目的與要求

·

了解Java語言的發(fā)展史

·

了解Java語言的特點及應用領域

·

知道Java應用平臺的版本及其適用范圍

·

熟悉Java應用開發(fā)環(huán)境及開發(fā)過程

重點與難點

·

JDK環(huán)境搭建

·

Java程序的基本結(jié)構(gòu)

·

基于DOS的JDK開發(fā)工具下的Java應用程序和Java小程序的開發(fā)步驟

·

基于Windows的Eclipse環(huán)境下的Java應用程序和Java小程序的開發(fā)步驟

1.1項目任務

用Java語言在電腦控制臺和網(wǎng)頁中輸出“HelloWorld!”。

1.2項目解析

Java程序主要有Java應用程序(JavaApplication)和Java小程序(Java

Applet)兩大類。Java應用程序是一個可以獨立執(zhí)行的程序,該程序中必須包含一個實現(xiàn)應用程序入口的main()方法;而Java小程序不能獨立執(zhí)行,也沒有main()方法,它必須嵌在網(wǎng)頁中運行。這兩種程序都可以實現(xiàn)“HelloWorld!”的輸出。

1.3技術準備

1.3.1Java的來歷街道、廣場上的電子廣告,出租車上滾動的文字廣告,公交車上的電子報站系統(tǒng),淘寶上琳瑯滿目的商品介紹,高德地圖及其精準的GPS定位……這些與我們?nèi)粘I钕⑾⑾嚓P的科技應用,其實都與Java程序設計語言有千絲萬縷的聯(lián)系。

Java是一門面向?qū)ο缶幊陶Z言,它具有功能強大和簡單易用兩個特征。Java語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,極好地實現(xiàn)了面向?qū)ο罄碚?,允許程序員以簡捷的思維方式進行復雜的編程。

Java是印度尼西亞爪哇島的英文名稱,因盛產(chǎn)咖啡而著名。Java語言開發(fā)團隊出于對咖啡的喜愛,以Java來命名該軟件,因此Java的LOGO“”也如一杯冒著熱氣的咖啡。

1.3.2

Java語言的特點及應用領域

1.?Java語言的特點

Java具有簡單性、面向?qū)ο?、分布性、解釋性、健壯性、安全性、平臺獨立與可移植性、高性能、多線程、動態(tài)性等特點。

2.

Java語言的應用領域

由于Java語言具有以上鮮明的特點,因此在安卓APP應用的開發(fā)、金融服務行業(yè)的應用、網(wǎng)站開發(fā)、實用軟件及開發(fā)工具的編寫與開發(fā)、第三方交易系統(tǒng)的開發(fā)、嵌入式系統(tǒng)的設計、大數(shù)據(jù)技術及科學應用等領域有著廣泛的應用。

1.3.3Java語言的開發(fā)平臺

SUN公司針對Java程序設計在桌面系統(tǒng)、移動平臺和企業(yè)級應用的不同特征,建立了三種不同的應用開發(fā)平臺。

1.JavaSE(JavaStandardEditor,即J2SE)—Java標準版

J2SE對應于桌面開發(fā),可以開發(fā)基于控制臺或圖形用戶界面的應用程序。J2SE中包括了Java的基礎庫類,也是進一步學習其他兩個分支(Java

ME和Java

EE)的基礎。

2.JavaME(JavaMicroEditor,即J2ME)—Java精減版

J2ME是為機頂盒、移動電話和PDA之類嵌入式消費電子設備提供的Java語言平臺,包括虛擬機和一系列標準化的JavaAPI。

3.JavaEE(JavaEnterpriseEdition,即J2EE)—Java企業(yè)版

J2EE用來開發(fā)和部署可移植、健壯、可伸縮且安全的服務器端Java應用程序。

1.3.4Java的程序分類

Java程序分為以下四種類型。

1.JavaApplication—Java應用程序

Java應用程序是可以獨立運行的程序,只要有Java虛擬機(JVM)即可。其他幾種類型的程序都需要主機程序。

2.JavaApplet—Java小程序

Java小程序以Web瀏覽器為運行載體,即一般內(nèi)嵌在HTML里。

3.JavaServlet

JavaServlet是在服務器端運行的Java程序,可以動態(tài)地生成Web頁面。

4.JavaBean

JavaBean是一種用Java語言寫成的可重用組件。為寫成JavaBean,類必須是具體的、公共的、具有無參數(shù)的構(gòu)造方法。

1.3.5

Java開發(fā)環(huán)境

1.?JDK開發(fā)環(huán)境

Java開發(fā)工具包(JavaDevelopmentKit,JDK)是一個編寫Java小程序和應用程序的程序開發(fā)環(huán)境。JDK是整個Java的核心,包括了Java運行環(huán)境(JavaRuntimeEnvirnment)、Java工具和Java的核心類庫(JavaAPI)。不論哪種Java應用服務器,實質(zhì)都是內(nèi)置了某個版本的JDK。主流的JDK是SUN公司發(fā)布的,除此之外,還有很多公司和組織都開發(fā)了自己的JDK。例如IBM公司的JDK、BEA公司的Jrocket、GNU組織開發(fā)的JDK等。

2.?Eclipse集成開發(fā)環(huán)境

Eclipse是一個開放源代碼的、基于Java的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務,用于通過插件構(gòu)建開發(fā)環(huán)境。幸運的是,Eclipse附帶了一個標準的插件集,包括Java開發(fā)工具。

3.MyEclipse開發(fā)環(huán)境

MyEclipse是在Eclipse的基礎上加上一些插件開發(fā)而成的企業(yè)級集成開發(fā)環(huán)境,主要用于Java、JavaEE以及移動應用的開發(fā)。MyEclipse的功能非常強大,支持各種開源產(chǎn)品。

1.3.6搭建JDK運行環(huán)境

在基于Java控制臺的單機軟件的開發(fā)過程中,JDK一般需要對環(huán)境變量做一些配置才能保證程序的正常編譯和運行,JDK的配置涉及三個變量。

(1)

JAVA_HOME:JDK的根目錄。這個變量可以不建立。

(2)

classpath:JDK提供的庫類,也就是JAVA_HOME下lib目錄中的jar文件。

(3)

path:該環(huán)境變量是已經(jīng)存在的,需要把JAVA_HOME的bin目錄添加到path原值(系統(tǒng)path中有許多路徑,Java的path只是其中的一個)的適當位置。

變量名和值不區(qū)分大小寫。本書使用的JDK存放在D:\JDK\jdk1.8.0_25下,使用的是Windows10操作系統(tǒng)。環(huán)境變量的配置過程如下:

(1)單擊“我的電腦→計算機”,選擇“屬性”工具按鈕,如圖1-1所示。

圖1-1“我的電腦”計算機標簽頁

(2)在“系統(tǒng)”頁面中,選擇“高級系統(tǒng)設置”,如圖1-2所示。

圖1-2“我的電腦”系統(tǒng)設置頁

(3)進入“系統(tǒng)屬性”設置對話框,依次單擊“高級”標簽和“環(huán)境變量”按鈕,如圖1-3所示。

圖1-3“系統(tǒng)屬性”設置對話框

(4)單擊“確定”按鈕,進入“環(huán)境變量”設置對話框,在“系統(tǒng)變量”窗格(下窗格)中單擊“新建”(或“編輯”)按鈕,進行環(huán)境變量的設置,如圖1-4所示。

圖1-4“環(huán)境變量”設置對話框

(5)?進入“新建系統(tǒng)變量”對話框,在“變量名”文本輸入框中輸入“JAVA_HOME”(大小寫不區(qū)分),在“變量值”文本輸入框中輸入“D:\JDK\jdk1.8.0_25”(可通過瀏覽找到JDK的主路徑),如圖1-5所示。

圖1-5

JAVA_HOME變量設置

(6)單擊“確定”按鈕,返回“環(huán)境變量”設置對話框,選擇“Path”變量,然后單擊“編輯”按鈕。

(7)在打開的“編輯環(huán)境變量”對話框中,選擇“新建”按鈕。編輯好變量值后,單擊“確定”按鈕,返回“編輯環(huán)境變量”對話框,如圖1-6所示??梢酝ㄟ^單擊“上移”或“下移”按鈕來改變該參數(shù)在Path中的位置。

圖1-6“編輯環(huán)境變量”對話框

(8)在“環(huán)境變量”對話框的“系統(tǒng)變量”窗格中單擊“新建”按鈕,新建classpath變量,值為“.;”。

事實上,可以不建立JAVA_HOME變量,直接編輯Path變量,并新建classpath變量即可。

一旦JDK環(huán)境搭建好,就可以進行JDK環(huán)境下的Java程序開發(fā)了。

1.4項目學做

1.JDK環(huán)境下控制臺輸出“HelloWorld!”

1)編輯源程序

Java源程序可以在任何文本編輯器里編輯,一般使用記事本。在打開的記事本中輸入如下代碼:

以“HelloWorld.java”為名保存源程序,類型為“所有文件”(注意:必須以HelloWorld(即源程序的類(class)名)作為保存的文件名,擴展名為java,文件類型選擇“所有文件”),如圖1-7所示。

說明:1~4行為程序注釋,注釋的目的是為了提高程序的可讀性和可理解性,不參與程序的編譯和運行;5~9行創(chuàng)建一個名為HelloWorld的類,其中6~8行創(chuàng)建main()方法,每個Java應用程序都有且必須有一個main()方法,它的書寫格式總是這樣的。

圖1-7Java源程序保存

2)編譯源代碼

單擊“開始”菜單,選擇“運行(R)”命令,在文本輸入框中輸入“CMD”,確定后進入命令提示符工作界面。在命令提示符下輸入“javacHelloWorld.java”命令,如圖1-8所示。對源程序進行編譯,如果編譯無誤,生成同名的.class文件。

圖1-8編譯源代碼

編譯方式是指當用戶將用高級語言編寫的程序運行之前,編譯器把源程序一次性地“翻譯”為與機器語言等價的目標代碼,然后計算機再執(zhí)行這個目標程序,以完成源程序的運算、處理并獲取結(jié)果,如C語言。

解釋方式是指在程序運行時,解釋器邊掃描邊解釋,逐句輸入、逐句解釋、逐句執(zhí)行,整個過程不生成目標代碼,比如Java語言。

編譯執(zhí)行與解釋執(zhí)行的最大區(qū)別是:前者一次性地把源程序編譯成計算機能夠識別的目標程序,執(zhí)行起來速度比較快,但編譯后的目標程序只能在同一平臺上運行(如C語言源程序),如果是在Windows平臺下編譯的,離開Windows平臺將無法正確執(zhí)行;而解釋執(zhí)行是在將源程序逐句解釋的同時逐句執(zhí)行,因而執(zhí)行速度受到一定的限制,但這種程序的執(zhí)行往往不依賴特定的平臺,即可以實現(xiàn)跨平臺執(zhí)行。

Java語言是解釋執(zhí)行的高級語言,目前市場上流行的計算機平臺以及大多數(shù)的移動設備平臺,都有自己的Java解釋器,并且各種平臺下的Java解釋器加上各自的Java類加載器、校驗器等各種組件,統(tǒng)一封裝成Java虛擬機(JavaVirtualMachine,JVM)。Java借助于不同的JVM可以做到程序只要書寫一次,就可以在不同的計算機平臺上執(zhí)行,這就是Java語言的平臺無關性,即Java的跨平臺特性。

3)運行程序

編譯成功后,在命令提示符下輸入命令“javaHelloWorld”,控制臺將輸出“HelloWorld!”,如圖1-9所示。

圖1-9運行Java應用程序

2.MyEclipse環(huán)境下在控制臺輸出“HelloWorld!”

1)打開MyEclipse

假定MyEclipse已經(jīng)成功地安裝在計算機上。雙擊MyEclipse應用圖標,進入如圖1-10所示的工作區(qū)選擇界面。工作區(qū)就是一個存儲Java工程的文件夾。

圖1-10選擇工作區(qū)

2)創(chuàng)建一個工程

在Eclipse工作界面單擊“File→New→JavaProject”,進入創(chuàng)建java工程的對話框,如圖1-11所示。輸入工程名“Ex”,單擊“Finish”按鈕,在工作區(qū)PackageExplorer窗格中就會有Ex文件夾。

圖1-11創(chuàng)建工程

3)創(chuàng)建一個包

選擇PackageExplorer窗格中的Ex文件夾,單擊“New→Package”或者“File→New→Package”,進入創(chuàng)建包對話框。輸入包名“chap01”,單擊“Finish”按鈕,在工作區(qū)窗格中的Ex文件夾下就有了包chap01,如圖1-12所示。

圖1-12創(chuàng)建包

4)創(chuàng)建一個類

選擇PackageExplorer窗格中Ex文件夾下的chap01,單擊“New→Class”或者“File→New→Class”,進入創(chuàng)建類對話框,輸入類名“HelloWorld”,勾選“publicstaticvoidmain(String[]args)”,如圖1-13所示。

圖1-13創(chuàng)建類

5)編輯源代碼

單擊圖1-13中的“Finish”按鈕,即可進入如圖1-14所示的編輯源代碼界面。在main()方法中適當位置添入代碼。

圖1-14工作界面

6)運行程序

選擇“run→運行程序”,或單擊“工具”按鈕,或按“Ctrl+F11”組合鍵來運行程序,結(jié)果如圖1-15所示。

圖1-15運行結(jié)果

3.JDK環(huán)境下在網(wǎng)頁中輸出“HelloWorld!”

Java小程序是運行在網(wǎng)頁中的Java程序,是通過繼承JavaApplet實現(xiàn)的。

與Java應用程序開發(fā)過程類似,基于JDK的Java小程序的開發(fā)過程也需要在JDK環(huán)境配置好之后再進行編輯源代碼、編譯源程序、運行網(wǎng)頁程序等環(huán)節(jié),具體操作如下。

1)編輯源代碼

在記事本中編輯源代碼并保存。

2)編譯源程序

在CMD下執(zhí)行javacHelloAppletWorld.java。

3)編輯HTML文件

在記事本中編輯用于運行小程序的HTML文件,代碼如下:

4)運行HTML文件

在CMD下執(zhí)行appletviewerHelloAppletWorld.html,即可得到如圖1-16所示的運行效果。

圖1-16在網(wǎng)頁中輸出HelloWorld!

4.MyEclipse環(huán)境下在網(wǎng)頁中輸出“HelloWorld!”

1)創(chuàng)建小程序類

開發(fā)Java小程序時,其創(chuàng)建工程、包的過程和開發(fā)Java應用程序一樣,只是創(chuàng)建類時有所不同。

輸入類名“HelloAppletWorld”之后,單擊“Superclass”對應行后面的“Browse…”按鈕,查找Applet包(或者直接在文本輸入框中輸入相應的內(nèi)容),一定不要勾選main()方法,默認即可,如圖1-17所示。

圖1-17創(chuàng)建小程序類

2)編輯源代碼

單擊“Finish”按鈕之后,進行源代碼編輯狀態(tài)。輸入源代碼,如圖1-18所示。

圖1-18編輯小程序源代碼

3)運行小程序

運行小程序時,單擊“運行”按鈕,選擇“運行JavaApplet”,或者在run菜單下直接選擇“Runas→JavaApplet”,可以得到如圖1-19所示的運行效果。

圖1-19運行效果圖

1.5強化訓練

在控制臺或網(wǎng)頁中輸出你的姓名等信息。

1.6習題

1.填空題(1)

Java語言的開創(chuàng)者是

公司。(2)

Java語言的三個分支(或三個版本)分別是

。(3)

Java程序一般分為

兩大類。(4)

Java應用程序的開發(fā)步驟一般有

。(5)編譯Java源程序的命令是

,命令格式是

。

(6)

Java源程序文件名必須與

同名,擴展名是

;編譯完成后生成的字節(jié)碼文件擴展名是

。

(7)運行Java應用程序的命令是

,命令格式是

。

(8)運行Java小程序的命令是

,命令格式是

。

(9)每個Java應用程序都必須有且只包含一個

方法,它是應用程序運行的起點和終點。

(10)

Java語言是以

方式運行的,

保證了Java的跨平臺特性。

2.編程題

(1)編寫一個Java應用程序,控制臺輸出你個人的信息。提示:多行輸出,可以使用多個“System.out.println();”語句。

(2)編寫一個Java應用程序,輸出如圖1-20所示的菱形圖案。

圖1-20菱形圖案

3.操作題

登錄網(wǎng)站,注冊一個賬號,下載并安裝JDK和Eclipse軟件。

第2章Java語言基礎2.1項目任務 2.2項目解析2.3技術準備2.4項目學做2.5強化訓練2.6習題

單元概述

語言都是相通的,都有自己的修辭、句法和語法,有自己的字、詞、句、篇。Java語言也不例外。作為目前較為流行的計算機語言之一,本章著重介紹Java語言用到的詞(關鍵詞,標識符)、數(shù)據(jù)類型、變量與常量、運算符及其表達式、句子類型和程序結(jié)構(gòu)。

目的與要求

·

掌握Java語言標識符的規(guī)則

·

了解Java語言的關鍵字

·

了解Java語言的基本數(shù)據(jù)類型,理解這些基本數(shù)據(jù)類型數(shù)據(jù)的使用范圍及規(guī)則

·

掌握常量與變量的定義規(guī)則,了解各種常量的使用特點

·

了解Java語言的運算符、結(jié)合性、優(yōu)先級及相應的表達式

·掌握算術運算符及算術表達式、賦值運算符及賦值表達式

·

理解在表達式中數(shù)據(jù)類型的自動轉(zhuǎn)換和強制轉(zhuǎn)換

·

理解轉(zhuǎn)義字符的功能和意義

·

了解Java語言中句子的分類及其使用規(guī)則

·

了解Java應用程序的框架結(jié)構(gòu)和編寫規(guī)范

·

了解Java語言中注釋的分類及其作用

·

掌握Java語言中常用的輸入/輸出方法

重點與難點

·

標識符與關鍵字的異同

·

理解Java語言基本數(shù)據(jù)類型及其數(shù)據(jù)的取值范圍

·

常量的定義,尤其是常量賦值時的特殊要求

·

變量的聲明、初始化與引用,變量的三要素

·

算術運算符及算術表達式,特別是整型數(shù)據(jù)的運算

·

程序中注釋及其作用

·

Java鍵盤輸入數(shù)據(jù)的方法,Scanner類的使用

·

Java屏幕輸出數(shù)據(jù)的方法

·

Java應用程序的框架結(jié)構(gòu)

2.1項目任務

攝氏溫度與華氏溫度的轉(zhuǎn)換。通過鍵盤輸入一個攝氏溫度值,控制臺輸出對應的華氏溫度值;反之通過鍵盤輸入一個華氏溫度值,控制臺輸出對應的攝氏溫度值。

2.2項目解析

我們知道,在標準狀態(tài)下,攝氏溫度的冰點是0°,而華氏溫度的冰點是32°;攝氏溫度的沸點是100°,而華氏溫度的沸點是180°。它們之間具有以下線性關系:或

2.3技術準備

2.3.1關鍵字與標識符

1.關鍵字關鍵字(Keyword)又稱保留字,是事先定義好的具有特殊含義的單詞。

Java語法中有很多關鍵字,可以用來表示某種數(shù)據(jù)類型、流程控制或者權限控制等。

Java關鍵字的字母都是小寫。在Eclipse編程環(huán)境下,關鍵字都是以紅色顯示的。

Java語言有以下53種關鍵字,如表2-1所示。

2.標識符

編寫Java程序時,需要自定義一些名稱,如類名、變量名、常量名、方法名、接口名、包名等,這些名字所使用的字符串稱為標識符(Identifier)。也就是說,編程時凡是需要為對象起的名字都叫標識符。

標識符的命名規(guī)則如下:

(1)標識符由字母、數(shù)字、下劃線“_”、美元符號“$”或者人民幣符號“¥”組成,并且首字符不能是數(shù)字。

(2)不能把關鍵字和保留字作為標識符。

(3)標識符沒有長度限制。

(4)標識符對大小寫敏感(即嚴格區(qū)分大小寫)。

注意:盡量起有意義的名字,盡量做到見名知意,不要起類似a1、a2這樣的名字。標識符盡量遵守以下命名規(guī)范,以便別人更好地解讀你的代碼。

·包名:單詞中所有字母都小寫,如xxx.yyy.aaabbb;

·類名、接口名:所有單詞的首字母大寫,如XxxYyy;

·變量名、方法名:多個單詞組成時,第一個單詞小寫,之后每個單詞首字母大寫,如xxxYyyZzz;

·常量名:所有字母全部大寫,單詞之間用下劃線“_”隔開,如XXX_YYY_ZZZ;

·標識符可以使用中文字符,但是不提倡使用。

比如,下面的標識符是合法的:

myName,My_name,Points,$points,_sys_ta,PI

下面的標識符是非法的:

#name,25name,class,&time,if,ab

2.3.2數(shù)據(jù)類型

在計算機系統(tǒng)中,各種字母、數(shù)字、符號的組合及語音、圖形、圖像等統(tǒng)稱為數(shù)據(jù),數(shù)據(jù)經(jīng)過加工后就成為信息。數(shù)據(jù)是信息的表現(xiàn)形式和載體。

在計算機系統(tǒng)中,數(shù)據(jù)以二進制信息單元0和1“位”的形式表示。數(shù)據(jù)最小的尋址單位稱為字節(jié)(通常是8位)。

數(shù)據(jù)類型的出現(xiàn)是為了把數(shù)據(jù)分成所需內(nèi)存大小不同的數(shù)據(jù),數(shù)據(jù)在內(nèi)存中的存儲是以其類型決定的。也可以這樣理解,給某個數(shù)據(jù)定義了其數(shù)據(jù)類型,就決定了這個數(shù)據(jù)的取值和應用范圍。

Java數(shù)據(jù)類型分為基本數(shù)據(jù)類型(原始數(shù)據(jù)類型)和引用數(shù)據(jù)類型兩大類,如圖2-1所示。

圖2-1Java數(shù)據(jù)類型圖

1.基本數(shù)據(jù)類型

從圖2-1可以清楚地看到,Java的基本數(shù)據(jù)類型有三類八種,基本數(shù)據(jù)類型的數(shù)據(jù)一經(jīng)創(chuàng)建,Java就會立刻給它分配內(nèi)存空間。每種基本數(shù)據(jù)類型所占內(nèi)存空間的大小及其取值范圍如表2-2所示。

說明:

①整數(shù)型數(shù)據(jù)是整數(shù)集的真子集,浮點型是實數(shù)集的真子集,可以根據(jù)所用數(shù)據(jù)的大小來選擇對應的數(shù)據(jù)類型。

float數(shù)據(jù)的有效位是6~7位;double數(shù)據(jù)的有效位是15~16位。其實浮點型數(shù)據(jù)并不能取到連續(xù)的實數(shù)值,如雙精度的負數(shù)可以取到-1.7976E+308~-4.94065645841246544E-324,正數(shù)可以取到4.94065645841246544E-324~1.797693E+308。

Java的字符采用Unicode編碼,所以每個字符占兩個字節(jié)的內(nèi)存空間,字符與0~65535的整數(shù)一一對應。

④布爾型數(shù)據(jù)只有兩個值:true(真)和false(假)。

2.引用數(shù)據(jù)類型

引用數(shù)據(jù)類型包括類、接口和數(shù)組三種。

引用數(shù)據(jù)類型就是其數(shù)據(jù)在存儲時存儲的不是值而是一個內(nèi)存中的地址的數(shù)據(jù)類型,也就是說,存儲了這個數(shù)據(jù)的值所在內(nèi)存中的地址,每次調(diào)用這個數(shù)據(jù)都是引用這個地址而得到真正的值,所以叫引用數(shù)據(jù)類型。

2.3.3常量與變量

常量與變量(ConstantandVariate)是數(shù)學中反映事物量的一對概念。常量亦稱“常數(shù)”,是反映事物相對靜止狀態(tài)的量;變量亦稱“變數(shù)”,是反映事物運動變化狀態(tài)的量。

而在Java語言中,常量是公共的、靜態(tài)的、不可改變的,必須有初始值(一旦賦值,不可改變);而變量是可變的,值是不固定的。

1.常量

除byte和short以外,Java的其他基本數(shù)據(jù)類型都有其對應的常量形式。

1)整型(int)常量

整型常量又分為二進制、八進制、十進制和十六進制整型常量。

二進制整型常量:由0,1組成,以0b或0B開頭,如0b1001。

八進制整型常量:由0,1,…,7組成,以0開頭,如055。

十進制整型常量:由0,1,…,9組成,整數(shù)默認是十進制的。

十六進制整型常量:由0,1,…,9,a,b,c,d,e,f(大小寫均可)組成,以0x或0X開頭,如0x55。

2)長整型(long)常量

長整型常量必須以L或l作結(jié)尾,如9L、342L。

注意:建議不要用“l(fā)”,以免與數(shù)字“1”混淆。

3)單精度浮點型(float)常量

單精度浮點型常量的數(shù)據(jù)后面一定要加后綴f或F,如3.14f、3.14F。

4)雙精度浮點型(double)常量

雙精度浮點型常量的數(shù)據(jù)可以有后綴d或D,也可以不加,如3.14d、3.14D、3.14。浮點數(shù)常量的默認類型是double型,也就是說,如果小數(shù)后邊不加后綴,則默認是雙精度型。

5)字符型(char)常量

一個字符型常量就是一個Unicode碼,一個字符占2字節(jié),使用時必須用單引號括起來,如‘A’、‘b’、‘\t’。

6)布爾型(boolean)常量

布爾型僅有兩個常量:true和false。

2.變量

變量是編程語言中最基本的概念,計算機在處理數(shù)據(jù)的過程中都需要把數(shù)據(jù)臨時或永久地保存。比如計算三角形面積時,需要使用兩個變量來記錄三角形的底和高,然后通過公式計算出三角形的面積,而面積的值又需要另一個變量來保存。這個過程大致是這樣的:

變量的定義格式:

數(shù)據(jù)類型變量名[=初始值];

變量的定義包括三個方面,即變量的三要素:數(shù)據(jù)類型、變量名和初始值。數(shù)據(jù)類型決定這個變量的取值范圍和存儲空間的大??;變量名是與其他變量區(qū)分的標識,必須是Java合法的標識符;初始值是變量保存在存儲空間的初值。

給變量賦初始值的過程就是變量的初始化。變量的初始化可以與定義同時進行,也可以先聲明然后再初始化,如:

變量在使用前必須初始化,否則會出現(xiàn)變量未初始化的編譯錯誤。特別注意,變量的初始化值類型必須與變量定義類型一致,或者是比變量定義類型小的類型數(shù)據(jù),如:

注意:除非迫不得已,不要用小寫英文字母l作標識符,這與1很相似,易造成誤解,尤其是對于初學者。建議用L以區(qū)別于1。

變量是可以連續(xù)定義的,它們之間用逗號隔開,但是建議每個變量單獨用一行定義。如:

另外,變量不能重復定義,即在一段程序中不能有兩個變量使用同一個名字。

2.3.4運算符與表達式

對各種類型的數(shù)據(jù)進行加工的過程稱為運算,表示各種不同運算的符號稱為運算符,參與運算的數(shù)據(jù)稱為操作數(shù)。

按操作數(shù)的數(shù)目來分,運算符可分為:

一元運算符:++、--、+、-等;

二元運算符:+、-、>等;

三元運算符:?。

按功能劃分,運算符又可分為算術運算符、關系運算符、邏輯運算符、賦值運算符、條件運算符等。

表達式是由操作數(shù)和運算符按一定的語法形式組成的符號序列。表達式的運算結(jié)果就是表達式的值。一個常量或一個變量的名字是最簡單的表達式,其值即該常量或變量的值。表達式的值還可以用作其他運算的操作數(shù),形成更復雜的表達式。表達式按運算符的不同可分為算術表達式、關系表達式、邏輯表達式和賦值表達式等。

1.算術運算符與算術表達式

算術運算符及其功能描述如表2-3所示。

說明:

①“+”運算符除了表示求兩個數(shù)值數(shù)據(jù)的和之外,還可以表示字符串的連接,如:

②“%”“++”“--”運算符并不僅針對于整型數(shù),其他類型的數(shù)也是可以的(如6.0%4.0=2.0),只是它們常用于整數(shù)的運算。

③“%”運算符的結(jié)果符號取決于被除數(shù)的符號。如果a=7、b=-5,則a%b=2;如果a=-7、b=-5,則a%b=-2。余數(shù)的符號與除數(shù)符號無關。

④“++”運算符有兩種用法,即前置和后置。其用法區(qū)別是:++前置,先給變量+1,再運算;++后置,先運算,然后再給變量+1。無論是哪種情況,運算之后變量的值均+1。

⑤“--”運算符用法類似于“++”運算符,也有兩種用法,即前置和后置。其用法區(qū)別是:--前置,先給變量-1,再運算;--后置,先運算,然后再給變量-1。無論是哪種情況,運算之后變量的值均-1。

算術表達式是用算術運算符和括號將常量、變量及函數(shù)調(diào)用連接起來的符合Java語言語法規(guī)定的式子。Java語言的算術表達式與數(shù)學中的表達式有所不同,尤其要注意以下幾點:

(1)算術表達式中乘號不能省。比如,a*b*c不能寫成abc,這是因為計算機會認為abc是一個標識符,而不能理解為三個變量的積。

(2)括號在表達式中可以改變運算順序。在算術表達式中的括號只能是圓括號,而且不能省略。如(a+b)/2c,在數(shù)學上表示a與b的和除以2c的商,但在Java語言中必須寫成(a+b)/(2*c)。

(3)調(diào)用函數(shù)時,參數(shù)應放在括號中,不能省略。如調(diào)用正弦函數(shù),數(shù)學中可以寫成sinx,而在Java語言中,必須寫成sin(x)。

(4)在算術表達式中,運算的先后次序(也就是優(yōu)先級)是先++或--,再乘除取余,最后加減,有括號的先計算括號中的內(nèi)容。同級的運算,從左到右運算。

例2-1

輸入時間的秒數(shù),以“時:分:秒”的格式輸出這個時間值,如輸入7278,輸出2時1分18秒。

分析:本例需要一個變量來保存給定的時間秒數(shù),然后需要三個變量分別保存這個時間所包含的小時數(shù)、分鐘數(shù)和秒數(shù),然后通過運算將結(jié)果輸出。

運行結(jié)果是:

說明:

①變量在使用之前必須初始化?!癶=time/3600;”是用表達式time/3600的值對變量h進行初始化,m、s的初始化類似。

②整數(shù)的運算結(jié)果仍然是整數(shù),time/3600其實就是計算time里邊有多少個3600(1小時=3600秒);而time%3600/60可以理解為time中不足整3600的時間中有多少個整60(1分鐘=60秒)。

2.關系運算符與關系表達式

Java語言中的關系運算符共有六種,它們都是二元運算符,用于比較運算符左右兩個常量、變量或表達式的值的大小。它們分別是:>(大于)、<(小于)、>=(大于等于)、<=(小于等于)、==(等于)、!=(不等于)。

特別注意的是,關系相等使用的是雙等號==,在Java語言中,“=”是賦值運算符。另外>=、<=、!=、==都是由兩個字符構(gòu)成的一個運算符,中間不能用空格分開,Java語言中也沒有≥、≤、1這樣的運算符。

關系表達式就是由關系運算符連接起來的表達式,其運算結(jié)果是布爾值,即true(真)或false(假)

例2-2

下面是一個測試關系運算的例子。

執(zhí)行結(jié)果如下:

注意:大家可能會覺得z的值應該是false,在數(shù)學上可以這樣認為,但是在計算機語言中的確是true,因為a與c的數(shù)據(jù)類型不同,即使它們表面值看似相同,在內(nèi)存中也是不同的。所以在考慮兩個量是否相等時,首先要看它們的數(shù)據(jù)類型是否相同,其次再看值是否相同。

3.邏輯運算符與邏輯表達式

在Java語言中有!(邏輯非)、&(邏輯與)和|(邏輯或)三種邏輯運算符。

說明:

①邏輯非是單目運算符,即將表達式的邏輯取反,!true=false,!false=true。

②邏輯與,只有當左右兩邊都是true時,結(jié)果是true;否則為false。

③邏輯或,只有當左右兩邊都是false時,結(jié)果是false;否則為true。

④三種邏輯運算中,優(yōu)先級最高的是“非”,其次是“與”和“或”。

三種邏輯關系值如表2-4~表2-6所示。

例2-3

邏輯運算符的使用。

程序執(zhí)行結(jié)果如下:

說明:

①關系運算是比賦值運算高一級的運算。一般地,為避免產(chǎn)生二義性,把關系運算用括號括起來,如b1=(a==15)。

②b++==14這條語句,先判斷b==14,然后再執(zhí)行b=b+1,所以b2的結(jié)果是true。

為了簡化邏輯運算,Java提供了“簡潔”邏輯或“短路”邏輯的功能?!?&”稱為簡潔“與”邏輯,“||”稱為簡潔“或”邏輯。

當簡潔“與”邏輯的前一個表達式的值是false時,已經(jīng)可以判定結(jié)果是false了,就不必再判斷后一個表達式的值;同樣對于簡潔“或”邏輯,當前一個表達式的值是true時,已經(jīng)可以判定結(jié)果是true了,就不必再判斷后一個表達式的值。

如果運行“inta=15,intb=14;”,則執(zhí)行(a>5&&b++=14)的結(jié)果是:a=15,b=15;而執(zhí)行(a>5||b++=14)的結(jié)果是:a=15,b=14。

4.賦值運算符與賦值表達式

賦值運算符就是“=”,用于為變量賦值,即把右邊常量、變量或表達式的值賦給左邊的變量。注意,“=”左邊一定是變量名,不可以是其他表達式。賦值語句其實就是賦值表達式。

賦值時,還得注意右邊表達式結(jié)果的類型和左邊變量的類型一致,否則就會出現(xiàn)類型不匹配或不一致的錯誤或警告。

例如:

用“=”賦值稱為簡單的賦值,除此而外,Java還提供了復合賦值。給賦值運算符“=”左邊加上任意一個雙目運算符,都可以構(gòu)成復合賦值運算符。例如算術運算符與賦值運算符構(gòu)成的復合賦值運算符有+=、-=、*=、/=和%=,其作用是將左邊變量的值加上右邊表達式的值重新賦給變量,如:

例2-4

賦值運算符的使用。

執(zhí)行結(jié)果:

說明:程序的第3、4行和第7行分別使用了簡單賦值和復合賦值。復合賦值時,“+=”合起來是一個運算符,必須在一起,中間不可以有空白符分開。

5.條件運算符

條件運算符即“?”運算符,也有人稱其為“?”表達式,是濃縮的if…else結(jié)構(gòu)。其語法如下:

表達式1?表達式2:表達式3;

說明:

①表達式1是關系表達式或邏輯表達式,其結(jié)果是布爾值。

②當表達式1的值為true時,則結(jié)果取表達式2的值;否則取表達式3的值,也就是說結(jié)果要么是表達式2的值,要么是表達式3的值。

例如:

score<60?“不及格”:“及格”;

當變量score的值小于60時,輸出“不及格”;否則,輸出“及格”。

6.運算符的優(yōu)先級與結(jié)合性

運算符的優(yōu)先級決定了表達式中的運算順序,運算符的結(jié)合性決定了相同優(yōu)先級運算的執(zhí)行順序。如3+4*5-6,“*”的優(yōu)先級高于“+”與“-”,所以先執(zhí)行4*5的運算;“+”和“-”為同一優(yōu)先級,左結(jié)合,即從左到右運算,即先算3+20,得23,再算23-6,結(jié)果得17。

常用運算符的優(yōu)先級及結(jié)合性如表2-7所示。其中優(yōu)先級的順序為數(shù)值越小,優(yōu)先級越高。

2.3.5數(shù)據(jù)類型的轉(zhuǎn)換

數(shù)據(jù)類型的轉(zhuǎn)換就是把一種數(shù)據(jù)類型轉(zhuǎn)換成另一種數(shù)據(jù)類型。由于不同的數(shù)據(jù)類型的取值范圍不同,存儲空間及存儲形式不同,所以轉(zhuǎn)換時有一定的要求。

1.自動類型轉(zhuǎn)換

如果一個表達式中包含了多種數(shù)據(jù)類型的變量或常量,其結(jié)果會自動以最大的數(shù)據(jù)類型為結(jié)果類型,即自動以其中最高級的類型為結(jié)果數(shù)據(jù)類型。賦值時,小類型的數(shù)據(jù)可以為大類型的變量賦值,即低級類型可以為高級類型賦值。

在Java語言中,簡單數(shù)據(jù)類型由低級到高級依次是:byte→shart、char→int→long→float→double。

自動類型轉(zhuǎn)換不需要任何特殊的說明,由系統(tǒng)自動完成,即低級的數(shù)據(jù)類型可以自動轉(zhuǎn)換成高級的數(shù)據(jù)類型。例如:

說明:低級的數(shù)據(jù)類型的定義域(取值范圍)是相對高級數(shù)據(jù)類型定義域的真子集。從這一點上看,數(shù)據(jù)類型的自動轉(zhuǎn)換是很容易理解的,正如把1升的水放到2升的容器中是沒有任何問題的。

2.強制類型轉(zhuǎn)換

在Java語言中,有時需要將高級類型的數(shù)據(jù)轉(zhuǎn)換成低級類型的數(shù)據(jù),這種轉(zhuǎn)換不能自動完成,需要通過強制類型轉(zhuǎn)換來實現(xiàn)。

強制類型轉(zhuǎn)換的語法格式如下:

如:

例2-5

已知三角形的底和高,求面積。假設三角形的底和高都是整型數(shù)。

分析:三角形的面積計算公式是S=底×高/2,因此需要定義三個變量分別保存三角形的底、高和面積。

實現(xiàn)代碼如下:

程序執(zhí)行結(jié)果:

說明:

①結(jié)果顯然是不對的。為什么會產(chǎn)生這樣的結(jié)果呢?因為整型數(shù)據(jù)運算的結(jié)果仍然是整型數(shù),即1/2=0,而不是0.5,這樣“area=1/2*b*h;”右邊表達式的值為0,而area是double類型,所以自動轉(zhuǎn)換成了0.0。因此在進行除法運算時,應盡可能地避免使用整數(shù)除法,以減少結(jié)果誤差。

②那么如何得到正確的結(jié)果呢?可以用強制類型轉(zhuǎn)換將該語句修改為“area=(double)1/2*b*h;”,則程序執(zhí)行結(jié)果為“底為10高為5的三角形面積是25.0?!?。這樣做其實只是為了說明如何使用強制類型轉(zhuǎn)換,事實上,將該語句修改為“area=1.0/2*b*h;”更簡單,且結(jié)果完全正確。

2.3.6轉(zhuǎn)義字符

顧名思義,轉(zhuǎn)義字符就是字符的原有意義發(fā)生了變化。

Java語言使用轉(zhuǎn)義字符,是為了解決在程序中不能用一個字符明確地表達出確定的含義,如鍵盤上的回車鍵、退格鍵,還有一些字符在程序中可能會產(chǎn)生二義,如\、'、"?等。Java中常用的轉(zhuǎn)義字符有:

比如,java_home的路徑是“D:\JDK\jdk1.8.0_25”,想用Java程序輸出這個路徑,必須用下列語句:

說明:“\”是轉(zhuǎn)義字符的標志,加上之后的字符序列才表示一個字符,如'\0101'表示字符'A'。

2.3.7語句

Java的一條語句是用來向計算機發(fā)出的一條操作指令,一般可以把Java語句簡單地分為簡單句、空語句和復合句。

1.簡單句

簡單句就是單行語句,以“;”作結(jié)束,像變量聲明、變量初始化、賦值、自增、自減、方法調(diào)用、創(chuàng)建對象等這樣的語句都是簡單句,如:

2.空語句

空語句就是只有一個分號的語句??照Z句對程序的執(zhí)行幾乎沒有影響,但是對于程序員來說意義就不同了。在程序設計過程中,某些功能沒有考慮周全,可以先暫時用空語句代替,待以后繼續(xù)完善。

3.復合句

復合句是相對于簡單句而言的。把多條簡單句用大括號括起來就構(gòu)成一個復合句。無論一對大括號中有多少條語句,都視為一條復合語句。執(zhí)行復合語句實際上就是順序地執(zhí)行該對大括號中全部的語句。

例2-6

交換輸出兩個整型數(shù),如給出7、8,則輸出8、7。

分析:交換兩個數(shù),需要一個中間變量將其中一個先存放起來,然后再交換。就像交換A、B兩個人的座位一樣,先要找一個空位置t讓A待著,再讓B坐在A先前的位置,最后讓A坐回到先前B的位置,這樣就實現(xiàn)了A、B兩人座位的交換,如圖2-2所示。

圖2-2A與B交換圖

程序代碼如下:

說明:復合語句7~11行是用于交換的標準語句。這條語句還可以寫成{t=a;a=b;b=t;},不影響運行結(jié)果,但是不符合書寫規(guī)范。

Java語言中,標識符之間、定義的多變量之間都要用空白符隔開。Java的空白符是空格符、制表符、回車符的統(tǒng)稱。而且連續(xù)的多個空白符與一個空白符的作用相同。有些時候為了程序看起來美觀,加上一些空白符,如:

2.3.8注釋

在編程過程中,我們需要對一些程序進行注釋,除了方便自己的閱讀外,也可以為團隊的其他成員、二次開發(fā)人員更好地理解自己的程序提供方便。注釋可以是編程思路、程序內(nèi)容的作用等。

Java的注釋有三種。

(1)單行注釋。

單行注釋是以“//”開頭,可以放在程序行的后邊,也可以獨占一行,放在程序的任何位置,如:

(2)多行注釋。

多行注釋也叫塊注釋。塊注釋以“/*”開頭、以“*/”結(jié)束之間的內(nèi)容為塊注釋,將程序段或其他要注釋的內(nèi)容放在其中。

(3)文檔注釋。

文檔注釋是以“/*”開頭、以“*/”結(jié)束、中間每行前加一個“*”。文檔注釋的內(nèi)容可以通過javadoc命令生成注釋文檔。如創(chuàng)建類時自動生成的注釋:

說明:@paramargs是文檔注釋中的參數(shù),常用的有Override、Deprecated、SupressWarning等。Override只能用于方法,以保證編譯時Override的方法聲明的正確性,常用于繼承、抽象方法或接口中方法的重寫(超馳);Deprecated也只能用于方法,對不應再使用的方法進行注釋;SupressWarning可以注釋一段代碼,關閉特定的警告信息。

2.3.9輸入/輸出方法

Java語言中沒有輸入/輸出語句,是通過調(diào)用輸入/輸出方法來實現(xiàn)數(shù)據(jù)的輸入和輸出的。

1.控制臺輸出方法

常用的輸出方法有以下三個。

(1)“System.out.print(常量、變量或字符串表達式);”。

功能:輸出常量、變量的值或字符串表達式的內(nèi)容,并將光標停留在輸出內(nèi)容之后,不回車換行,如:

(2)“System.out.println(常量、變量或字符串表達式);”。

功能:輸出常量、變量的值或字符串表達式的內(nèi)容之后,回車換行,將光標停留在輸出內(nèi)容下一行的開始,如:

(3)“System.out.printf(格式化字符串,變量、常量或表達式列表);”。

功能:按格式字符串指定的格式將變量、常量或表達式列表中的值依次輸出。如果要回車換行,可在格式字符串指定位置加'\n',如:

格式字符串中的“%”是格式化數(shù)據(jù)的標志,相當于占位,之后的字符序列是數(shù)據(jù)格式,如:

(1)

D或d(整型數(shù))。%d表示將對應列表中的數(shù)據(jù)以整型的形式輸出;%md表示將對應列表中的數(shù)據(jù)以整型的形式輸出,輸出長度為m,右對齊,如果數(shù)據(jù)本身長度大于m,按實際大小輸出。

(2)

F或f(浮點數(shù))。%f表示將對應列表中的數(shù)據(jù)以浮點數(shù)的形式輸出;%m.nf表示輸出數(shù)據(jù)的整數(shù)長度為m,保留n位小數(shù)。

2.控制臺輸入方法

把數(shù)據(jù)直接在程序中寫死是可行的。但是每次改變數(shù)據(jù)都要重新修改程序,需要重新編譯,這就失去了Java可移植性和與平臺無關的特性。

Java語言在java.util包里提供了一個Scanner類,可以用該類的方法來實現(xiàn)控制臺輸入數(shù)據(jù),具體操作過程如下。

(1)由于Scanner類不是自己創(chuàng)建的,在使用之前必須在使用它的類前用import語句導入:

(2)使用時,先創(chuàng)建一個Scanner類的對象,就像創(chuàng)建一個基本數(shù)據(jù)類型的變量一樣:

scan是創(chuàng)建的Scanner類的對象名,只要符合標識符命名規(guī)范就行;new運算符是專為引用型數(shù)據(jù)類型創(chuàng)建對象,做初始化用的;Scanner(System.in)是Scanner類的構(gòu)造方法,詳見第5章。

(3)通過對象調(diào)用Scanner類的next方法,獲得從鍵盤錄入的數(shù)據(jù)。常用的方法有:

scan.nextInt():從鍵盤錄入一個整數(shù),以空白符結(jié)束。

scan.nextFloat():從鍵盤錄入一個單精度浮點數(shù),以空白符結(jié)束。

scan.nextDouble():從鍵盤錄入一個雙精度浮點數(shù),以空白符結(jié)束。

scan.next():從鍵盤錄入字符串,以空白符結(jié)束。

scan.nextLine():從鍵盤錄入一行字符,以回車結(jié)束。

注意:Java語言中對字符的處理比較弱,在Scanner類中沒有直接獲取單一字符的方法,可以通過字符串的方法獲取字符,如:

例2-7

編寫一個計算兩個加數(shù)和的程序:通過鍵盤錄入兩個整數(shù),輸出它們的和。

分析:通過鍵盤錄入兩個整數(shù),需要導入并使用Scanner類,且兩個整數(shù)及其和要存放在三個整型變量中。運行程序時,按提示從鍵盤錄入數(shù)據(jù)并回車,即可輸出結(jié)果。反復地執(zhí)行這個程序,就可以像使用學習機一樣做重復的訓練。

代碼如下:

說明:

①導入語句一般放在類定義之前,各種導入語句可以放在一起,在導入語句中可以使用通配符“*”,如:

表示導入java.util包下的全部類,這樣很方便,但編譯時會占用較多的時間。

②“System.out.println(”請輸入兩個整數(shù):“);”這條輸出語句,是提示用戶從鍵盤上錄入兩個整型數(shù)。提示很重要,它可以增強程序的人機對話功能,特別是對于用戶,知道下一步該做什么、怎么做。當然對于開發(fā)者來說,它可有可無。建議在編程中加入適當?shù)奶崾菊Z句,提高人機交互及使用者對程序功能的理解。

③“a=scan.nextInt();”這條語句是通過調(diào)用方法,用方法的結(jié)果給變量賦值。

④執(zhí)行程序時,控制臺首先出現(xiàn)“請輸入兩個整數(shù):”,如果沒有這句,光標就在控制臺輸出區(qū)左上角閃爍。錄入整型數(shù)據(jù)時用空白符分開,錄入完成后,按回車將繼續(xù)執(zhí)行之后的語句(計算結(jié)果)。

⑤可以多次執(zhí)行程序,用不同的數(shù)據(jù)來測試程序。如果輸入的不是要求的數(shù)據(jù),就會有異常信息,如:

2.3.10Java源程序框架結(jié)構(gòu)

一個完整的Java源程序應該包含以下幾部分:

(1)

package(包)語句。它是用于管理一些相關類的實體,相當于在磁盤中創(chuàng)建的一個文件夾。包語句在一個源程序中最多只有一句,而且必須放在源程序的第一句。

(2)

import(導入)語句。要想在源程序中使用其他的類,就可以用導入語句。一個源程序中可以有多個甚至沒有導入語句,該語句要放在所有類定義的前面。

(3)?publicclassDefine(公共類定義)。一個Java應用程序中可以有多個類,其中有一個叫作主類,主類必須是public的。

(4)

classDefine(類定義)。在一個源程序中,除了public類以外,還可以定義0個或多個類。

(5)注釋。雖然注釋不參與源程序的編譯和執(zhí)行,但對于程序的解讀和理解是非常必要的。

在Java源程序的編輯過程中,尤其是初學者要特別注意:程序中所使用的標點符號,都必須是英文,即單字節(jié)的,否則會有“使用了非法字符”的錯誤信息提示。如果編譯時發(fā)現(xiàn)有“InvalidCharacter(非法字符)”這樣的錯誤信息,先檢查一下程序中的標點符號是否有非英文的。

2.4項目學做

溫度轉(zhuǎn)換程序的代碼如下:

說明:

①程序中適當?shù)卦黾涌招校梢允钩绦蚪Y(jié)構(gòu)邏輯清晰,便于閱讀理解。比如該例中,空行將程序分成了包語句、導入語句和類定義三部分。在類定義中,又劃分成變量定義、數(shù)據(jù)錄入、數(shù)據(jù)處理和結(jié)果輸出。

②輸出語句可以寫成格式化輸出形式:

這里只寫攝氏溫度到華氏溫度的一種轉(zhuǎn)換,華氏溫度到攝氏溫度的轉(zhuǎn)換請讀者自己練習完成。

2.5強化訓練

國際溫度制中還有一個絕對溫度,即開爾文溫度,簡稱開氏溫度(K),它規(guī)定在標準狀況下,水的冰點是273.16K。開氏溫度K與攝氏溫度C的關系是:K?=

273.15

+

C。完成絕對溫度、攝氏溫度和華氏溫度中間的相互轉(zhuǎn)換。

2.6習題

1.簡答題(1)

Java標識符有哪些規(guī)定?(2)

Java語言的基本數(shù)據(jù)類型有哪些?(3)

Java語言中如何聲明一個變量?變量的三要素是什么?(4)

Java語言中整型常量有哪些表現(xiàn)形式?變量與常量的區(qū)別是什么?

(5)注釋在編程中的意義是什么?Java語言中有哪些形式的注釋?

(6)為什么要使用轉(zhuǎn)義字符?試舉例說明。

(7)為什么要進行數(shù)據(jù)類型轉(zhuǎn)換?試舉例說明。

(8)

Java應用程序的結(jié)構(gòu)如何?

2.填空題

(1)

Java語言中,用于標識符的字符有

、

,而且首字符不能是

(2)在Java語言中,整型常量0123的十進制值是

(3)數(shù)學表達式6<x≤10的Java表達式是

;b2-4ac的Java表達式是

(4)如果定義有“floatx=4.5f;inty=9;”,則表達式x+y%5/3的值是

(5)

Java語言中,基本語句(簡單句)的特征是

(6)執(zhí)行“intx=5,y;y=x++;”之后,x的值是

,y的值是

。

(7)執(zhí)行“intx=5,y=8;y+=x--+6;”之后,x的值是,y的值是

。

(8)要在屏幕上輸出“What’syourname?”,正確的語句是

。

(9)用于基本數(shù)據(jù)類型的關鍵字有

(10)聲明包的關鍵字是

,導入包的關鍵字是

3.選擇題

(1)以下不屬于Java關鍵字的是()。

A.?new B.?package C.?Class

D.?unsigned

(2)在Java語言中,合法的字符常量是()。

A.?‘\\’

B.?“Hello!”

C.?‘Hello!’

D.?a

(3)在Java語言中,不可以作為標識符的是()。

A.?_var B.?VAR C.?B2B D.?2abc

(4)下面變量定義錯誤的是()。

A.?inta;

B.?doubled=4.5;

C.?booleanb=true; D.?floatf=9.8

(5)表達式6+5%3+2的值是()。

A.

8 B.

9 C.

10 D.

11

(6)下面對于變量定義與使用的描述不正確是()。

A.變量按所定義的數(shù)據(jù)類型存放數(shù)據(jù)

B.編譯時系統(tǒng)為變量分配相應的存儲單元

C.變量應先定義后使用

D.通過類型轉(zhuǎn)換可改變變量存儲單元的大小

(7)變量定義時,變量所分配的內(nèi)存空間大小()。

A.均為1個字節(jié) B.由用戶臨時確定

C.由變量的類型確定 D.由操作系統(tǒng)決定

(8)下列關于變量的描述,錯誤的是()。

A.只要是合法的標識符都可以作為變量名

B.變量必須在使用前做好定義

C.不同類型的變量可以進行混合運算

D.變量只能先定義,然后再初始化

(9)在Java語言中,不合法的整型常量是()。

A.?29 B.?029 C.?0x29 D.?0101

(10)下面語句中的變量都已經(jīng)合法定義,不正確的賦值語句是()。

A.?i+=++i;

B.?i=i==k;

C.?i=j+=i; D.?i=j+i=k;

(11)表達式3.6-5/2+1.2+5%2的值是()。

A.?4.8 B.?3.8 C.?5.8 D.?4.3

(12)數(shù)學表達式x≤y≤z正確的Java語言表達式是()。

A.?x<=y&&y<=z B.?x<=y||y<=z

C.?x<=yANDy<=z D.?x<=y<=z

(13)以下程序段的運行結(jié)果是()。

……

intx,y,z;

x=y=1;

x++;

++y;

z=y++;

System.out.println(x+“,”+y+“,”+z);

……

A.?2,3,3 B.?2,3,2 C.?2,3,1 D.?2,2,1

(14)以下程序段的運行結(jié)果是()。

……

intm=12,n=34;

System.out.print((m++)+“”+(++n));

System.out.print((n++)+“”+(++m));

……

A.?12353514 B.?13353514

C.?12343513 D.?12343514

(15)與A==B相同的條件是()。

A.?A!=B B.?!(A==B)

C.?A>B||A<B D.?!(A!=B)

(16)?A>B&&A<=B的值()。

A.?true B.?flase C.與A>B相同 D.與A<=B相同

(17)整型就是r已正確定義并初始化,那么r%3的結(jié)果可能是()。

A.?1,2,3之一 B.?0,1,2之一

C.?-2,-1,0,1,2之一 D.任意整數(shù)

(18)下列數(shù)據(jù)類型的精度由高到低順序正確的是()。

A.?float,double,int,long B.?double,float,int,byte

C.?byte,float,long,double D.?double,int,float,short

(19)下列合法的邏輯表達式是()。

A.?(8-7)&&(9+5) B.?(9/5)||(9%5)

C.?3>2&&9<10 D.?!(1<2<3)

(20)下列說法不正確的是()。

A.一個表達式可以作為其他表達式的操作數(shù)

B.單個常量或變量也是表達式

C.表達式中各操作數(shù)的數(shù)據(jù)類型必須相同

D.表達式的類型可以與操作數(shù)的類型不一樣

4.操作題

(1)

2018年5月1日是星期二,編程計算10月1日是星期幾?

(2)已知圓的半徑是5,編程計算該圓的周長和面積。

(3)輸入任意一個五位整數(shù),將它四舍五入保留到百位(如輸入12345,輸出12300;輸入56789,輸出56800)。

(4)任意給出一個1000以內(nèi)的整數(shù),求出各位數(shù)字之和(如輸入234,輸出9)。.

(5)輸入三個整數(shù)作為三角形的三個邊(無須判斷是否可以構(gòu)成三角形),用公式計算面積(其中,a、b、c是三角形的三條邊,p=(a+b+c)/2,平方根的計算可用java.Math.sqrt()方法)。

第3章Java結(jié)構(gòu)化程序設計3.1項目任務3.2項目解析3.3技術準備3.4項目學做3.5習題

單元概述

從程序流程角度來看,程序可以分成順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)三種基本結(jié)構(gòu)。任何復雜的程序,都可以用這三種結(jié)構(gòu)組合完成。盡管Java程序的最小單位是類,這并不妨礙Java在編程中使用結(jié)構(gòu)化程序設計的方法。

目的與要求

·了解Java結(jié)構(gòu)化程序設計的思想和方法

·了解流程圖的構(gòu)成元素及繪制方法

·掌握用順序結(jié)構(gòu)設計程序的方法

·掌握用分支結(jié)構(gòu)設計程序的方法

·掌握用循環(huán)結(jié)構(gòu)設計程序的方法

·了解跳轉(zhuǎn)語句break和continue的功能和語法

重點與難點

·用程序流程圖完成程序設計思路

·各種分支結(jié)構(gòu)的語法,能夠用多重分支和分支嵌套完成復雜的程序設計

·各種循環(huán)結(jié)構(gòu)的語法,能夠用多重循環(huán)和循環(huán)嵌套完成復雜的程序設計

3.1項目任務

每個人都有過超市購物的經(jīng)歷,想想當你把購物車上的商品推到收銀臺時,收銀員是怎么做的?用Java程序來模擬超市購物。

3.2項目解析

當你只買了一件商品,付款額恰好與商品價格相同,很簡單,直接拎物走人。當付款額大于商品價格時,需用找零,這些過程簡單地按順序做就可以完成,這就用到本章所講的順序結(jié)構(gòu)。而當你是超市的VIP會員或者超市根據(jù)消費額打折優(yōu)惠時,雖然收銀員也是做順序的操作,但是計算機中的程序需要對你的會員情況和消費額等進行判斷,再做優(yōu)惠處理,這就用到本章所講的條件結(jié)構(gòu)。當商品量大時,模擬過程還應該考慮用到循環(huán)結(jié)構(gòu)。

3.3技術準備

3.3.1結(jié)構(gòu)化程序設計簡介結(jié)構(gòu)化程序設計的目的是通過設計結(jié)構(gòu)良好的程序,以程序靜態(tài)的結(jié)構(gòu)保證程序動態(tài)執(zhí)行的正確性,使程序易理解、易調(diào)試、易維護,以提高軟件開發(fā)的效率。結(jié)構(gòu)化程序設計主要強調(diào)的是“清晰第一,效率第二”。目的還是強調(diào)程序的易讀性和易理解性。

結(jié)構(gòu)化程序設計方法遵循以下四條基本原則。

(1)自頂向下原則:在程序設計時,應先考慮總體,后考慮細節(jié)

溫馨提示

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

評論

0/150

提交評論