Java程序設(shè)計p02章節(jié)_第1頁
Java程序設(shè)計p02章節(jié)_第2頁
Java程序設(shè)計p02章節(jié)_第3頁
Java程序設(shè)計p02章節(jié)_第4頁
Java程序設(shè)計p02章節(jié)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Java程序設(shè)計教材:Java程序設(shè)計簡明教程中國水利水電出版社*Java程序設(shè)計2第2章Java語言基礎(chǔ)

2.1Java語言的基本組成

Java語言主要由標識符、關(guān)鍵字、直接量、運符符和分隔符6種元素線成。這6種元素有著不同的語法含義和組成規(guī)則,它們互相配合,共同完成Java的語義表達。2.1.1標識符在對程序中的各個元素(如變量、方法、類等)加以命名時使用的命名記號稱為標識符。

*Java程序設(shè)計3Java語言中,標識符是一個字符序列,它分為兩類:一類是用戶自己定義使用的,其作用是用于標識常量、變量、文件、類和方法等的名字;另一類是關(guān)鍵字,也叫保留字。在Java中,所有的標識符都必須以字母(A~Z、a~z)、下劃線“_”或美元符號“$”開頭,后面可以包含字母、數(shù)字、下劃線和美元符號。Java對標識符的有效字符個數(shù)沒有限定。

*Java程序設(shè)計42.1.2關(guān)鍵字關(guān)鍵字是Java語言本身使用的標識符,它有特定的語法含義。所有的Java關(guān)鍵字將不能被用作用戶使用的標識符,如for、while、boolean等都是Java語言的關(guān)鍵字。

2.1.3分隔符分隔符是用來區(qū)分源程序中的基本成分,可使編譯器確認代碼在何處分隔。分隔符有注釋、空白符和普通分隔符三種。

*Java程序設(shè)計51.注釋

(1)單行注釋,以“//”開頭到本行末的所有字符被系統(tǒng)理解為注釋,不予編譯。(2)塊注釋,以“/*”開始,最后以“*/”結(jié)束,中間可寫多行。

2.空白符

3.普通分隔符普通分隔符和空白符的作用相同,用來區(qū)分程序中的各種基本成分,但它在程序中有確定的含義,不能忽略。

*Java程序設(shè)計62.2數(shù)據(jù)類型

Java是一種強類型語言。每個變量、每個表達式都有一個類型,每個類型都被嚴格定義。所有的賦值,無論是顯式的還是通過參數(shù)進行傳遞,都要進行類型的一致性檢查。在其他一些語言中,對不一致的數(shù)據(jù)類型沒有自動進行強制轉(zhuǎn)換的功能。Java編譯器檢查所有的表達式和參數(shù)以確保其類型的一致性。在編譯器對類完成編譯之前,任何錯誤的匹配都必須糾正過來。

Java中的數(shù)據(jù)類型(datatypes)可分為兩大類,一類稱為基本數(shù)據(jù)類型,另一類稱為構(gòu)造數(shù)據(jù)類型。

*Java程序設(shè)計72.2.1基本數(shù)據(jù)類型數(shù)據(jù)類型決定了程序處理和存儲數(shù)據(jù)的方式。Java有8種基本數(shù)據(jù)類型。它們被分為4組:整型:byte,short,int和long;浮點型:float和double;字符型:char;布爾型:boolean。

可以直接使用這些類型本身或用它們構(gòu)造自己的數(shù)組或類類型。

*Java程序設(shè)計82.2.2直接量在Java中,程序中使用的常量稱為一個直接量。所謂常量是在程序運行期間不可改變的量,又稱為最終量(final)。Java的每種基本數(shù)據(jù)類型都有直接量。

2.2.3變量變量是內(nèi)存中的一塊空間,提供可以存放信息和數(shù)據(jù)的地方,具有記憶數(shù)據(jù)的功能。變量的值在程序運行過程中是可變的。變量是由標識符、類型和可選的初始值組合定義。

