




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Java實用教程新版新版Java 培訓教程教程 JavaJavaJavaJavaJava實用教程目目 錄錄 第第1章章 Java環境及配置環境及配置第第2章章 Java基本語法基本語法 第第3章章 類和接口類和接口 第第4章章 Java Applet 第第5章章 Java圖形處理圖形處理 第第6章章 Java用戶界面技術用戶界面技術 第第7章章 異常、事件和多線程機制異常、事件和多線程機制 第第8章章 輸入輸出技術輸入輸出技術 第第9章章 Java數據庫技術數據庫技術 第第10章章 Java安全技術安全技術 第第11章章 Java網絡技術網絡技術(一一) 第第12章章 Java網絡技術網絡技術
2、(二二)第第13章章 Servlet技術技術 第第14章章 Java讀寫讀寫XML技術技術Java實用教程第1章Java環境及配置 1.1 Java概述概述1.2 Java語言的特點語言的特點1.3 Java應用分類應用分類1.4 JDK包的下載與安裝包的下載與安裝1.5 Java環境配置環境配置1.6 例子程序例子程序習習 題題 Java實用教程1.1 Java 概概 述述 Java是一種編程語言,它提供了一個同時用于程序開發、應用和部署的環境。Java語言主要定位于網絡編程,使得程序可以最大限度地利用網絡資源。 Java實用教程1.2 Java 語語 言言 的的 特特 點點 1. 跨平臺性
3、跨平臺性 所謂的跨平臺性,是指軟件可以不受計算機硬件和操作系統的約束而在任意計算機環境下正常運行。這是軟件發展的趨勢和編程人員追求的目標。之所以這樣說,是因為計算機硬件的種類繁多,操作系統也各不相同,不同的用戶和公司有自己不同的計算機環境偏好,而軟件為了能在這些不同的環境里正常運行,就需要獨立于這些平臺。Java實用教程 而在Java語言中,Java自帶的虛擬機很好地實現了跨平臺性。Java源程序代碼經過編譯后生成二進制的字節碼是與平臺無關的,但是可被Java虛擬機識別的一種機器碼指令。Java虛擬機提供了一個字節碼到底層硬件平臺及操作系統的屏障,使得Java語言具備跨平臺性。Java實用教程
4、 2. 面向對象面向對象 面向對象是指以對象為基本粒度,其下包含屬性和方法。對象的說明用屬性表達,而通過使用方法來操作這個對象。面向對象技術使得應用程序的開發變得簡單易用,節省代碼。Java是一種面向對象的語言,也繼承了面向對象的諸多好處,如代碼擴展、代碼復用等。Java實用教程 3. 安全性安全性 安全性可以分為四個層面,即語言級安全性、編譯時安全性、運行時安全性、可執行代碼安全性。 語言級安全性指Java的數據結構是完整的對象,這些封裝過的數據類型具有安全性。編譯時要進行Java語言和語義的檢查,保證每個變量對應一個相應的值,編譯后生成Java類。運行時Java類需要類加載器載入,并經由字
5、節碼校驗器校驗之后才可以運行。Java類在網絡上使用時,對它的權限進行了設置,保證了被訪問用戶的安全性。Java實用教程 4. 多線程多線程 多線程在操作系統中已得到了最成功的應用。多線程是指允許一個應用程序同時存在兩個或兩個以上的線程,用于支持事務并發和多任務處理。Java除了內置的多線程技術之外,還定義了一些類、方法等來建立和管理用戶定義的多線程。Java實用教程 5. 簡單易用簡單易用 Java源代碼的書寫不拘泥于特定的環境,可以用記事本、文本編輯器等編輯軟件來實現,然后將源文件進行編譯,編譯通過后可直接運行,通過調試則可得到想要的結果。Java實用教程1.3 Java 應應 用用 分分
6、 類類 1. 應用程序應用程序 典型的通用程序可以在具備Java運行環境的設備中獨立運行,它又分為: GUI應用程序:即圖形用戶界面程序,可實現豐富的輸入界面和輸出顯示。 命令行程序:無需界面,只需在命令行下運行,運行結果只在后臺發生變化,可以將輸出存放到文件中。 嵌入式應用程序:Java語言的平臺獨立性決定了它可以嵌入到不同的設備中,且只需具備必要的運行環境即可。Java實用教程 2. Servlets服務器端應用程序服務器端應用程序 服務器端的應用程序用來收集客戶端的數據輸入,對數據進行處理之后,返回相應的響應給客戶。它主要用來實現與客戶端的交互。Java實用教程 3. Applets小應
7、用程序小應用程序 Applets應用于網絡上,嵌入在HTML網頁中,支持Java的瀏覽器都可以對它進行解釋并運行。通常通過一個HTML標簽來識別并運行Applets。小應用程序的類在服務器端,當瀏覽器顯示網頁時,它隨之下載到本地,由本地的瀏覽器載入運行。Java實用教程1.4 JDK包的下載與安裝包的下載與安裝 Java Develop Kit簡稱為JDK,是Sun公司免費發行的軟件包,可以從Sun網站http:/免費下載,也可以從其它國內地址下載。JDK版本從1.02開始,目前版本發展到1.4,其中高級版本對低級版本實現向下兼容。運用這個軟件包,就可以對Java源程序進行編譯和運行。本書中下
8、載使用的JDK包為j2sdk-1_4_0_012-windows-i586.exe。 下載后雙擊圖標,即可進行安裝,默認的安裝目錄為C:j2sdk1.4.0_01。本書作者將安裝目錄改為D:j2sdk1.4.0_01。Java實用教程1.5 Java 環環 境境 配配 置置 JDK包安裝完成后,需要設置環境變量。用鼠標右鍵單擊桌面上的圖標“我的電腦”,選擇“屬性”項,出現標題為“系統特性”的對話框,點擊“高級”標簽,可以看見有一個“環境變量”按鈕,如圖1.1所示。Java實用教程圖1.1 “系統特性”對話框Java實用教程 單擊“環境變量”按鈕,可以看見本機環境變量,如圖1.2所示。上面為用戶
9、變量,下面為系統變量,隨著操作系統或用戶環境的不同,變量名、值有所不同。這里需要修改三個用戶變量:include、lib和path,分別將JDK包安裝之后的相應路徑包含到這三個用戶變量中。Java實用教程圖1.2 “環境變量”對話框Java實用教程 選中include變量,單擊“編輯”按鈕,彈出標題為“編輯用戶變量”的對話框,如圖1.3所示。在變量值一欄的最后添加“; D:j2sdk1.4.0_01include”,“;”表示與前面的各項隔開,后面的路徑是JDK包的安裝路徑下的include目錄。圖1.3為作者修改include變量的情況,注意你的安裝路徑可能與作者的有所不同,要以你的安裝路徑
10、為基準進行修改。Java實用教程圖1.3 編輯include變量Java實用教程 選中lib變量,單擊“編輯”按鈕,彈出標題為“編輯用戶變量”的對話框,如圖1.4所示。在變量值一欄的最后添加“; D:j2sdk1.4.0_01lib”,“;”表示與前面的各項隔開,后面的路徑是JDK包的安裝路徑下的lib目錄。圖1.4為作者修改lib變量的情況,注意你的安裝路徑可能與作者的有所不同,要以你的安裝路徑為基準進行修改。Java實用教程圖1.4 編輯lib變量Java實用教程 選中path變量,單擊“編輯”按鈕,彈出標題為“編輯用戶變量”的對話框,如圖1.5所示。在變量值一欄的最后添加“; D:j2s
11、dk1.4.0_01bin”,“;”表示與前面的各項隔開,后面的路徑是JDK包的安裝路徑下的bin目錄。圖1.5為作者修改path變量的情況,注意你的安裝路徑可能與作者的有所不同,同樣要以你的安裝路徑為基準進行修改。Java實用教程圖1.5 編輯path變量Java實用教程1.6 例例 子子 程程 序序 【例1.1】源程序名稱為HelloWorld.java,命令行提示符下輸出字符串“Hello World”。源代碼如下:/程序文件名稱為HelloWorld.javapublic class HelloWorldpublic static void main(String args)Syste
12、m.out.println(Hello World);Java實用教程 用記事本或者專用的編輯工具如EditPlus等進行編輯,并將文件存為HelloWorld.java。建議使用像EditPlus這樣的編輯軟件,可使得代碼更加清晰且風格良好。 運行“開始”菜單程序附件命令提示符,載入命令行程序,在命令行狀態下,進入源程序所在的目錄,圖1.6所示的例子程序的目錄在“E:_WorkJavasample”下,然后鍵入命令“javac HelloWorld.java”。若編譯不通過,會產生錯誤提示。若編譯通過,則沒有任何提示,同時進入命令行等待狀態,如圖1.6所示。這時,命令行雖然沒有提示,但在源程
13、序的路徑下生成一個新的文件為HelloWorld.class。這個.class文件就是編譯后生成的類文件,運行此文件,需在命令行狀態中鍵入命令“java HelloWorld”,然后按回車鍵,此時程序就會運行并輸出“Hello World”。輸出完畢,立即退出程序,進入命令行等待狀態,如圖1.7所示。Java實用教程圖1.6 編譯源程序HelloWorldJava實用教程圖1.7 運行HelloWorld應用程序Java實用教程 這里用到的命令Javac和Java都是JDK軟件包自帶的。從JDK安裝路徑的bin目錄下可以看到javac.exe,這是編譯程序,源程序編譯通過后就生成.class文
14、件;而Java.exe就是載入類的運行程序,運行時根據源程序的指令要求產生正確的輸出或結果。如果沒有進行環境配置,直接編譯或者運行Java源程序,系統會提示找不到這些命令,所以必須進行環境配置后再使用。Java實用教程 【例1.2】小應用程序的例子。輸出“Hello World!”,如圖1.8所示。源程序代碼如下:/程序文件名稱為HelloApplet.javaimport java.awt.Graphics;import java.applet.Applet;public class HelloApplet extends Appletpublic void paint (Graphics
15、g )g.drawString (Hello World!,50,25);Java實用教程 小應用程序代碼書寫和編譯完成后,無法獨立運行,需要一個載體或者容器。下面的HTML網頁代碼就是小應用程序載入的容器。HTML Test PageJava實用教程HelloApplet will appear below in a Java enabled browser.Java實用教程圖1.8 Applet顯示“Hello World!”Java實用教程習習 題題1. 簡述Java的特點。2. 簡述Java的分類情況。3. 進行Java環境的安裝和配置。4. 編寫應用程序,屏幕上輸出“歡迎來到Java
16、世界!”。5. 編寫Applet,輸出“歡迎來到Java世界!”。Java實用教程第2章 Java基本語法 2.1 Java程序的構成程序的構成 2.2 數據類型、變量和常量數據類型、變量和常量 2.3 運算符和表達式運算符和表達式 2.4 流程控制流程控制 2.5 數組的使用數組的使用 習習 題題 Java實用教程2.1 Java程序的構成程序的構成2.1.1 邏輯構成邏輯構成 Java源程序邏輯構成分為兩大部分:程序頭包的引用和類的定義。 1. 程序頭包的引用程序頭包的引用 主要是指引用JDK軟件包自帶的包,也可以是自己定義的類。引用之后程序體中就可以自由應用包中的類的方法和屬性等。Jav
17、a實用教程 2. 類的定義類的定義 Java源程序中可以有多個類的定義,但必須有一個主類,這個主類是Java程序運行的入口點。在應用程序中,主類為包含main方法的類;在Applet中,主類為用戶自定義的系統Applet類的擴展類。在Java源程序中,主類的名字同文件名一致。 類的定義又包括類頭聲明和類體定義。類體中包括屬性聲明和方法描述。下面來看一個例子,其中斜體表示的語句行為主類類頭,主類類頭下面從大括號“”開始到“”結束的部分稱為主類類體。Java實用教程 【例2.1】下面是一個應用程序,也是一個Applet,既可以在命令行下運行,也可以嵌入到HTML網頁中用appletviewer命令
18、運行。運行時在界面上的第一個文本框中輸入你的名字,按回車鍵后,在第二個文本框中會顯示“XXX,歡迎你來到Java世界!”,運行結果如圖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;TextFieldlblName; La
19、bel屬 性 r(this);ionListeneame.addAct txtNp);add(txtDis e);add(txtNam e);add(lblNam 20);TextField(new isp txtD8);TextField(new ame txtN);new Label( lblName init() voidpublic請輸入您的名字init方法 Java實用教程);Java getText()t(txtName.isp.setTex txtDe)onEvent ormed(ActiactionPerf voidpublic世界歡迎你來到actionPerformed方法
20、Java實用教程 a.start(); f.show(); 400,300);f.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 Frargs) gmain(Strin voidstatic public歡迎main主方法 Java實用教程圖2.1 程序界面 J
21、ava實用教程2.1.2 物理構成物理構成 Java源程序物理上由三部分構成,分別為語句、塊和空白。 (1) 語句指一行以分號“;”結束的語句。 (2) 塊指用括號對界定的語句序列,塊可以嵌套使用。 (3) 空白指語句之間、塊內部或者塊之間的空白行。空白不影響Java源程序的編譯和運行,適當地運用空白,可以形成良好的代碼風格。Java實用教程在例1.1中,Label lblName;TextField txtName;TextField txtDisp;都是語句,而lblName = new Label(請輸入您的名字:);txtName = new TextField(8);txtDisp
22、= new TextField(20);add(lblName);add(txtName);add(txtDisp);txtName.addActionListener(this);是塊,語句之間、塊之間或塊內部的空行都為空白。Java實用教程2.1.3 注釋語句注釋語句 注釋語句主要用來進行一些說明,或者標記一些無用的程序語句。有兩種注釋方法,行注釋為以/開始的行;塊注釋以/*開始和*/結束,Java編譯器忽略注釋后的程序語句或說明。例如,下面的語句就是注釋語句用來說明程序文件名稱的。/程序文件名稱為WelcomeApplet.java上述的語句注釋可以更改為:/*程序文件名稱為Welcom
23、eApplet.java*/或/*程序文件名稱為WelcomeApplet.java*/Java實用教程2.1.4 標識符、關鍵字和轉義符標識符、關鍵字和轉義符 在Java語言中,標識符是賦予變量、類和方法等的名稱。標識符由編程者自己指定,但需要遵循一定的語法規范: (1) 標識符由字母、數字、下劃線(_)、美元符號($)組成,但美元符號用得較少。 (2) 標識符從一個字母、下劃線或美元符號開始。 (3) Java語言中,標識符大小寫敏感,必須區別對待。 (4) 標識符沒有最大長度的限制,但最好表達特定的意思。 (5) 標識符定義不能是關鍵字。Java實用教程 關鍵字又稱保留字,是指Java語
24、言中自帶的用于標志數據類型名或者程序構造名等的標識符,如public、double等。 轉義符是指一些有特殊含義的、很難用一般方式表達的字符,如回車、換行等。所有的轉義符以反斜線()開頭,后面跟著一個字符來表示某個特定的轉義符,如表2.1所示。Java實用教程表表2.1 轉轉 義義 符符引 用 方 法 含 義 b 退格 t 水平制表符 Tab n 換行 f 表格符 r 回車 單引號 雙引號 反斜線 Java實用教程2.2 數據類型、變量和常量數據類型、變量和常量2.2.1 數據類型數據類型 Java編程語言定義了八種基本的數據類型(見表2.2),共分為四類:整數類(byte、short、int
25、、long)、文本類(char)、浮點類(double、float)和邏輯類(boolean)。Java實用教程表表2.2 Java的數據類型的數據類型分 類 數據類型 關鍵字 占字節數 缺省數值 取 值 范 圍 字節型 byte 8 0 -2 72 7-1 短整型 short 16 0 -2 152 15-1 整型 int 32 0 -2 312 31-1 整數類 長整型 long 64 0 -2 632 63-1 文本類 字符型 char 16 u 0000 u 0000 u FFFF 浮點型 float 32 0.0F 浮點類 雙精度型 double 64 0.0D 邏輯類 邏輯型 bo
26、olean 8 False True、False Java實用教程1. 整數類整數類(1) 采用三種進制十進制、八進制和十六進制。2 十進制值是2;077 首位的0表示這是一個八進制的數值;0 xBAAC 首位的0 x表示這是一個十六進制的數值。(2) 具有缺省int。(3) 用字母“L”和“l”定義long。(4) 所有Java編程語言中的整數類型都是帶符號的數字。Java實用教程 2. 文本類文本類 (1) 代表一個16 bit Unicode字符。 (2) 必須包含用單引號( )引用的文字。 (3) 使用下列符號: a一個字符。 t-一個制表符。 u? -一個特殊的Unicode字符,?
27、應嚴格使用四個十六進制數進行替換。Java實用教程 3. 浮點類浮點類 默認為double類型,如果一個數字包括小數點或指數部分,或者在數字后帶有字母F或f(float)、D或d(double),則該數字為浮點數。Java實用教程4. 邏輯類邏輯類boolean數據類型有兩種值:true和false。例如:boolean flag = true;上述語句聲明變量flag為boolean 類型,它被賦予的值為true。Java實用教程2.2.2 變量與常量變量與常量 常量是指整個運行過程中不再發生變化的量,例如數學中的= 3.1415,在程序中需要設置成常量。而變量是指程序的運行過程中發生變化的
28、量,通常用來存儲中間結果,或者輸出臨時值。 變量的聲明也指變量的創建。執行變量聲明語句時,系統根據變量的數據類型在內存中開辟相應的存儲空間并賦予初始值。變量有一個作用范圍,超出它聲明語句所在的塊就無效。Java實用教程 下面看一個使用各種類型變量聲明并改變的示例。程序中pi為常量,s1、i1、l1、ch1、f1、d1、b1為全局變量,可以在方法change中發生改變,然后在方法main中輸出。而s2、i2、l2、ch2、f2、d2、b2是方法main的局部變量,它們的作用范圍只局限于方法main中。 【例2.2】測試不同數據類型的變量,程序輸出如圖2.2所示。源程序代碼如下:/程序文件名稱為S
29、etVariable.javapublic class SetVariable/全局變量Java實用教程static double pi = 3.141592654;/數學常量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實用教程/局部變量short s2 = 35;int i2 = -32;long l2 = 34555L;char ch
30、2 = A;float f2 = 897.89F;double d2 = 34.345;boolean b2 = false;/輸出常量System.out.println(數學常量pi = + pi); /輸出局部變量Java實用教程System.out.println(*局部變量*);System.out.println(短整型變量s2 = + s2);System.out.println(整型變量i2 = + i2);System.out.println(長整型變量l2 = + l2);System.out.println(字符變量ch2 = + ch2);System.out.prin
31、tln(浮點數類型f2 = + f2);System.out.println(雙精度型變量d2 = + d2);System.out.println(布爾型變量b2 = + b2); /調用方法修改全局變量的值Java實用教程change();/輸出全局變量的值System.out.println(*全局變量*);System.out.println(短整型變量s1 = + s1);System.out.println(整型變量i1 = + i1);System.out.println(長整型變量l1 = + l1);System.out.println(字符變量ch1 = + ch1);Sy
32、stem.out.println(浮點數類型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;d1 = -1.04E-5;b1 = true; Java實用教程圖2.2 變量輸出結果Java實用教程2.3 運算符和表達式運算符和表達式 Java常用的運算符分為五類:算術運算符、
33、賦值運算符、關系運算符、布爾邏輯運算符、位運算符。位運算符除了簡單的按位操作外,還有移位操作。按位操作返回布爾值。 表達式是由常量、變量、對象、方法調用和操作符組成的式子。表達式必須符合一定的規范,才可被系統理解、編譯和運行。表達式的值就是對表達式自身運算后得到的結果。 根據運算符的不同,表達式相應地分為以下幾類:算術表達式、關系表達式、邏輯表達式、賦值表達式,這些都屬于數值表達式。Java實用教程2.3.1 算術運算符及算術表達式算術運算符及算術表達式Java中常用的算術運算符如下:+加運算符-減運算符*乘運算符/除運算符%取模運算(除運算的余數)+增量運算符 -減量運算符 Java實用教程
34、 【例例2.3】測試運算符及表達式,程序輸出如圖2.3所示。源程序代碼如下:/程序文件名稱為NumberOper.javapublic class NumberOperpublic static void main(String args)/變量初始化int a = 30;int b = 20;/定義結果變量int r1,r2,r3,r4,r5,r6,r7,r8,r9;/計算結果r1 = a + b;Java實用教程r2 = a-b;r3 = a * b;r4 = a / b;r5 = a % b;r6 = a +;r7 = b-;r8 = + a;r9 = - b;/輸出結果System.o
35、ut.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 = + r4);System.out.println(a%b = + r5);System.out.println(a+ = + r6);System.out.println(b- = + r7);System.out.println(+a = + r8);System.out
36、.println(-b = + r9); Java實用教程圖2.3 程序輸出結果Java實用教程2.3.2 關系運算符關系運算符 關系運算符用于比較兩個數據之間的大小關系,關系運算表達式返回布爾值,即“真”或“假”。Java中的常用關系運算符如下:= =等于! =不等于大于=大于等于 b;r4 = a = b;r6 = a b = + r3);System.out.println(a=b = + r5);System.out.println(a=b = + r6); Java實用教程圖2.4 程序輸出結果Java實用教程2.3.3 布爾邏輯運算符布爾邏輯運算符表表2.3 布爾運算符及規則布爾運
37、算符及規則運算符 含 義 示 例 規 則 ! 取反 ! a a 為真時,結果為假;a 為假時,結果為真 & 非簡潔與 a & b a、b 都為真時,結果為真;a、b 有一個為假時,結果為假 | 非簡潔或 a | b a、b 有一個為真時,結果為真;a、b 都為假時,結果為假 異或 a b a、b 不同真假時結果為真;a、b 同真或同假時,結果為假 & 簡潔與 a & b a、b 都為真時,結果為真;a、b 有一個為假時,結果為假 | 簡潔或 a | b a、b 有一個為真時,結果為真;a、b 都為假時,結果為假 Java實用教程 圖2.3為布爾邏輯運算符及其規則
38、示例等。其中簡潔與和簡潔或的執行結果分別與非簡潔與和非簡潔或的執行結果是一致的,不同在于簡潔與檢測出符號左端的值為假時,不再判斷符號右端的值,直接將運算結果置為假;而簡潔或與非簡潔或的不同在于簡潔或檢測出符號左端為真時,不再判斷符號右端的值,直接將運算結果置為真。例如:Boolean a = false;Boolean b = true; a & b檢測到a為假,則無需判斷b的值,直接將值置為假;而b | a時檢測到b為真,則無需判斷a的值,直接將值置為真。Java實用教程 【例2.5】測試布爾表達式,程序輸出結果如圖2.5所示。源程序代碼如下:/程序文件名稱為TestLogic.ja
39、vapublic class TestLogicpublic static void main(String args)/變量初始化boolean a = false;boolean b = true;/定義結果變量boolean r1,r2,r3,r4,r5,r6;/計算結果Java實用教程r1 = !a;r2 = a & b;r3 = a | b;r4 = a b;r5 = a & b;r6 = a | b;/輸出結果System.out.println(a = + a + b = + b);System.out.println(!a = + r1); System.out
40、.println(a&b = + r2);System.out.println(a|b = + r3);System.out.println(ab = + r4);System.out.println(a&b = + r5);System.out.println(a|b = + r6);Java實用教程圖2.5 程序輸出結果Java實用教程2.3.4 位運算符位運算符Java中的常用位運算符如下:位求反&按位與|按位或按位異或右移不帶符號右移 右移運算符對應的表達式為xa,運算的結果是操作數x被2的a次方來除,左移運算符對應的表達式為xa,運算的結果是操作數x乘以2的a
41、次方。Java實用教程 【例2.6】測試位運算符,程序輸出結果如圖2.6所示。源程序代碼如下:/程序文件名稱為TestBit.javapublic class TestBitpublic static void main(String args)/變量初始化int a = 36;int b = 2;/定義結果變量int r1,r2;Java實用教程/計算結果r1 = a b;r2 = a b = + r1); System.out.println(ab = + r2); Java實用教程圖2.6 程序輸出結果Java實用教程2.3.5 賦值運算符賦值運算符 賦值運算符分為簡單運算符和復雜運算符
42、。簡單運算符指“=”,而復雜運算符是指算術運算符、邏輯運算符、位運算符中的雙目運算符后面再加上“=”。表2.4列出Java常用的賦值運算符及其等價表達式。Java實用教程表表2.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 &= 與并賦值運算符 a &= b a =
43、a & b |= 或并賦值運算符 a |= b a = a | b = 或并賦值運算符 a = b a = a b = 左移并賦值運算符 a = b a = a = 右移并賦值運算符 a = b a = a b = 右移并賦值運算符 a = b a = a b Java實用教程2.3.6 其它操作符及其表達式其它操作符及其表達式 三目運算符(?:)相當于條件判斷,表達式x?y:z用于判斷x是否為真,如果為真,表達式的值為y,否則表達式的值為z。例如:int x = 5;int a = (x3)?5:3;則a的值為5。如果x = 2,則a的值為3。Java實用教程 對象運算符(insta
44、nceof)用來判斷一個對象是否屬于某個指定的類或其子類的實例,如果是,返回真(true),否則返回假(false)。 例如: boolean b = userObject instanceof Applet用來判斷userObject類是否是Applet類的實例。Java實用教程2.3.7 優先級優先級表表2.5 運算符優先級運算符優先級優先級 含義描述 運 算 符 結合性 1 分隔符 () ; , 2 單目運算、字符串運算 + - + - ! (類型轉換符) *右到左 3 算術乘除運算 * / % 左到右 4 算術加減運算 + - 左到右 5 移位運算 左到右 6 大小關系運算、類運算 =
45、 instanceof 左到右 7 相等關系運算 = = ! = 左到右 8 按位與,非簡潔與 & 左到右 9 按位異或運算 左到右 10 按位或,非簡潔或 | 左到右 11 簡潔與 & 左到右 12 簡潔或 | 左到右 13 三目條件運算 ?: *右到左 14 簡單、復雜賦值運算 = *= /= %= += = = = &= = |= *右到左 Java實用教程2.4 流流 程程 控控 制制 流程控制分為三種基本結構:順序結構、分支結構和循環結構。順序結構是指命令行順序執行,這是最常見的一個格式;分支結構是一種選擇結構,根據條件的值選擇不同的執行流程,可以得到不同的結
46、果。分支結構包括單分支語句(if-else語句)和多分支語句(switch語句);循環結構是指對于一些重復執行的語句,用戶指定條件或次數,由機器自動識別執行。循環結構包括次數循環語句(for語句)和條件循環語句(while語句)。Java實用教程2.4.1 分支語句分支語句分支語句分為兩類:單分支語句和多選語句。1. if-else語句語句if-else語句的基本格式為:if(布爾表達式)語句或塊1;else語句或塊2;Java實用教程 其中: (1) 布爾表達式返回值為true或false。 (2) 如果為true,則執行語句或塊1,執行完畢跳出if-else語句。 (3) 如果為false
47、,則跳過語句或塊1,然后執行else下的語句或塊2。Java實用教程 【例2.7】測試if-else語句,如果x10,則輸出x的值,并提示結果正確,否則輸出x= 10,提示結果不正確。程序輸出結果如圖2.7所示。源程序代碼如下:/程序文件名稱為TestIf.javapublic class TestIf/聲明全局變量xstatic int x;public static void main(String args)x = 12;if(x10)Java實用教程 System.out.println(x = + x + 結果正確);else System.out.println(x = 10 +
48、結果不正確);change();System.out.println(修改x的值之后);if(x10)System.out.println(x = + x + 結果正確);elseSystem.out.println(x = 10 + 結果不正確);Java實用教程/change方法:修改x的值public static void change()x = 5; Java實用教程圖2.7 程序輸出結果Java實用教程2. switch語句switch語句的基本格式為:switch(表達式1)case 表達式2: 語句或塊2; break;case表達式3: 語句或塊3; break;case 表
49、達式4: 語句或塊4; break;default: 語句或塊5; break;Java實用教程其中:(1) 表達式1的值必須與整型兼容。(2) case分支要執行的程序語句。(3) 表達式2、3、4是可能出現的值。(4) 不同的case分支對應著不同的語句或塊序列。 (5) break表示跳出這一分支。 Java實用教程 【例2.8】測試switch語句,當x=1、2、3時,分別打印1、2、3,x不為這三個值時,打印x的值。程序輸出結果如圖2.8所示。源程序代碼如下:/程序文件名稱為TestSwitch.javapublic class TestSwitchpublic static voi
50、d main(String args)/聲明變量xint x;x = 12; Java實用教程System.out.println(x=12時打印的值);choose(x);x = 3;System.out.println(x=3時打印的值);choose(x);/choose方法:switch語句結構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)
51、;break;default:System.out.println(x); Java實用教程圖2.8 程序輸出結果 Java實用教程2.4.2 for循環語句循環語句for循環語句實現已知次數的循環,其基本格式為:for(初始化表達式;測試表達式;步長)語句或塊;Java實用教程 其執行順序如下: (1) 首先運行初始化表達式。 (2) 然后計算測試表達式,如果表達式為true,執行語句或塊;如果表達式為false,退出for循環。 (3) 最后執行步長。 Java實用教程 【例2.9】用for循環統計1100(包括100)之間數的總和。程序輸出結果如圖2.9所示。源程序代碼如下:/程序文件名
52、稱為TestFor.javapublic class TestForpublic static void main(String args) int sum = 0; for(int i = 1; i=100; i+)sum += i; System.out.println(1到100(包括100)的數的總和為: + sum);Java實用教程圖2.9 程序輸出結果Java實用教程2.4.3 while循環語句循環語句 while循環語句實現受條件控制的循環,其基本格式為: while(布爾表達式) 語句或塊; 當布爾表達式為true時,執行語句或塊,否則跳出while循環。Java實用教程上
53、面for循環語句的例子改為while語句后如下所示:int sum = 0;int i = 1;while (i=100)sum += i; i+;System.out.println(1到100(包括100)的數的總和為: + sum);Java實用教程2.4.4 do語句語句do語句實現受條件控制的循環,其基本格式為:do語句或塊;while(布爾表達式)Java實用教程 先執行語句或塊,然后再判斷布爾表達式。與while語句不同,當布爾表達式一次都不為true時,while語句一開始判斷就跳出循環,不執行語句或塊,而在do語句中則要執行一次。上面那個例子改為do循環為: int sum
54、= 0; int i = 1; do sum += i; i+; while (i=100); System.out.println(1到100(包括100)的數的總和為: + sum);Java實用教程2.5 數數 組組 的的 使使 用用2.5.1 數組聲明數組聲明 數組的定義如下: (1) 首先是一個對象。 (2) 存放相同的數據類型,可以是原始數據類型或類類型。 (3) 所有的數組下標默認從0開始,而且訪問時不可超出定義的上限,否則會產生越界錯誤。Java實用教程 數組聲明時實際是創建一個引用,通過代表引用的這個名字來引用數組。數組聲明格式如下: 數據類型 標識符 例如: int a;/
55、聲明一個數據類型為整型的數組a pencil b;/聲明一個數據類型為pencil類的數組bJava實用教程2.5.2 創建數組創建數組 由于數組是一個對象,所以可以使用關鍵字new來創建一個數組,例如:a = new int10;/創建存儲10個整型數據的數組ab = new pencil20;/創建存儲20個pencil類數據的數組b 數組創建時,每個元素都按它所存放數據類型的缺省值被初始化,如上面數組a的值被初始化為0,也可以進行顯式初始化。在Java編程語言中,為了保證系統的安全,所有的變量在使用之前必須是初始化的,如果未初始化,編譯時會提示出錯。有兩種初始化數組的方式,分別如下:Ja
56、va實用教程(1) 創建數組后,對每個元素進行賦值。a0=5;a1=4;.a9 = 10;(2) 直接在聲明的時候就說明其值,例如:int a = 4,5,1,3,4,20,2;說明了一個長度為7的一維數組。Java實用教程 【例2.10】編寫程序測試數組,程序輸出結果如圖2.10所示。源程序代碼如下:/程序文件名稱為TestArray.javapublic class TestArraypublic static void main(String args)/聲明數組int a;char b;/創建數組Java實用教程a = new int3;b = new char2;/數組初始化for
57、(int i = 0; i3; i+)ai = i*3;b0 = a;b1 = b;/快速初始化數組int c = 0,1*3,2*3;/輸出結果System.out.print(數組an);Java實用教程for (int i = 0; i2; i+)System.out.print(bi + );System.out.print(n數組cn);for (int i = 0; i3; i+)System.out.print(ci + ); Java實用教程圖2.10 程序輸出結果Java實用教程習習 題題 1. 給出下列表達式的值。(1) 3+428 (2) abc&123|82*4
58、&488/4+2 (4) 2*4&02|4%2 2. 編寫程序,統計課程編號為1001、1002、2001和3001的平均成績并輸出。學生成績表如圖2.11所示。【每個課程編號的成績用數組存儲,讀取時循環操作】Java實用教程圖2.11 習題2.2的成績表Java實用教程 3. 根據上題得出的考生平均成績進行判斷,如果在90分以上,屏幕上輸出“課程編號為XXXX的考生平均成績為優”;在8090分之間輸出“課程編號為XXXX的考生平均成績為良”;在7080分之間輸出“課程編號為XXXX的考生平均成績為中”,在6070分之間輸出“課程編號為XXXX的考生平均成績為及格”;60分以下
59、輸出“課程編號為XXXX的考生平均成績為不及格”。 4. 編寫程序,用數組實現乘法小九九的存儲和輸出。【提示:采用多個一維數組。】Java實用教程第3章類和接口 3.1 類類 3.2 接口接口 3.3 常用數據結構及類常用數據結構及類 習習 題題 Java實用教程3.1 類類3.1.1 類的定義和聲明類的定義和聲明 Java編程語言是面向對象的,處理的最小的完整單元為對象。而現實生活中具有共同特性的對象的抽象就稱之為類。類由類聲明和類體構成,類體又由變量和方法構成。下面給出一個例子來看一下類的構成。 【例3.1】自定義一個apple類,在主類SetApple中創建實例并調用方法,輸出結果如圖3
60、.1所示。源程序代碼如下:Java實用教程/程序文件名為SetApple.javapublic class SetApplepublic static void main(String args)apple a = new apple();/創建apple類a.appleweight = 0.5;/實例變量賦值System.out.println(蘋果的重量為1兩);System.out.println(a.bite();/調用實例方法a.appleweight = 5;System.out.println(蘋果的重量為5兩);System.out.println(a.bite();Java實用教程/自定義類class apple/屬性long applecolor;/對應蘋果的顏色double appleweight;/蘋果的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 奶茶店倉庫管理制度
- 婦產科門禁管理制度
- 娛樂休閑館管理制度
- 學校qq群管理制度
- 學校傳習所管理制度
- 學校智能燈管理制度
- 學校綜合組管理制度
- 中職學生貸款管理制度
- 非融資擔保公司管理制度
- 做事無頭無尾管理制度
- 2025屆浙江省精誠聯盟高三下學期適應性聯考生物試題
- 《中央銀行數字貨幣基本知識》課件
- 2025浙江中考:化學必背知識點
- 2025年海南省中考模擬語文試題(含答案)
- 煙草行業智能化生產與監管方案
- 2025年山東省德州市樂陵市中考一模生物學試題(含答案)
- 2025遼寧沈陽水務集團有限公司招聘32人筆試參考題庫附帶答案詳解
- DB63-T 2135-2023 鹽湖資源動態監測技術規程
- 建筑行業現狀與發展趨勢
- 院外數據共享管理制度
- 陵園財務管理制度
評論
0/150
提交評論