版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Java程序設(shè)計(jì),教材:Java程序設(shè)計(jì)簡明教程 中國水利水電出版社,2020年7月29日星期三9時(shí)57分17秒,Java 程序設(shè)計(jì),2,第2章 Java語言基礎(chǔ) 2.1 Java語言的基本組成 Java語言主要由標(biāo)識符、關(guān)鍵字、直接量、運(yùn)符符和分隔符6種元素線成。這6種元素有著不同的語法含義和組成規(guī)則,它們互相配合,共同完成Java的語義表達(dá)。 2.1.1 標(biāo)識符 在對程序中的各個(gè)元素(如變量、方法、類等)加以命名時(shí)使用的命名記號稱為標(biāo)識符。,2020年7月29日星期三9時(shí)57分17秒,Java 程序設(shè)計(jì),3,Java語言中,標(biāo)識符是一個(gè)字符序列,它分為兩類:一類是用戶自己定義使用的,其作用
2、是用于標(biāo)識常量、變量、文件、類和方法等的名字;另一類是關(guān)鍵字,也叫保留字。 在Java中,所有的標(biāo)識符都必須以字母(AZ、az)、下劃線“_”或美元符號“$”開頭,后面可以包含字母、數(shù)字、下劃線和美元符號。Java對標(biāo)識符的有效字符個(gè)數(shù)沒有限定。,2020年7月29日星期三9時(shí)57分17秒,Java 程序設(shè)計(jì),4,2.1.2 關(guān)鍵字 關(guān)鍵字是Java語言本身使用的標(biāo)識符,它有特定的語法含義。所有的Java關(guān)鍵字將不能被用作用戶使用的標(biāo)識符,如for、while、boolean等都是Java語言的關(guān)鍵字。 2.1.3 分隔符 分隔符是用來區(qū)分源程序中的基本成分,可使編譯器確認(rèn)代碼在何處分隔。分隔
3、符有注釋、空白符和普通分隔符三種。,2020年7月29日星期三9時(shí)57分17秒,Java 程序設(shè)計(jì),5,1注釋 (1)單行注釋,以“/”開頭到本行末的所有字符被系統(tǒng)理解為注釋,不予編譯。 (2)塊注釋,以“/*”開始,最后以“*/”結(jié)束,中間可寫多行。 2空白符 3普通分隔符 普通分隔符和空白符的作用相同,用來區(qū)分程序中的各種基本成分,但它在程序中有確定的含義,不能忽略。,2020年7月29日星期三9時(shí)57分17秒,Java 程序設(shè)計(jì),6,2.2 數(shù)據(jù)類型 Java是一種強(qiáng)類型語言。每個(gè)變量、每個(gè)表達(dá)式都有一個(gè)類型,每個(gè)類型都被嚴(yán)格定義。所有的賦值,無論是顯式的還是通過參數(shù)進(jìn)行傳遞,都要進(jìn)行類
4、型的一致性檢查。在其他一些語言中,對不一致的數(shù)據(jù)類型沒有自動進(jìn)行強(qiáng)制轉(zhuǎn)換的功能。Java編譯器檢查所有的表達(dá)式和參數(shù)以確保其類型的一致性。在編譯器對類完成編譯之前,任何錯(cuò)誤的匹配都必須糾正過來。 Java中的數(shù)據(jù)類型(data types)可分為兩大類,一類稱為基本數(shù)據(jù)類型,另一類稱為構(gòu)造數(shù)據(jù)類型。,2020年7月29日星期三9時(shí)57分17秒,Java 程序設(shè)計(jì),7,2.2.1 基本數(shù)據(jù)類型 數(shù)據(jù)類型決定了程序處理和存儲數(shù)據(jù)的方式。Java有8種基本數(shù)據(jù)類型。它們被分為4組: 整型:byte,short,int和long; 浮點(diǎn)型:float和double; 字符型:char; 布爾型:boo
5、lean。 可以直接使用這些類型本身或用它們構(gòu)造自己的數(shù)組或類類型。,2020年7月29日星期三9時(shí)57分17秒,Java 程序設(shè)計(jì),8,2.2.2 直接量 在Java中,程序中使用的常量稱為一個(gè)直接量。所謂常量是在程序運(yùn)行期間不可改變的量,又稱為最終量(final)。Java的每種基本數(shù)據(jù)類型都有直接量。 2.2.3 變量 變量是內(nèi)存中的一塊空間,提供可以存放信息和數(shù)據(jù)的地方,具有記憶數(shù)據(jù)的功能。變量的值在程序運(yùn)行過程中是可變的。變量是由標(biāo)識符、類型和可選的初始值組合定義。,2020年7月29日星期三9時(shí)57分17秒,Java 程序設(shè)計(jì),9,1聲明變量 Java是強(qiáng)類型語言,所有變量在使用之
6、前必須聲明。變量聲明的基本形式如下所示: type identifier=value,identifier=value; 2. 變量的作用域或生命周期 變量在程序中聲明的位置隱含地指出了該變量的作用域。按作用域劃分,Java中變量可以歸納為以下3種類型: 成員變量; 局部變量; 方法參數(shù)。,2020年7月29日星期三9時(shí)57分17秒,Java 程序設(shè)計(jì),10,成員變量是類或?qū)ο蟮某蓡T,它是在類中,但不是在類的某個(gè)方法中聲明的變量。成員變量的作用域是整個(gè)類,在類的方法中也可以使用它們。另外,類的成員變量有靜態(tài)變量和實(shí)例變量之分。當(dāng)類的成員變量被static修飾時(shí),它就是靜態(tài)變量,否則是實(shí)例變量。
7、實(shí)例變量在定義時(shí)是不能夠賦初值的,它只能夠在該類被實(shí)例化為對象時(shí)利用構(gòu)造方法進(jìn)行賦值。而靜態(tài)成員變量可以在類定義時(shí)進(jìn)行賦值。,2020年7月29日星期三9時(shí)57分17秒,Java 程序設(shè)計(jì),11,局部變量是在一個(gè)語句塊(一對花括號)中聲明的,并且不能被該塊以外的代碼使用。例如,任何在方法中定義的變量就是一個(gè)局部變量,它只能在聲明它的方法中使用。 方法參數(shù)是方法(或構(gòu)造方法)的變元,用于將相應(yīng)的數(shù)據(jù)傳遞給方法(或構(gòu)造方法)。方法參數(shù)的作用域是它作為參數(shù)的整個(gè)方法(或構(gòu)造方法)。,2020年7月29日星期三9時(shí)57分17秒,Java 程序設(shè)計(jì),12,3. 最終變量 最終變量是指在程序運(yùn)行過程中其值
8、不變的量,它類似于一些程序設(shè)計(jì)語言中的“常量”。定義最終變量的方式有兩種: (1)在聲明變量的類型前面加final關(guān)鍵字,并同時(shí)進(jìn)行初始化,如下所示: final double PI=3.14159; (2)在聲明變量的類型前面加final關(guān)鍵字,在必要時(shí)再進(jìn)行初始化,例如: final double PI; PI=3.14159;,2020年7月29日星期三9時(shí)57分17秒,Java 程序設(shè)計(jì),13,4. 變量類型的轉(zhuǎn)換 (1)自動轉(zhuǎn)換 如果兩個(gè)類型兼容,Java將自動完成轉(zhuǎn)換。 (2)強(qiáng)制轉(zhuǎn)換不兼容類型 在Java不能進(jìn)行自動轉(zhuǎn)換的情況下,需要使用直接的強(qiáng)制轉(zhuǎn)換。例如,當(dāng)把一個(gè)int值賦給
9、一個(gè)byte變量時(shí),由于byte小于int,因此需要使用強(qiáng)制轉(zhuǎn)換。因?yàn)槟繕?biāo)類型小于源類型,有時(shí)把這種強(qiáng)制類型轉(zhuǎn)換叫做變窄轉(zhuǎn)換。,2020年7月29日星期三9時(shí)57分17秒,Java 程序設(shè)計(jì),14,2.3 運(yùn)算符與表達(dá)式 對于數(shù)據(jù)進(jìn)行的操作稱為運(yùn)算;表示各種不同運(yùn)算的符號稱為運(yùn)算符;參與運(yùn)算的數(shù)據(jù)稱為操作數(shù)。 2.3.1 賦值運(yùn)算符 賦值運(yùn)算符對應(yīng)了賦值運(yùn)算,即賦予程序里的變量或?qū)ο笠欢ǖ膬?nèi)容。簡單的賦值運(yùn)算是把一個(gè)表達(dá)式的值直接賦給一個(gè)變量或?qū)ο?,使用的賦值運(yùn)算符是“=”,其格式如下: 變量或?qū)ο?表達(dá)式;,2020年7月29日星期三9時(shí)57分17秒,Java 程序設(shè)計(jì),15,2.3.2 算
10、術(shù)運(yùn)算符 Java語言的算術(shù)運(yùn)算符有一元算術(shù)運(yùn)算符和二元算術(shù)運(yùn)算符兩種。 1. 一元算術(shù)運(yùn)算符 Java的一元算術(shù)運(yùn)算符包括以負(fù)運(yùn)算(-)、增量(+)和減量(-)三種。取負(fù)運(yùn)算是改變某個(gè)數(shù)的正負(fù)符號,如原來是正數(shù),則取負(fù)運(yùn)算后的結(jié)果為負(fù)數(shù);如原來是負(fù)數(shù),則取負(fù)運(yùn)算后的結(jié)果為正數(shù)。增量是操作數(shù)加1(當(dāng)操作數(shù)為浮點(diǎn)數(shù)時(shí)加1.0),減量是操作數(shù)減1(當(dāng)操作數(shù)為浮點(diǎn)數(shù)時(shí)減1.0),2020年7月29日星期三9時(shí)57分17秒,Java 程序設(shè)計(jì),16,2. 二元算術(shù)運(yùn)算符 Java的二元算術(shù)運(yùn)算符有加(+)、減(-)、乘(*)、除(/)、求模運(yùn)算符(%)。前面4個(gè)運(yùn)算符是做一般的加、減、乘、除四則運(yùn)算,
11、求模運(yùn)算符(%)也叫取余運(yùn)算符。 對于兩個(gè)都是整數(shù)類型的操作數(shù),“/”表示整除,即結(jié)果舍棄小數(shù)部分,只保留整數(shù)部分;否則做實(shí)數(shù)除法運(yùn)算。,2020年7月29日星期三9時(shí)57分17秒,Java 程序設(shè)計(jì),17,需要注意的問題: (1)兩個(gè)二元運(yùn)算符不能放在一起。例如,5*%6就是一個(gè)無效的表達(dá)式。 (2)括號可用來改變運(yùn)算順序。例如表達(dá)式(6+4)/(2+3),首先是計(jì)算6+4和2+3,得10/5,最后求得結(jié)果為2。 (3)括號中也可以包含括號。當(dāng)括號中嵌套括號時(shí),首先計(jì)算最內(nèi)層括號中的表達(dá)式。從內(nèi)向外依次進(jìn)行求值。 (4)乘號*不能省略。例如,表達(dá)式(3+2)(3+4)是無效的,正確形式應(yīng)為(
12、3+2)*(3+4)。,2020年7月29日星期三9時(shí)57分17秒,Java 程序設(shè)計(jì),18,2.3.3 關(guān)系運(yùn)算符 關(guān)系運(yùn)算實(shí)際上就是比較運(yùn)算,運(yùn)算結(jié)果是布爾值。如果兩個(gè)運(yùn)算對象符合關(guān)系運(yùn)算符所要示的比較關(guān)系,則關(guān)系運(yùn)算結(jié)果為true,否則為false。 2.3.4 邏輯運(yùn)算符 邏輯運(yùn)算符用來表示操作數(shù)的邏輯關(guān)系,其運(yùn)算結(jié)果也是用布爾值表示的。當(dāng)邏輯關(guān)系成立時(shí),其運(yùn)算結(jié)果為true;反之為false。在Java中,邏輯運(yùn)算符有三種。,2020年7月29日星期三9時(shí)57分17秒,Java 程序設(shè)計(jì),19,邏輯運(yùn)算符“ 其中,exp1、exp2、exp3是表達(dá)式。要注意冒號的用法和位置。表示在計(jì)
13、算exp1后,如果結(jié)果為真,則計(jì)算exp2并將結(jié)果作為整個(gè)表達(dá)式的值;如果exp1的計(jì)算結(jié)果為假,則計(jì)算exp3并以它的結(jié)果作為整個(gè)表達(dá)式的值。,2020年7月29日星期三9時(shí)57分17秒,Java 程序設(shè)計(jì),21,2.3.6 位運(yùn)算符 1. 按位運(yùn)算 位運(yùn)算符用來對二進(jìn)制位進(jìn)行操作,其操作數(shù)只能為整型或字符型。 (1)“”是按位取反運(yùn)算符 (2)“ 結(jié)果: Math.max(4,6)=6,2020年7月29日星期三9時(shí)57分17秒,Java 程序設(shè)計(jì),25,2. 絕對值操作 System.out.println(“Math.abs(6.8)=”+Math.abs(6.8); 3. 四舍五入操
14、作 語法形式 Math.round() Math.rint() Math.ceil() Math.floor() round()方法與rint()都是四舍五入操作;ceil()方法是向上取數(shù);floor()方法是向下取數(shù)。,2020年7月29日星期三9時(shí)57分17秒,Java 程序設(shè)計(jì),26,4. 冪與對數(shù)操作 語法形式 Math.exp(val)常數(shù)E的val次方,如Eval Math.pow(vall,val2)vall的val2次數(shù),如valval2 Math.log(val)以常數(shù)E為底求val的對數(shù),如logEval,2020年7月29日星期三9時(shí)57分17秒,Java 程序設(shè)計(jì),2
15、7,5三角函數(shù)操作 Math類提供了正弦、余弦、正切函數(shù)以及它們的反函數(shù),它們不能接受角度值,只能輸入弧度值。 將弧度轉(zhuǎn)變?yōu)榻嵌鹊姆椒ㄊ莟oDegrees();將角度轉(zhuǎn)變?yōu)榛《鹊姆椒╰oRadians()。 l 語法形式 Math.sin(double) 求正弦值 Math.cos(double) 求余弦值 Math.asin(double) 求反正弦值 Math.acos(double) 求反余弦值 Math.atan(double) 求反正切值,2020年7月29日星期三9時(shí)57分17秒,Java 程序設(shè)計(jì),28,2.5 Java的輸入輸出 2.5.1 標(biāo)準(zhǔn)輸入/輸出方法 Java系統(tǒng)類S
16、ystem是一個(gè)最終類,它的屬性和方法都是靜態(tài)的,在程序中引用直接以System為前綴即可。System類的一個(gè)重要功能就是提供標(biāo)準(zhǔn)輸入/輸出。一般情況下,數(shù)據(jù)標(biāo)準(zhǔn)輸入的來源為鍵盤,標(biāo)準(zhǔn)輸出的目的地為屏幕。,2020年7月29日星期三9時(shí)57分17秒,Java 程序設(shè)計(jì),29,1. 標(biāo)準(zhǔn)輸出方法 System類含有標(biāo)準(zhǔn)打印流PrintStream類的成員變量out,通過調(diào)用它的print、println或write方法來輸出各種類型的數(shù)據(jù)。標(biāo)準(zhǔn)輸出方法不產(chǎn)生輸出異常,這一點(diǎn)與標(biāo)準(zhǔn)輸入方法不同。 print和println方法的不同之處僅在于println輸出后換行而print不換行。,2020
17、年7月29日星期三9時(shí)57分17秒,Java 程序設(shè)計(jì),30,class ch0207 public static void main(String args) Object o=”an example”; char c=a,b,c,d,e; byte b=f,g,h,i,j; System.out.println(true); System.out.println(C); System.out.println(100); System.out.println(200000L); System.out.println(13.6F); System.out.println(2346.99D);
18、System.out.println(“a student”); System.out.println(o); System.out.println(c); System.out.println( ); System.out.write(b0); System.out.flush(); ,2020年7月29日星期三9時(shí)57分17秒,Java 程序設(shè)計(jì),31,2. 標(biāo)準(zhǔn)輸入方法 鍵盤是標(biāo)準(zhǔn)輸入設(shè)備,用戶通常用鍵盤輸入數(shù)據(jù)。System類含有標(biāo)準(zhǔn)輸入流的成員變量in,可以調(diào)用它的read方法來讀取鍵盤數(shù)據(jù)。輸入比輸出更容易出錯(cuò)。一個(gè)錯(cuò)誤的輸入將會導(dǎo)致程序的崩潰(程序中斷或退出)。程序運(yùn)行時(shí)發(fā)生的錯(cuò)
19、誤稱為異常。,2020年7月29日星期三9時(shí)57分17秒,Java 程序設(shè)計(jì),32,class ch0208 public static void main(String args)throws java.io.IOException char c; System.out.println(“Please input a char:”); c=(char)System.in.read(); /從標(biāo)準(zhǔn)輸入讀入一個(gè)字節(jié)的信息并返回給一個(gè)字符變量 System.out.println(“Receive char=”+c); ,2020年7月29日星期三9時(shí)57分17秒,Java 程序設(shè)計(jì),33,2.5
20、.2 流式交互輸入輸出 import java.io.*; public class ch0211 public static void main(String args)throws IOException InputStreamReader reader=new InputStreamReader(System.in); BufferedReader input=new BufferedReader(reader); /* System.in代表系統(tǒng)缺省的標(biāo)準(zhǔn)輸入(即鍵盤),首先把它轉(zhuǎn)換成InputStreamReader類的對象reader,然后轉(zhuǎn)換成BufferedReader類的對象
21、input,使原來的比特輸入變成緩沖字符輸入*/ System.out.print(“Enter your name:”); String name=input.readLine(); /*readLine()方法讀取用戶從鍵盤輸入的一行字符并賦值給字符串對象name*/ System.out.println(“Hello,”+name+”!”); /字符串回顯示在屏幕上 ,2020年7月29日星期三9時(shí)57分17秒,Java 程序設(shè)計(jì),34,從鍵盤輸入直到屏幕輸出,涉及System.in、reader、input、name和System.out5個(gè)對象,其中System.in和System.out在系統(tǒng)類System中定義。除了name對象,其他對象在系統(tǒng)中負(fù)責(zé)傳遞字節(jié)的字符,這些對象被稱為流對象。就像一條水流,數(shù)據(jù)在它們當(dāng)中按照一定的順序流動。,2020年7月29日星期三9時(shí)57分17秒,Java 程序設(shè)計(jì),35,2.5.3 GUI圖形界面輸入方法 import javax.swing.JOptionPane; /import語句用于加載類庫 public class ch0212 public static void main(Stri
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鍋爐安裝施工組織設(shè)計(jì)概述
- 2026年水庫水資源保護(hù)練習(xí)題及答案
- 2026年村級植保無人機(jī)操作員崗位題庫含答案
- 2026年農(nóng)村醫(yī)療衛(wèi)生筆試模擬題庫含答案
- 2026年團(tuán)隊(duì)決策過程與參與試題含答案
- 2026年兵團(tuán)連隊(duì)職工應(yīng)急處置能力訓(xùn)練題及答案
- 2026年消防排煙系統(tǒng)操作測驗(yàn)含答案
- 2026年注冊電氣工程師繼教題含答案
- 2026年院感手衛(wèi)生依從性題庫含答案
- 2026年國企安全管理競聘面試題目及核心答案
- 《裝飾裝修工程》課件
- 2025年浙江杭州市水務(wù)集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 醫(yī)學(xué)倫理與倫理倫理
- 《醫(yī)療機(jī)構(gòu)胰島素安全使用管理規(guī)范》
- 2024-2025學(xué)年滬科版九年級(上)物理寒假作業(yè)(四)
- 華師福建 八下 數(shù)學(xué) 第18章 平行四邊形《平行四邊形的判定 第1課時(shí) 用邊的關(guān)系判定平行四邊形》課件
- 經(jīng)典版雨污分流改造工程施工組織設(shè)計(jì)方案
- 特殊作業(yè)安全管理監(jiān)護(hù)人專項(xiàng)培訓(xùn)課件
- 2024年天津駕駛員客運(yùn)從業(yè)資格證考試題及答案
- 電梯日管控、周排查、月調(diào)度內(nèi)容表格
- TCASME 1598-2024 家族辦公室架構(gòu)師職業(yè)技能等級
評論
0/150
提交評論