*Java程序設(shè)計91.聲明變量Java是強類型語言,所有變量在使用之前必須聲明。變量聲明的基本形式如下所示:typeidentifier[=value][,identifier[=value…];

2.變量的作用域或生命周期變量在程序中聲明的位置隱含地指出了該變量的作用域。按作用域劃分,Java中變量可以歸納為以下3種類型:成員變量;

局部變量;方法參數(shù)。

*Java程序設(shè)計10

成員變量是類或?qū)ο蟮某蓡T,它是在類中,但不是在類的某個方法中聲明的變量。成員變量的作用域是整個類,在類的方法中也可以使用它們。另外,類的成員變量有靜態(tài)變量和實例變量之分。當類的成員變量被static修飾時,它就是靜態(tài)變量,否則是實例變量。實例變量在定義時是不能夠賦初值的,它只能夠在該類被實例化為對象時利用構(gòu)造方法進行賦值。而靜態(tài)成員變量可以在類定義時進行賦值。

*Java程序設(shè)計11

局部變量是在一個語句塊(一對花括號)中聲明的,并且不能被該塊以外的代碼使用。例如,任何在方法中定義的變量就是一個局部變量,它只能在聲明它的方法中使用。方法參數(shù)是方法(或構(gòu)造方法)的變元,用于將相應(yīng)的數(shù)據(jù)傳遞給方法(或構(gòu)造方法)。方法參數(shù)的作用域是它作為參數(shù)的整個方法(或構(gòu)造方法)。

*Java程序設(shè)計123.最終變量最終變量是指在程序運行過程中其值不變的量,它類似于一些程序設(shè)計語言中的“常量”。定義最終變量的方式有兩種:(1)在聲明變量的類型前面加final關(guān)鍵字,并同時進行初始化,如下所示:

finaldoublePI=3.14159;(2)在聲明變量的類型前面加final關(guān)鍵字,在必要時再進行初始化,例如:

finaldoublePI;

…PI=3.14159;

*Java程序設(shè)計134.變量類型的轉(zhuǎn)換

(1)自動轉(zhuǎn)換

如果兩個類型兼容,Java將自動完成轉(zhuǎn)換。

(2)強制轉(zhuǎn)換不兼容類型在Java不能進行自動轉(zhuǎn)換的情況下,需要使用直接的強制轉(zhuǎn)換。例如,當把一個int值賦給一個byte變量時,由于byte小于int,因此需要使用強制轉(zhuǎn)換。因為目標類型小于源類型,有時把這種強制類型轉(zhuǎn)換叫做變窄轉(zhuǎn)換。

*Java程序設(shè)計142.3運算符與表達式對于數(shù)據(jù)進行的操作稱為運算;表示各種不同運算的符號稱為運算符;參與運算的數(shù)據(jù)稱為操作數(shù)。

2.3.1賦值運算符賦值運算符對應(yīng)了賦值運算,即賦予程序里的變量或?qū)ο笠欢ǖ膬?nèi)容。簡單的賦值運算是把一個表達式的值直接賦給一個變量或?qū)ο?,使用的賦值運算符是“=”,其格式如下:變量或?qū)ο?表達式;

*Java程序設(shè)計152.3.2算術(shù)運算符

Java語言的算術(shù)運算符有一元算術(shù)運算符和二元算術(shù)運算符兩種。1.一元算術(shù)運算符

Java的一元算術(shù)運算符包括以負運算(-)、增量(++)和減量(--)三種。取負運算是改變某個數(shù)的正負符號,如原來是正數(shù),則取負運算后的結(jié)果為負數(shù);如原來是負數(shù),則取負運算后的結(jié)果為正數(shù)。增量是操作數(shù)加1(當操作數(shù)為浮點數(shù)時加1.0),減量是操作數(shù)減1(當操作數(shù)為浮點數(shù)時減1.0)

*Java程序設(shè)計162.二元算術(shù)運算符

