經(jīng)典JAVA教程課件_第1頁
經(jīng)典JAVA教程課件_第2頁
經(jīng)典JAVA教程課件_第3頁
經(jīng)典JAVA教程課件_第4頁
經(jīng)典JAVA教程課件_第5頁
已閱讀5頁,還剩962頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Java實用教程 全全 新計新計 算算 機機 應(yīng)應(yīng) 用用 技技 術(shù)術(shù) 叢叢 書書 Java 實用教程實用教程 薛薛 亮亮 編著編著 西安電子科技大學(xué)出版社西安電子科技大學(xué)出版社 http:/ JavaJava JavaJava Java實用教程 目目 錄錄 第第1章章 Java環(huán)境及配置環(huán)境及配置 第第2章章 Java基本語法基本語法 第第3章章 類和接口類和接口 第第4章章 Java Applet 第第5章章 Java圖形處理圖形處理 第第6章章 Java用戶界面技術(shù)用戶界面技術(shù) 第第7章章 異常、事件和多線程機制異常、事件和多線程機制 第第8章章 輸入輸出技術(shù)輸入輸出技術(shù) 第第9章章 Ja

2、va數(shù)據(jù)庫技術(shù)數(shù)據(jù)庫技術(shù) 第第10章章 Java安全技術(shù)安全技術(shù) 第第11章章 Java網(wǎng)絡(luò)技術(shù)網(wǎng)絡(luò)技術(shù)(一一) 第第12章章 Java網(wǎng)絡(luò)技術(shù)網(wǎng)絡(luò)技術(shù)(二二) 第第13章章 Servlet技術(shù)技術(shù) 第第14章章 Java讀寫讀寫XML技術(shù)技術(shù) Java實用教程 第1章Java環(huán)境及配置 1.1 Java概述概述 1.2 Java語言的特點語言的特點 1.3 Java應(yīng)用分類應(yīng)用分類 1.4 JDK包的下載與安裝包的下載與安裝 1.5 Java環(huán)境配置環(huán)境配置 1.6 例子程序例子程序 習(xí)習(xí) 題題 Java實用教程 1.1 Java 概概 述述 Java是一種編程語言,它提供了一個同時用于程序

3、開發(fā)、 應(yīng)用和部署的環(huán)境。Java語言主要定位于網(wǎng)絡(luò)編程,使得程 序可以最大限度地利用網(wǎng)絡(luò)資源。 Java實用教程 1.2 Java 語語 言言 的的 特特 點點 1. 跨平臺性跨平臺性 所謂的跨平臺性,是指軟件可以不受計算機硬件和操作系 統(tǒng)的約束而在任意計算機環(huán)境下正常運行。這是軟件發(fā)展的趨 勢和編程人員追求的目標。之所以這樣說,是因為計算機硬件 的種類繁多,操作系統(tǒng)也各不相同,不同的用戶和公司有自己 不同的計算機環(huán)境偏好,而軟件為了能在這些不同的環(huán)境里正 常運行,就需要獨立于這些平臺。 Java實用教程 而在Java語言中,Java自帶的虛擬機很好地實現(xiàn)了跨平臺 性。Java源程序代碼經(jīng)過

4、編譯后生成二進制的字節(jié)碼是與平臺 無關(guān)的,但是可被Java虛擬機識別的一種機器碼指令。Java虛 擬機提供了一個字節(jié)碼到底層硬件平臺及操作系統(tǒng)的屏障,使 得Java語言具備跨平臺性。 Java實用教程 2. 面向?qū)ο竺嫦驅(qū)ο?面向?qū)ο笫侵敢詫ο鬄榛玖6?,其下包含屬性和方法?對象的說明用屬性表達,而通過使用方法來操作這個對象。面 向?qū)ο蠹夹g(shù)使得應(yīng)用程序的開發(fā)變得簡單易用,節(jié)省代碼。 Java是一種面向?qū)ο蟮恼Z言,也繼承了面向?qū)ο蟮闹T多好處, 如代碼擴展、代碼復(fù)用等。 Java實用教程 3. 安全性安全性 安全性可以分為四個層面,即語言級安全性、編譯時安全 性、運行時安全性、可執(zhí)行代碼安全性。

5、 語言級安全性指Java的數(shù)據(jù)結(jié)構(gòu)是完整的對象,這些封裝 過的數(shù)據(jù)類型具有安全性。編譯時要進行Java語言和語義的檢 查,保證每個變量對應(yīng)一個相應(yīng)的值,編譯后生成Java類。運 行時Java類需要類加載器載入,并經(jīng)由字節(jié)碼校驗器校驗之后 才可以運行。Java類在網(wǎng)絡(luò)上使用時,對它的權(quán)限進行了設(shè)置, 保證了被訪問用戶的安全性。 Java實用教程 4. 多線程多線程 多線程在操作系統(tǒng)中已得到了最成功的應(yīng)用。多線程是指 允許一個應(yīng)用程序同時存在兩個或兩個以上的線程,用于支持 事務(wù)并發(fā)和多任務(wù)處理。Java除了內(nèi)置的多線程技術(shù)之外,還 定義了一些類、方法等來建立和管理用戶定義的多線程。 Java實用教