Java的二元算術(shù)運算符有加(+)、減(-)、乘(*)、除(/)、求模運算符(%)。前面4個運算符是做一般的加、減、乘、除四則運算,求模運算符(%)也叫取余運算符。對于兩個都是整數(shù)類型的操作數(shù),“/”表示整除,即結(jié)果舍棄小數(shù)部分,只保留整數(shù)部分;否則做實數(shù)除法運算。

*Java程序設(shè)計17需要注意的問題:(1)兩個二元運算符不能放在一起。例如,5*%6就是一個無效的表達式。(2)括號可用來改變運算順序。例如表達式(6+4)/(2+3),首先是計算6+4和2+3,得10/5,最后求得結(jié)果為2。(3)括號中也可以包含括號。當括號中嵌套括號時,首先計算最內(nèi)層括號中的表達式。從內(nèi)向外依次進行求值。(4)乘號*不能省略。例如,表達式(3+2)(3+4)是無效的,正確形式應(yīng)為(3+2)*(3+4)。

*Java程序設(shè)計182.3.3關(guān)系運算符關(guān)系運算實際上就是比較運算,運算結(jié)果是布爾值。如果兩個運算對象符合關(guān)系運算符所要示的比較關(guān)系,則關(guān)系運算結(jié)果為true,否則為false。2.3.4邏輯運算符邏輯運算符用來表示操作數(shù)的邏輯關(guān)系,其運算結(jié)果也是用布爾值表示的。當邏輯關(guān)系成立時,其運算結(jié)果為true;反之為false。在Java中,邏輯運算符有三種。*Java程序設(shè)計19

邏輯運算符“&&”和“||”有時也被稱為捷徑運算符或短路運算符。對“||”運算,如果左邊的表達式值為true,則不必對運算符右邊的表達式再進行運算,整個表達式的結(jié)果就為true;對“&&”運算,如果左邊的表達式的值為false,則不必對運算符右邊的表達式再進行運算,整個表達式的結(jié)果就為false。邏輯運算符的優(yōu)先級比算術(shù)運算符低。

*Java程序設(shè)計202.3.5條件運算符

Java語言與C語言一樣提供了高效簡便的三元條件運算符“?:”。該運算符的一般形式為:

exp1?exp2:exp3;

其中,exp1、exp2、exp3是表達式。要注意冒號的用法和位置。表示在計算exp1后,如果結(jié)果為真,則計算exp2并將結(jié)果作為整個表達式的值;如果exp1的計算結(jié)果為假,則計算exp3并以它的結(jié)果作為整個表達式的值。

*Java程序設(shè)計212.3.6位運算符1.按位運算

位運算符用來對二進制位進行操作,其操作數(shù)只能為整型或字符型。

(1)“~”是按位取反運算符

(2)“&”是按位與運算符

(3)“|”是按位或運算符

(4)“^”是按位異或運算符

*Java程序設(shè)計222.移位運算

“移位”,就是將操作數(shù)以二進制比特位為單位,一起向某個方向移動。位運算的操作數(shù)和結(jié)果都是整型量。在進行移位操作時,左移位運算符“<<”是將一個二進制數(shù)的各二進制數(shù)全部左移若干位,高位溢出舍棄,低位補0;在帶符號的右移運算中,低位溢出舍棄,右移后左邊留下的空位中填入的是復(fù)制的操作數(shù)的符號位,即正數(shù)為0,負數(shù)為1;不帶符號右移運算符為“>>>”,左邊的空位一律填0,低位舍棄。

*Java程序設(shè)計232.3.7其他運算符除上述運算符外,Java語言中還有一些其他的運算符,如“.”、“new”、“(

)”、“[]”

2.3.8運算符的優(yōu)先級

當表達式里有很多種運算符號的時候,運算的次序

*Java程序設(shè)計242.4Math類的常用操作

Java的E和圓周率PI表示如下:Math.E=2.718281828459045Math.PI=3.14159263589793min、max取最小、最大值操作

System.out.println(“Math.max(4,6)”=”+Math.max(4,6));結(jié)果:

Math.max(4,6)=6*Java程序設(shè)計252.絕對值操作

System.out.println(“Math.abs(6.8)=”+Math.abs(6.8));3.四舍五入操作語法形式

Math.round()Math.rint()Math.ceil()Math.floor()round()方法與rint()都是四舍五入操作;ceil()方法是向上取數(shù);floor()方法是向下取數(shù)。

*Java程序設(shè)計264.冪與對數(shù)操作語法形式

Math.exp(val)常數(shù)E的val次方,如EvalMath.pow(vall,val2)vall的val2次數(shù),如valval2Math.log(val)以常數(shù)E為底求val的對數(shù),如logEval

*Java程序設(shè)計275.三角函數(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)求反正切值*Java程序設(shè)計282.5Java的輸入輸出

2.5.1標準輸入/輸出方法

Java系統(tǒng)類System是一個最終類,它的屬性和方法都是靜態(tài)的,在程序中引用直接以System為前綴即可。System類的一個重要功能就是提供標準輸入/輸出。一般情況下,數(shù)據(jù)標準輸入的來源為鍵盤,標準輸出的目的地為屏幕。

*Java程序設(shè)計291.標準輸出方法

System類含有標準打印流PrintStream類的成員變量out,通過調(diào)用它的print、println或write方法來輸出各種類型的數(shù)據(jù)。標準輸出方法不產(chǎn)生輸出異常,這一點與標準輸入方法不同。

print和println方法的不同之處僅在于println輸出后換行而print不換行。

*Java程序設(shè)計30classch0207{publicstaticvoidmain(Stringargs[]){Objecto=”anexample”;charc[]={‘a(chǎn)’,’b’,’c’,’d’,’e’};byteb[]={‘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);System.out.println(“astudent”);System.out.println(o);System.out.println(c);System.out.println();System.out.write(b[0]);System.out.flush();}}*Java程序設(shè)計312.標準輸入方法鍵盤是標準輸入設(shè)備,用戶通常用鍵盤輸入數(shù)據(jù)。System類含有標準輸入流的成員變量in,可以調(diào)用它的read方法來讀取鍵盤數(shù)據(jù)。輸入比輸出更容易出錯。一個錯誤的輸入將會導(dǎo)致程序的崩潰(程序中斷或退出)。程序運行時發(fā)生的錯誤稱為異常。

*Java程序設(shè)計32classch0208{publicstaticvoidmain(Stringargs[])throwsjava.io.IOException{charc;System.out.println(“Pleaseinputachar:”);c=(char)System.in.read();//從標準輸入讀入一個字節(jié)的信息并返回給一個字符變量

System.out.println(“Receivechar=”+c);}}*Java程序設(shè)計332.5.2流式交互輸入輸出importjava.io.*;publicclassch0211{publicstaticvoidmain(String[]args)throwsIOException{InputStreamReaderreader=newInputStreamReader(System.in);BufferedReaderinput=newBufferedReader(reader);/*System.in代表系統(tǒng)缺省的標準輸入(即鍵盤),首先把它轉(zhuǎn)換成InputStreamReader類的對象reader,然后轉(zhuǎn)換成BufferedReader類的對象input,使原來的比特輸入變成緩沖字符輸入*/System.out.print(“Enteryourname:”);Stringname=input.readLine();/*readLine()方法讀取用戶從鍵盤輸入的一行字符并賦值給字符串對象name*/System.out.println(“Hello,”+name+”!”);//字符串回顯示在屏幕上}}*Java程序設(shè)計34

從鍵盤輸入直到屏幕輸出,涉及System.in、reader、input、name和System.out5個對象,其中System.in和System.out在系統(tǒng)類System中定義。除了name對象,其他對象在系統(tǒng)中負責傳遞字節(jié)的字符,這些對象被稱為流對象。就像一條水流,數(shù)據(jù)在它們當中按照一定的順序流動。

*Java程序設(shè)計352.5.3GUI圖形界面輸入方法

importjavax.swing.JOptionPane;//import語句用于加載類庫

publicclassch0212{publicstaticvo

溫馨提示

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

最新文檔

評論

0/150

提交評論