6、程 5. 簡單易用簡單易用 Java源代碼的書寫不拘泥于特定的環(huán)境,可以用記事本、 文本編輯器等編輯軟件來實現(xiàn),然后將源文件進行編譯,編譯 通過后可直接運行,通過調(diào)試則可得到想要的結(jié)果。 Java實用教程 1.3 Java 應(yīng)應(yīng) 用用 分分 類類 1. 應(yīng)用程序應(yīng)用程序 典型的通用程序可以在具備Java運行環(huán)境的設(shè)備中獨立運 行,它又分為: GUI應(yīng)用程序:即圖形用戶界面程序,可實現(xiàn)豐富的輸入 界面和輸出顯示。 命令行程序:無需界面,只需在命令行下運行,運行結(jié)果 只在后臺發(fā)生變化,可以將輸出存放到文件中。 嵌入式應(yīng)用程序:Java語言的平臺獨立性決定了它可以嵌 入到不同的設(shè)備中,且只需具備必要

7、的運行環(huán)境即可。 Java實用教程 2. Servlets服務(wù)器端應(yīng)用程序服務(wù)器端應(yīng)用程序 服務(wù)器端的應(yīng)用程序用來收集客戶端的數(shù)據(jù)輸入,對數(shù)據(jù) 進行處理之后,返回相應(yīng)的響應(yīng)給客戶。它主要用來實現(xiàn)與客 戶端的交互。 Java實用教程 3. Applets小應(yīng)用程序小應(yīng)用程序 Applets應(yīng)用于網(wǎng)絡(luò)上,嵌入在HTML網(wǎng)頁中,支持Java的 瀏覽器都可以對它進行解釋并運行。通常通過一個HTML標簽 來識別并運行Applets。小應(yīng)用程序的 類在服務(wù)器端,當瀏覽器顯示網(wǎng)頁時,它隨之下載到本地, 由本地的瀏覽器載入運行。 Java實用教程 1.4 JDK包的下載與安裝包的下載與安裝 Java Deve

8、lop Kit簡稱為JDK,是Sun公司免費發(fā)行的軟件包, 可以從Sun網(wǎng)站http:/免費下載,也可以從其它國 內(nèi)地址下載。JDK版本從1.02開始,目前版本發(fā)展到1.4,其中 高級版本對低級版本實現(xiàn)向下兼容。運用這個軟件包,就可以 對Java源程序進行編譯和運行。本書中下載使用的JDK包為 j2sdk-1_4_0_012-windows-i586.exe。 下載后雙擊圖標,即可進 行安裝,默認的安裝目錄為C:j2sdk1.4.0_01。本書作者將安裝 目錄改為D:j2sdk1.4.0_01。 Java實用教程 1.5 Java 環(huán)環(huán) 境境 配配 置置 JDK包安裝完成后,需要設(shè)置環(huán)境變量。

9、用鼠標右鍵單擊 桌面上的圖標“我的電腦”,選擇“屬性”項,出現(xiàn)標題為 “系統(tǒng)特性”的對話框,點擊“高級”標簽,可以看見有一個 “環(huán)境變量”按鈕,如圖1.1所示。 Java實用教程 圖1.1 “系統(tǒng)特性”對話框 Java實用教程 單擊“環(huán)境變量”按鈕,可以看見本機環(huán)境變量,如圖1.2 所示。上面為用戶變量,下面為系統(tǒng)變量,隨著操作系統(tǒng)或用戶 環(huán)境的不同,變量名、值有所不同。這里需要修改三個用戶變量: include、lib和path,分別將JDK包安裝之后的相應(yīng)路徑包含到這 三個用戶變量中。 Java實用教程 圖1.2 “環(huán)境變量”對話框 Java實用教程 選中include變量,單擊“編輯”按

10、鈕,彈出標題為“編輯 用戶變量”的對話框,如圖1.3所示。在變量值一欄的最后添加 “; D:j2sdk1.4.0_01include”,“;”表示與前面的各項隔開,后 面的路徑是JDK包的安裝路徑下的include目錄。圖1.3為作者修 改include變量的情況,注意你的安裝路徑可能與作者的有所不 同,要以你的安裝路徑為基準進行修改。 Java實用教程 圖1.3 編輯include變量 Java實用教程 選中l(wèi)ib變量,單擊“編輯”按鈕,彈出標題為“編輯用戶 變量”的對話框,如圖1.4所示。在變量值一欄的最后添加“; D:j2sdk1.4.0_01lib”,“;”表示與前面的各項隔開,后面的

11、路 徑是JDK包的安裝路徑下的lib目錄。圖1.4為作者修改lib變量的 情況,注意你的安裝路徑可能與作者的有所不同,要以你的安 裝路徑為基準進行修改。 Java實用教程 圖1.4 編輯lib變量 Java實用教程 選中path變量,單擊“編輯”按鈕,彈出標題為“編輯用 戶變量”的對話框,如圖1.5所示。在變量值一欄的最后添加“; D:j2sdk1.4.0_01bin”,“;”表示與前面的各項隔開,后面的路 徑是JDK包的安裝路徑下的bin目錄。圖1.5為作者修改path變量 的情況,注意你的安裝路徑可能與作者的有所不同,同樣要以 你的安裝路徑為基準進行修改。 Java實用教程 圖1.5 編輯

12、path變量 Java實用教程 1.6 例例 子子 程程 序序 【例1.1】源程序名稱為HelloWorld.java,命令行提示符下輸 出字符串“Hello World”。源代碼如下: /程序文件名稱為HelloWorld.java public class HelloWorld public static void main(String args) System.out.println(Hello World); Java實用教程 用記事本或者專用的編輯工具如EditPlus等進行編輯,并將 文件存為HelloWorld.java。建議使用像EditPlus這樣的編輯軟件, 可使得代碼更

13、加清晰且風(fēng)格良好。 運行“開始”菜單程序附件命令提示符,載入命令 行程序,在命令行狀態(tài)下,進入源程序所在的目錄,圖1.6所示 的例子程序的目錄在“E:_WorkJavasample”下,然后鍵入命令 “javac HelloWorld.java”。若編譯不通過,會產(chǎn)生錯誤提示。若 編譯通過,則沒有任何提示,同時進入命令行等待狀態(tài),如圖 1.6所示。這時,命令行雖然沒有提示,但在源程序的路徑下生 成一個新的文件為HelloWorld.class。這個.class文件就是編譯后 生成的類文件,運行此文件,需在命令行狀態(tài)中鍵入命令“java HelloWorld”,然后按回車鍵,此時程序就會運行并輸

14、出“Hello World”。輸出完畢,立即退出程序,進入命令行等待狀態(tài),如 圖1.7所示。 Java實用教程 圖1.6 編譯源程序HelloWorld Java實用教程 圖1.7 運行HelloWorld應(yīng)用程序 Java實用教程 這里用到的命令Javac和Java都是JDK軟件包自帶的。從 JDK安裝路徑的bin目錄下可以看到j(luò)avac.exe,這是編譯程序, 源程序編譯通過后就生成.class文件;而Java.exe就是載入類的 運行程序,運行時根據(jù)源程序的指令要求產(chǎn)生正確的輸出或結(jié) 果。如果沒有進行環(huán)境配置,直接編譯或者運行Java源程序, 系統(tǒng)會提示找不到這些命令,所以必須進行環(huán)境配

15、置后再使用。 Java實用教程 【例1.2】小應(yīng)用程序的例子。輸出“Hello World!”,如 圖1.8所示。源程序代碼如下: /程序文件名稱為HelloApplet.java import java.awt.Graphics; import java.applet.Applet; public class HelloApplet extends Applet public void paint (Graphics g ) g.drawString (Hello World!,50,25); Java實用教程 小應(yīng)用程序代碼書寫和編譯完成后,無法獨立運行,需要 一個載體或者容器。下面的HT

16、ML網(wǎng)頁代碼就是小應(yīng)用程序載 入的容器。 HTML Test Page Java實用教程 HelloApplet will appear below in a Java enabled browser. Java實用教程 圖1.8 Applet顯示“Hello World!” Java實用教程 習(xí)習(xí) 題題 1. 簡述Java的特點。 2. 簡述Java的分類情況。 3. 進行Java環(huán)境的安裝和配置。 4. 編寫應(yīng)用程序,屏幕上輸出“歡迎來到Java世界!”。 5. 編寫Applet,輸出“歡迎來到Java世界!”。 Java實用教程 第2章 Java基本語法 2.1 Java程序的構(gòu)成程序的

17、構(gòu)成 2.2 數(shù)據(jù)類型、變量和常量數(shù)據(jù)類型、變量和常量 2.3 運算符和表達式運算符和表達式 2.4 流程控制流程控制 2.5 數(shù)組的使用數(shù)組的使用 習(xí)習(xí) 題題 Java實用教程 2.1 Java程序的構(gòu)成程序的構(gòu)成 2.1.1 邏輯構(gòu)成邏輯構(gòu)成 Java源程序邏輯構(gòu)成分為兩大部分:程序頭包的引用和類 的定義。 1. 程序頭包的引用程序頭包的引用 主要是指引用JDK軟件包自帶的包,也可以是自己定義的類。 引用之后程序體中就可以自由應(yīng)用包中的類的方法和屬性等。 Java實用教程 2. 類的定義類的定義 Java源程序中可以有多個類的定義,但必須有一個主類, 這個主類是Java程序運行的入口點。在

18、應(yīng)用程序中,主類為包 含main方法的類;在Applet中,主類為用戶自定義的系統(tǒng)Applet 類的擴展類。在Java源程序中,主類的名字同文件名一致。 類的定義又包括類頭聲明和類體定義。類體中包括屬性聲 明和方法描述。下面來看一個例子,其中斜體表示的語句行為 主類類頭,主類類頭下面從大括號“”開始到“”結(jié)束的部分 稱為主類類體。 Java實用教程 【例2.1】下面是一個應(yīng)用程序,也是一個Applet,既可以 在命令行下運行,也可以嵌入到HTML網(wǎng)頁中用appletviewer命 令運行。運行時在界面上的第一個文本框中輸入你的名字,按 回車鍵后,在第二個文本框中會顯示“XXX,歡迎你來到Jav

19、a 世界!”,運行結(jié)果如圖2.1所示。 /程序文件名稱為WelcomeApplet.java 注釋語句 vent.*;java.awt.eimport ;java.awt.*import t.*;java.appleimport 引入包 public class WelcomeApplet extends Applet implements ActionListener 主類類頭 Java實用教程 txtDisp;TextField txtName;TextField lblName; Label 屬 性 r(this);ionListeneame.addAct txtN p);add(txt

20、Dis e);add(txtNam e);add(lblNam 20);TextField(new isp txtD 8);TextField(new ame txtN );new Label( lblName init() voidpublic 請輸入您的名字 init方法 Java實用教程 );Java getText()t(txtName.isp.setTex txtD e)onEvent ormed(ActiactionPerf voidpublic 世界歡迎你來到 actionPerformed 方法 Java實用教程 a.start(); f.show(); 400,300);f.

21、setSize( a);,Centerf.add( a.init(); let();WelcomeAppnew a let WelcomeApp ; t(0);System.exi evt)wEvent sing(Windo windowClo voidpublic ter()WindowAdapnew wListener(f.addWindo );new Frame( f ame Fr args) gmain(Strin voidstatic public 歡迎 main主方法 Java實用教程 圖2.1 程序界面 Java實用教程 2.1.2 物理構(gòu)成物理構(gòu)成 Java源程序物理上由三部分

22、構(gòu)成,分別為語句、塊和空白。 (1) 語句指一行以分號“;”結(jié)束的語句。 (2) 塊指用括號對界定的語句序列,塊可以嵌套使用。 (3) 空白指語句之間、塊內(nèi)部或者塊之間的空白行。空白 不影響Java源程序的編譯和運行,適當?shù)剡\用空白,可以形成 良好的代碼風(fēng)格。 Java實用教程 在例1.1中, Label lblName; TextField txtName; TextField txtDisp; 都是語句,而 lblName = new Label(請輸入您的名字:); txtName = new TextField(8); txtDisp = new TextField(20); add(

23、lblName); add(txtName); add(txtDisp); txtName.addActionListener(this); 是塊,語句之間、塊之間或塊內(nèi)部的空行都為空白。 Java實用教程 2.1.3 注釋語句注釋語句 注釋語句主要用來進行一些說明,或者標記一些無用的程 序語句。有兩種注釋方法,行注釋為以/開始的行;塊注釋以/* 開始和*/結(jié)束,Java編譯器忽略注釋后的程序語句或說明。 例如,下面的語句就是注釋語句用來說明程序文件名稱的。 /程序文件名稱為WelcomeApplet.java 上述的語句注釋可以更改為: /*程序文件名稱為WelcomeApplet.java

24、*/ 或 /* 程序文件名稱為 WelcomeApplet.java */ Java實用教程 2.1.4 標識符、關(guān)鍵字和轉(zhuǎn)義符標識符、關(guān)鍵字和轉(zhuǎn)義符 在Java語言中,標識符是賦予變量、類和方法等的名稱。 標識符由編程者自己指定,但需要遵循一定的語法規(guī)范: (1) 標識符由字母、數(shù)字、下劃線(_)、美元符號($)組成, 但美元符號用得較少。 (2) 標識符從一個字母、下劃線或美元符號開始。 (3) Java語言中,標識符大小寫敏感,必須區(qū)別對待。 (4) 標識符沒有最大長度的限制,但最好表達特定的意思。 (5) 標識符定義不能是關(guān)鍵字。 Java實用教程 關(guān)鍵字又稱保留字,是指Java語言中

25、自帶的用于標志數(shù)據(jù) 類型名或者程序構(gòu)造名等的標識符,如public、double等。 轉(zhuǎn)義符是指一些有特殊含義的、很難用一般方式表達的字 符,如回車、換行等。所有的轉(zhuǎn)義符以反斜線()開頭,后面跟 著一個字符來表示某個特定的轉(zhuǎn)義符,如表2.1所示。 Java實用教程 表表2.1 轉(zhuǎn)轉(zhuǎn) 義義 符符 引 用 方 法 含 義 b 退格 t 水平制表符 Tab n 換行 f 表格符 r 回車 單引號 雙引號 反斜線 Java實用教程 2.2 數(shù)據(jù)類型、變量和常量數(shù)據(jù)類型、變量和常量 2.2.1 數(shù)據(jù)類型數(shù)據(jù)類型 Java編程語言定義了八種基本的數(shù)據(jù)類型(見表2.2),共分為 四類:整數(shù)類(byte、sh

26、ort、int、long)、文本類(char)、浮點類 (double、float)和邏輯類(boolean)。 Java實用教程 表表2.2 Java的數(shù)據(jù)類型的數(shù)據(jù)類型 分 類 數(shù)據(jù)類型 關(guān)鍵字 占字節(jié)數(shù) 缺省數(shù)值 取 值 范 圍 字節(jié)型 byte 8 0 -2 72 7-1 短整型 short 16 0 -2 152 15-1 整型 int 32 0 -2 312 31-1 整數(shù)類 長整型 long 64 0 -2 632 63-1 文本類 字符型 char 16 u 0000 u 0000 u FFFF 浮點型 float 32 0.0F 浮點類 雙精度型 double 64 0.0D

27、 邏輯類 邏輯型 boolean 8 False True、False Java實用教程 1. 整數(shù)類整數(shù)類 (1) 采用三種進制十進制、八進制和十六進制。 2 十進制值是2; 077 首位的0表示這是一個八進制的數(shù)值; 0 xBAAC 首位的0 x表示這是一個十六進制的數(shù)值。 (2) 具有缺省int。 (3) 用字母“L”和“l(fā)”定義long。 (4) 所有Java編程語言中的整數(shù)類型都是帶符號的數(shù)字。 Java實用教程 2. 文本類文本類 (1) 代表一個16 bit Unicode字符。 (2) 必須包含用單引號( )引用的文字。 (3) 使用下列符號: a一個字符。 t-一個制表符。

28、u? -一個特殊的Unicode字符,?應(yīng)嚴格使用四個十 六進制數(shù)進行替換。 Java實用教程 3. 浮點類浮點類 默認為double類型,如果一個數(shù)字包括小數(shù)點或指數(shù)部分, 或者在數(shù)字后帶有字母F或f(float)、D或d(double),則該數(shù)字為 浮點數(shù)。 Java實用教程 4. 邏輯類邏輯類 boolean數(shù)據(jù)類型有兩種值:true和false。 例如:boolean flag = true; 上述語句聲明變量flag為boolean 類型,它被賦予的值為true。 Java實用教程 2.2.2 變量與常量變量與常量 常量是指整個運行過程中不再發(fā)生變化的量,例如數(shù)學(xué)中 的= 3.141

29、5,在程序中需要設(shè)置成常量。而變量是指程序 的運行過程中發(fā)生變化的量,通常用來存儲中間結(jié)果,或者輸 出臨時值。 變量的聲明也指變量的創(chuàng)建。執(zhí)行變量聲明語句時,系統(tǒng) 根據(jù)變量的數(shù)據(jù)類型在內(nèi)存中開辟相應(yīng)的存儲空間并賦予初始 值。變量有一個作用范圍,超出它聲明語句所在的塊就無效。 Java實用教程 下面看一個使用各種類型變量聲明并改變的示例。程序中pi 為常量,s1、i1、l1、ch1、f1、d1、b1為全局變量,可以在方法 change中發(fā)生改變,然后在方法main中輸出。而s2、i2、l2、ch2、 f2、d2、b2是方法main的局部變量,它們的作用范圍只局限于方 法main中。 【例2.2】

30、測試不同數(shù)據(jù)類型的變量,程序輸出如圖2.2所示。 源程序代碼如下: /程序文件名稱為SetVariable.java public class SetVariable /全局變量 Java實用教程 static double pi = 3.141592654;/數(shù)學(xué)常量 static short s1; static int i1; static long l1; static char ch1; static float f1; static double d1; static boolean b1; public static void main(String args) Java實用教程

31、 /局部變量 short s2 = 35; int i2 = -32; long l2 = 34555L; char ch2 = A; float f2 = 897.89F; double d2 = 34.345; boolean b2 = false; /輸出常量 System.out.println(數(shù)學(xué)常量pi = + pi); /輸出局部變量 Java實用教程 System.out.println(*局部變量*); System.out.println(短整型變量s2 = + s2); System.out.println(整型變量i2 = + i2); System.out.prin

32、tln(長整型變量l2 = + l2); System.out.println(字符變量ch2 = + ch2); System.out.println(浮點數(shù)類型f2 = + f2); System.out.println(雙精度型變量d2 = + d2); System.out.println(布爾型變量b2 = + b2); /調(diào)用方法修改全局變量的值 Java實用教程 change(); /輸出全局變量的值 System.out.println(*全局變量*); System.out.println(短整型變量s1 = + s1); System.out.println(整型變量i1

33、= + i1); System.out.println(長整型變量l1 = + l1); System.out.println(字符變量ch1 = + ch1); System.out.println(浮點數(shù)類型f1 = + f1); System.out.println(雙精度型變量d1 = + d1); System.out.println(布爾型變量b1 = + b1); Java實用教程 /方法:修改全局變量的值 public static void change() s1 = 125; i1 = 88; l1 = 987654321L; ch1 = B; f1 = 3.2590F;

34、d1 = -1.04E-5; b1 = true; Java實用教程 圖2.2 變量輸出結(jié)果 Java實用教程 2.3 運算符和表達式運算符和表達式 Java常用的運算符分為五類:算術(shù)運算符、賦值運算符、 關(guān)系運算符、布爾邏輯運算符、位運算符。位運算符除了簡單 的按位操作外,還有移位操作。按位操作返回布爾值。 表達式是由常量、變量、對象、方法調(diào)用和操作符組成的 式子。表達式必須符合一定的規(guī)范,才可被系統(tǒng)理解、編譯和 運行。表達式的值就是對表達式自身運算后得到的結(jié)果。 根據(jù)運算符的不同,表達式相應(yīng)地分為以下幾類:算術(shù)表 達式、關(guān)系表達式、邏輯表達式、賦值表達式,這些都屬于數(shù) 值表達式。 Java

35、實用教程 2.3.1 算術(shù)運算符及算術(shù)表達式算術(shù)運算符及算術(shù)表達式 Java中常用的算術(shù)運算符如下: +加運算符 -減運算符 *乘運算符 /除運算符 %取模運算(除運算的余數(shù)) +增量運算符 -減量運算符 Java實用教程 【例【例2.3】測試運算符及表達式,程序輸出如圖2.3所示。源 程序代碼如下: /程序文件名稱為NumberOper.java public class NumberOper public static void main(String args) /變量初始化 int a = 30; int b = 20; /定義結(jié)果變量 int r1,r2,r3,r4,r5,r6,r7

36、,r8,r9; /計算結(jié)果 r1 = a + b; Java實用教程 r2 = a-b; r3 = a * b; r4 = a / b; r5 = a % b; r6 = a +; r7 = b-; r8 = + a; r9 = - b; /輸出結(jié)果 System.out.println(a = + a + b = + b); /a,b的值 System.out.println(a+b = + r1); System.out.println(a-b = + r2); Java實用教程 System.out.println(a*b = + r3); System.out.println(a/b

37、= + r4); System.out.println(a%b = + r5); System.out.println(a+ = + r6); System.out.println(b- = + r7); System.out.println(+a = + r8); System.out.println(-b = + r9); Java實用教程 圖2.3 程序輸出結(jié)果 Java實用教程 2.3.2 關(guān)系運算符關(guān)系運算符 關(guān)系運算符用于比較兩個數(shù)據(jù)之間的大小關(guān)系,關(guān)系運算 表達式返回布爾值,即“真”或“假”。Java中的常用關(guān)系運 算符如下: = =等于 ! =不等于 大于 =大于等于 b; r

38、4 = a = b; r6 = a b = + r3); System.out.println(a=b = + r5); System.out.println(a=b = + r6); Java實用教程 圖2.4 程序輸出結(jié)果 Java實用教程 2.3.3 布爾邏輯運算符布爾邏輯運算符 表表2.3 布爾運算符及規(guī)則布爾運算符及規(guī)則 運算符 含 義 示 例 規(guī) 則 ! 取反 ! a a 為真時,結(jié)果為假;a 為假時,結(jié)果為真 Boolean b = true; a boolean b = true; /定義結(jié)果變量 boolean r1,r2,r3,r4,r5,r6; /計算結(jié)果 Java實用教

39、程 r1 = !a; r2 = a r3 = a | b; r4 = a b; r5 = a r6 = a | b; /輸出結(jié)果 System.out.println(a = + a + b = + b); System.out.println(!a = + r1); System.out.println(a System.out.println(a|b = + r3); System.out.println(ab = + r4); System.out.println(a System.out.println(a|b = + r6); Java實用教程 圖2.5 程序輸出結(jié)果 Java實用教

40、程 2.3.4 位運算符位運算符 Java中的常用位運算符如下: 位求反 int b = 2; /定義結(jié)果變量 int r1,r2; Java實用教程 /計算結(jié)果 r1 = a b; r2 = a b = + r1); System.out.println(ab = + r2); Java實用教程 圖2.6 程序輸出結(jié)果 Java實用教程 2.3.5 賦值運算符賦值運算符 賦值運算符分為簡單運算符和復(fù)雜運算符。簡單運算符指 “=”,而復(fù)雜運算符是指算術(shù)運算符、邏輯運算符、位運算符 中的雙目運算符后面再加上“=”。表2.4列出Java常用的賦值運 算符及其等價表達式。 Java實用教程 表表2.

41、4 賦值運算符及其等價表達式賦值運算符及其等價表達式 運算符 含 義 示 例 等價表達式 += 加并賦值運算符 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 int a = (x3)?5:3; 則a的值為5。如果x = 2,則a的值為3。 Java實用教程 對象運算符(instanceof)用來判斷一個對象是否屬于某個指 定的類或其子類的實例,如果是,返回真(true),否則返回假 (fal

42、se)。 例如: boolean b = userObject instanceof Applet 用來判斷userObject類是否是Applet類的實例。 Java實用教程 2.3.7 優(yōu)先級優(yōu)先級 表表2.5 運算符優(yōu)先級運算符優(yōu)先級 優(yōu)先級 含義描述 運 算 符 結(jié)合性 1 分隔符 () ; , 2 單目運算、字符串運算 + - + - ! (類型轉(zhuǎn)換符) *右到左 3 算術(shù)乘除運算 * / % 左到右 4 算術(shù)加減運算 + - 左到右 5 移位運算 左到右 6 大小關(guān)系運算、類運算 = instanceof 左到右 7 相等關(guān)系運算 = = ! = 左到右 8 按位與,非簡潔與 el

43、se 語句或塊2; Java實用教程 其中: (1) 布爾表達式返回值為true或false。 (2) 如果為true,則執(zhí)行語句或塊1,執(zhí)行完畢跳出if-else語 句。 (3) 如果為false,則跳過語句或塊1,然后執(zhí)行else下的語句 或塊2。 Java實用教程 【例2.7】測試if-else語句,如果x10,則輸出x的值,并提 示結(jié)果正確,否則輸出x= 10,提示結(jié)果不正確。程序輸出結(jié)果 如圖2.7所示。源程序代碼如下: /程序文件名稱為TestIf.java public class TestIf /聲明全局變量x static int x; public static void

44、main(String args) x = 12; if(x10) Java實用教程 System.out.println(x = + x + 結(jié)果正確); else System.out.println(x = 10 + 結(jié)果不正確); change(); System.out.println(修改x的值之后); if(x10) System.out.println(x = + x + 結(jié)果正確); else System.out.println(x = 10 + 結(jié)果不正確); Java實用教程 /change方法:修改x的值 public static void change() x =

45、 5; Java實用教程 圖2.7 程序輸出結(jié)果 Java實用教程 2. switch語句 switch語句的基本格式為: switch(表達式1) case 表達式2: 語句或塊2; break; case表達式3: 語句或塊3; break; case 表達式4: 語句或塊4; break; default: 語句或塊5; break; Java實用教程 其中: (1) 表達式1的值必須與整型兼容。 (2) case分支要執(zhí)行的程序語句。 (3) 表達式2、3、4是可能出現(xiàn)的值。 (4) 不同的case分支對應(yīng)著不同的語句或塊序列。 (5) break表示跳出這一分支。 Java實用教程

46、【例2.8】測試switch語句,當x=1、2、3時,分別打印1、2、 3,x不為這三個值時,打印x的值。程序輸出結(jié)果如圖2.8所示。 源程序代碼如下: /程序文件名稱為TestSwitch.java public class TestSwitch public static void main(String args) /聲明變量x int x; x = 12; Java實用教程 System.out.println(x=12時打印的值); choose(x); x = 3; System.out.println(x=3時打印的值); choose(x); /choose方法:switch語

47、句結(jié)構(gòu) public static void choose(int x) switch(x) Java實用教程 case 1: System.out.println(1); break; case 2: System.out.println(2); break; case 3: System.out.println(3); break; default: System.out.println(x); Java實用教程 圖2.8 程序輸出結(jié)果 Java實用教程 2.4.2 for循環(huán)語句循環(huán)語句 for循環(huán)語句實現(xiàn)已知次數(shù)的循環(huán),其基本格式為: for(初始化表達式;測試表達式;步長) 語句或塊

48、; Java實用教程 其執(zhí)行順序如下: (1) 首先運行初始化表達式。 (2) 然后計算測試表達式,如果表達式為true,執(zhí)行語句或 塊;如果表達式為false,退出for循環(huán)。 (3) 最后執(zhí)行步長。 Java實用教程 【例2.9】用for循環(huán)統(tǒng)計1100(包括100)之間數(shù)的總和。程 序輸出結(jié)果如圖2.9所示。源程序代碼如下: /程序文件名稱為TestFor.java public class TestFor public static void main(String args) int sum = 0; for(int i = 1; i=100; i+) sum += i; Syste

49、m.out.println(1到100(包括100)的數(shù)的總和為: + sum); Java實用教程 圖2.9 程序輸出結(jié)果 Java實用教程 2.4.3 while循環(huán)語句循環(huán)語句 while循環(huán)語句實現(xiàn)受條件控制的循環(huán),其基本格式為: while(布爾表達式) 語句或塊; 當布爾表達式為true時,執(zhí)行語句或塊,否則跳出while循 環(huán)。 Java實用教程 上面for循環(huán)語句的例子改為while語句后如下所示: int sum = 0; int i = 1; while (i=100) sum += i; i+; System.out.println(1到100(包括100)的數(shù)的總和為:

50、 + sum); Java實用教程 2.4.4 do語句語句 do語句實現(xiàn)受條件控制的循環(huán),其基本格式為: do 語句或塊; while(布爾表達式) Java實用教程 先執(zhí)行語句或塊,然后再判斷布爾表達式。與while語句不 同,當布爾表達式一次都不為true時,while語句一開始判斷就跳 出循環(huán),不執(zhí)行語句或塊,而在do語句中則要執(zhí)行一次。上面 那個例子改為do循環(huán)為: int sum = 0; int i = 1; do sum += i; i+; while (i=100); System.out.println(1到100(包括100)的數(shù)的總和為: + sum); Java實用教

51、程 2.5 數(shù)數(shù) 組組 的的 使使 用用 2.5.1 數(shù)組聲明數(shù)組聲明 數(shù)組的定義如下: (1) 首先是一個對象。 (2) 存放相同的數(shù)據(jù)類型,可以是原始數(shù)據(jù)類型或類類型。 (3) 所有的數(shù)組下標默認從0開始,而且訪問時不可超出定 義的上限,否則會產(chǎn)生越界錯誤。 Java實用教程 數(shù)組聲明時實際是創(chuàng)建一個引用,通過代表引用的這個名 字來引用數(shù)組。數(shù)組聲明格式如下: 數(shù)據(jù)類型 標識符 例如: int a;/聲明一個數(shù)據(jù)類型為整型的數(shù)組a pencil b;/聲明一個數(shù)據(jù)類型為pencil類的數(shù)組b Java實用教程 2.5.2 創(chuàng)建數(shù)組創(chuàng)建數(shù)組 由于數(shù)組是一個對象,所以可以使用關(guān)鍵字new來創(chuàng)建

52、一 個數(shù)組,例如: a = new int10;/創(chuàng)建存儲10個整型數(shù)據(jù)的數(shù)組a b = new pencil20;/創(chuàng)建存儲20個pencil類數(shù)據(jù)的數(shù)組b 數(shù)組創(chuàng)建時,每個元素都按它所存放數(shù)據(jù)類型的缺省值被 初始化,如上面數(shù)組a的值被初始化為0,也可以進行顯式初始 化。在Java編程語言中,為了保證系統(tǒng)的安全,所有的變量在 使用之前必須是初始化的,如果未初始化,編譯時會提示出錯。 有兩種初始化數(shù)組的方式,分別如下: Java實用教程 (1) 創(chuàng)建數(shù)組后,對每個元素進行賦值。 a0=5; a1=4; . a9 = 10; (2) 直接在聲明的時候就說明其值,例如: int a = 4,5,1

53、,3,4,20,2; 說明了一個長度為7的一維數(shù)組。 Java實用教程 【例2.10】編寫程序測試數(shù)組,程序輸出結(jié)果如圖2.10所示。 源程序代碼如下: /程序文件名稱為TestArray.java public class TestArray public static void main(String args) /聲明數(shù)組 int a; char b; /創(chuàng)建數(shù)組 Java實用教程 a = new int3; b = new char2; /數(shù)組初始化 for (int i = 0; i3; i+) ai = i*3; b0 = a; b1 = b; /快速初始化數(shù)組 int c = 0

54、,1*3,2*3; /輸出結(jié)果 System.out.print(數(shù)組an); Java實用教程 for (int i = 0; i2; i+) System.out.print(bi + ); System.out.print(n數(shù)組cn); for (int i = 0; i3; i+) System.out.print(ci + ); Java實用教程 圖2.10 程序輸出結(jié)果 Java實用教程 習(xí)習(xí) 題題 1. 給出下列表達式的值。 (1) 3+428 (2) abc/創(chuàng)建apple類 a.appleweight = 0.5;/實例變量賦值 System.out.println(蘋果的

55、重量為1兩); System.out.println(a.bite();/調(diào)用實例方法 a.appleweight = 5; System.out.println(蘋果的重量為5兩); System.out.println(a.bite(); Java實用教程 /自定義類 class apple /屬性 long applecolor;/對應(yīng)蘋果的顏色 double appleweight;/蘋果的重量 boolean eatup;/是否吃完 /類方法 public boolean bite() if (appleweight5000) str = 名字: + name + Salary: +

56、 salary; else str = 名字: + name + Salary: 低于5000; Java實用教程 return str; ; class Employee public String name;/名字 public int salary;/薪水 public static String getSalary(String name, int salary) String str; str = 名字: + name + Salary: + salary; return str; Java實用教程 public static String getSalary2(String nam

57、e, int salary) String str; str = 名字: + name + Salary: + salary; return str; ; Java實用教程 程序中定義了父類Employee類,它有兩個方法getSalary和 getSalary2,方法體的實現(xiàn)都是一致的,都為輸出名字和薪水 的值。在TextExtend主類中覆蓋了getSalary方法,方法體重新 定義為薪水低于5000時并不輸出薪水的值而是輸出“低于 5000”,用于和繼承的getSalary2方法進行比較。由圖3.2可以看 出覆蓋的方法按主程序中重定義的方法調(diào)用,而繼承的方法直 接調(diào)用父類中的方法。 Ja

58、va實用教程 圖3.2 測試單繼承性程序的輸出結(jié)果 Java實用教程 3.1.3 特殊變量特殊變量 類中有兩個特殊變量super和this。 1. super 類聲明中用關(guān)鍵字extends擴展了其超類之后,super用在擴 展類中引用其超類中的成員變量。 【例3.3】使用super變量,輸出結(jié)果如圖3.3所示。源程序 代碼如下: /程序文件名為UseSuper.java public class UseSuper Java實用教程 public static void main(String args) Manager m = new Manager(); = 王飛; m.sa

59、lary = 10000; m.department = 業(yè)務(wù)部; System.out.println(m.getSalary(); class Employee Java實用教程 public String name;/名字 public int salary;/薪水 /方法 public String getSalary() String str; str = 名字: + name + nSalary: + salary; return str; class Manager extends Employee Java實用教程 public String department;/部門 /方

60、法 public String getSalary() /使用super變量調(diào)用超類的方法 return super.getSalary() + nDepartment: + department; Java實用教程 圖3.3 測試super變量的輸出 Java實用教程 2. this this變量指向當前對象或?qū)嵗?str = 名字: + name + nSalary: + salary; 上例中的語句可以換成下面的語句。 str = 名字: + + nSalary: + this.salary; 這兩者是等同的,因為在Java編程語言中,系統(tǒng)自動將this 關(guān)鍵字與當

溫馨提示

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

評論

0/150

提交評論