




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Java語言程序設計 第1章 Java語言基礎Java語言的特點。 Java語言主要有以下特點:1) 強類型:強制約束程序員必須遵守更多的編程規(guī)定,編譯器能檢測程序中盡可能多的錯誤。2) 編譯和解釋:用Java編寫的源程序在計算機上運行必須經過編譯和解釋執(zhí)行兩個階段。編譯程序先江Java源程序翻譯成與機器無關的字節(jié)碼(bytecode),不是通常的編譯程序將源程序翻譯成特定計算機的機器代碼。運行時,由Java虛擬機(JVM)中的Java解釋器負責將字節(jié)碼文件解釋成為特定的機器碼進行運行。3) 自動無用內存回收功能:垃圾收集器(garbage collector)可以自動回收程序不再使用的內存,
2、避免程序遺漏或重復釋放內存。4) 面向對象5) 與平臺無關:與平臺無關是對程序可移植性最直接最有效的支持,“一次編程,到處運行”??梢浦残栽从趦煞矫妫?. Java的編譯和解釋的特征(Java虛擬機);2. Java采用基于國際標準的數(shù)據(jù)類型,在任何平臺上,同一種數(shù)據(jù)類型是一致的。6) 安全性:取消指針,避免因指針使用不當,訪問不該訪問的內存空間;提供數(shù)組下標檢測機制,禁止程序越界訪問內存;編譯執(zhí)行過程中進行比較嚴格的檢查:在解釋執(zhí)行前,對字節(jié)碼文件作檢查,防止被惡意改動的字節(jié)碼文件被解釋執(zhí)行而破壞系統(tǒng);瀏覽器限制下載的小應用程序不允許訪問本地文件,避免其破壞本地文件。7) 分布式計算8) 多
3、線程:Java的運行環(huán)境采用多線程實現(xiàn)。Java語言提供語言級多線程支持,用Java語言能直接編寫多線程程序。兩種類型的Java程序。 Java程序可分為應用程序(Application)和小應用程序(Applet)兩類。這兩種程序的主要區(qū)別:1) 小應用程序需要嵌入在HTML網(wǎng)頁中,當網(wǎng)頁被瀏覽時,在瀏覽器中運行;且其運行受到嚴格的安全限制。2) 應用程序則獨立運行,不嵌入網(wǎng)頁,也沒有那些限制。3) 另外,這兩類程序在代碼編寫上也有差異:一個小應用程序必須定義為java.applet.Applet類的子類,而不必定義main()方法;應用程序一般不必為java.applet.Applet類的
4、子類,而必須在一個類中定義main()方法。注釋:1) 行注釋/2) 塊注釋/* . */3) 文檔注釋/* */Java程序的開發(fā)過程 java編譯器java編譯器字節(jié)碼文件.class編寫源程序文件.javaJava編譯器字節(jié)碼文件.class由Web瀏覽器執(zhí)行有Java解釋器執(zhí)行應用程序Applet通常在JDK目錄下有bin、demo、lib、jre等子目錄,其中bin目錄保存了javac(編譯器)、java(解釋器)、jdb(調試器)、appletviewer(java Appelt解釋器)等命令文件;Java的字符集和標識符。 Java語言使用Unicode字符集,字符采用雙字節(jié)的表
5、示方式,共有65535個字符,最前面的128個字符與標準的ASCII字符一致,包括:1) 數(shù)字字符10個(09)2) 英文大小寫字母各26個(AZ, az)3) 下劃線(_)、美元符號($)4) 文字字符(漢字,日文片假名、平假名,朝鮮文字等)5) 其他用于構成特殊符號的字符集標識符可以用來標識文件名、變量名、類名、接口名和成員方法名等,其構造規(guī)則如下:1) 標識符由Java字母和Java數(shù)字組成;2) 首字符必須是Java字母;3) 除去關鍵字、false、true和null;4) 所有標識符是區(qū)分大小寫的。關鍵字是Java語言保留的一些英文單詞,具有特殊的含義。例如:public、stat
6、ic和class,具有特殊用途,不能作為標識符使用?;緮?shù)據(jù)類型。 布爾型(boolean)1個字節(jié)(true或false)字符型(char)16位字節(jié)型(byte)8位短整型(short)16位整數(shù)型(int)32位長整型(long)64位單精度浮點型(float)32位雙精度浮點型(double)64位Java直接量是直接顯式地表示基本數(shù)據(jù)類型數(shù)據(jù)、字符串(String)值和空引用值(null)的表達式,而且在該表達式中不含運算。 布爾(boolean)直接量只有兩個:true和false字符(char)直接量:如a,6,貓,u0061,n整型(byte,short,int)直接量:如-2
7、7,+0123,0x56ab長整型(long)直接量:如-27L,+0123L,0x56abL浮點數(shù)(float,double)直接量:如1.5,45.6D,100d,76.4e8,-32.0 ,1.5F, 45.6f, 76.4E-8F,-32.0F字符串(String)直接量:如“Hello World!”引用數(shù)據(jù)類型的直接量:null變量在計算機內部對應著一個存儲單元,而且總是具有某種數(shù)據(jù)類型:基本數(shù)據(jù)類型或引用數(shù)據(jù)類型。每個變量均具有:名字、類型、一定大小的存儲單元以及值。變量總是具有與其數(shù)據(jù)類型相對應的值?;緮?shù)據(jù)類型:變量的存儲單元中存放的是具體的布爾值或數(shù)值;引用數(shù)據(jù)類型:變量的
8、存儲單元中存放的是引用值,引用值一般用來指向某個具體的對象。如果引用值是null,則該引用值不指向任何對象。在使用變量前,必須先定義該變量,而且一般要求先初始化。例如:int studentNumber; /定義單個變量studentNumber=30; /給變量賦值double velocity, distance; /定義多個變量int studentNumber=30; /定義變量,并賦初值第2章 運算和語句賦值運算。 l 簡單賦值運算,格式如下:變量=表達式不是“相等”運算符(“=”)。賦值語句中的數(shù)據(jù)類型轉換只能是簡單類型向復雜類型轉換,不能從復雜的轉換成簡單的。轉換規(guī)則如下:byt
9、eshortintlongfloatboublel 復合賦值運算,格式如下:變量 雙目算術運算符= 表達式包括:+=、-=、*=、/=、&=、|=、%=、=和=。例如:a+=b等價于a=a+b,a/=b+c等價于a=a/(b+c)。算術運算符。 算術運算符包括:+(取正), -(取負) (單目運算) +, -, *, /, % (雙目運算)注意事項:1) 當操作數(shù)是定點類型數(shù)據(jù)時,應當注意運算是否會溢出int i=123456;i=i*i; /溢出2) 整數(shù)除法:截去余數(shù),7/5結果為13) 考慮除數(shù)是否可能為0或很小的數(shù)4) 取模:返回余數(shù),可以對定點或浮點數(shù)進行取模運算,7%5結果為2;1
10、5.25%(-0.5)結果為0.25自增自減運算。 自增(+)和自減(-):操作數(shù)必須是變量;有前置和后置兩種運算int n=3;int i=n+, j=n-;/i=3,j=4,n=3int k=+n, m=-n;/k=4,m=3,n=3前綴 和后綴, 對變量本身,效果相同;但表達式的值不相同。運算對象只能是變量,不能是常量或表達式,如:7+;(i+j)-都是非法的。關系運算符。 關系運算符包括: 、=、= 和 !=,關系運算生成一個布爾結果。例如:1 2;/false3.5 != 1; /true 51.5 = 23.0; /true540 = 654; /true24 = 3*8; /tr
11、ueboolean test1=(10 10); /test1=false;關系運算符的優(yōu)先級:、=優(yōu)先于=、!=;、=優(yōu)先級相同,結合性是自左向右;=、!= 優(yōu)先級相同,結合性是自左向右。【注意】Java不允許將一個數(shù)字作為布爾值使用,這與c或c+不同。例如:當要表達“如果a不等于0”這個條件不能寫作 if(a)而要寫作 if(a!=0)邏輯運算符。 邏輯運算的操作數(shù)必須是布爾型,結果也是布爾型??梢杂?種基本操作:與(&)、或(|)、非(!)。短路規(guī)則:一旦能夠明確無誤的確定整個表達式的值,就不再計算表達式余下的部分了。因此,整個邏輯表達式靠后的部分可能不會計算。比較:(birthday
12、= true) & (+age = 65)(birthday = true) | (+age = 65)! 優(yōu)先于 雙目算術運算符 優(yōu)先于 關系運算符 優(yōu)先于 & 優(yōu)先于|條件運算符。 條件運算符是一個三目運算符,一般形式為:邏輯表達式 ? 表達式1 : 表達式2例如: int i = 5; int k = (i=0) ? 1 : -1;條件運算符的結合性為“自右至左”。例如: x y ? x : u v ? u : v 等價于x y ? x : (u v ? u : v)位運算和位移運算。 位運算符包括:&、|、移位運算符有 : 、和 帶符號右移:左端空出的位填原符號位不帶符號右移(邏輯右移
13、):左端空出的位填0(C或C+中無此運算符)位運算操作是:先將整數(shù)寫成二進制形式(補碼),然后按位操作,最后產生一個新的數(shù)注意: 只用于定點類型數(shù)據(jù)(整型)基本語句。 表達式語句:k=k+2;空語句 ;break語句:break; 用于循環(huán)或選擇continue語句:continue; 同上return語句:return;, return 表達式;,該語句的執(zhí)行將結束方法的執(zhí)行,只能出現(xiàn)在方法體中。復合語句。 用花括號引起來的兩條或兩條以上語句,順序執(zhí)行但作為一個整體。在復合語句中可以定義自己專用的臨時變量。if語句。 if語句的格式是:if (布爾表達式) 語句或if (布爾表達式) 一條或
14、多條語句例如:if(score = 60) System.out.println(Passed);if-else語句。 if-else語句的格式是:if (布爾表達式) 語句1或語句塊1else 語句2或語句塊2例如:if (score = 60) System.out.println(Passed!);else System.out.println(Failed!);標準嵌套if-else控制結構可實現(xiàn)多路選擇,用在想從多個候選項中選擇且只選出一項時。例如:if (score90) System.out.println(“A”) ;else if (score=80) System.out.
15、println(“B”) ;else if (score=60) System.out.println(“C”) ;else System.out.println(“F”) ;switch語句。 switch語句的格式是:switch (表達式)case 值1: 語句組1; break;case 值2: 語句組2; break; case 值n: 語句組n; break;default: 語句組(n+1);switch表達式的數(shù)據(jù)類型可以是基本類型char、byte、short、int;或是這四種基本類型相對應的包裝類java.lang.Character、java.lang.Byte、jav
16、a.lang.Short、java.lang.Integer或enum枚舉類型。跟在case后的必須是常量表達式,其值的類型應當與switch表達式的數(shù)據(jù)類型相匹配。Switch語句的執(zhí)行規(guī)則:1) 求出表達式的值;2) 找出給定值與表達式相符的case語句,執(zhí)行此case標號后的所有語句(除非遇到break語句),直到switch語句結束;3) 若沒有匹配的case語句,則轉向defalult語句,執(zhí)行default標號后的所有語句,直到switch語句結束。4) 若沒有匹配的case語句,也沒有defalult語句,則switch語句的這次執(zhí)行立即結束。trycatch語句。 try 語句
17、塊/執(zhí)行該語句塊,可能會發(fā)生異常 catch (異常類型e) 異常發(fā)生時要執(zhí)行的語句塊 finally 無論異常發(fā)生與否,都要執(zhí)行的語句塊說明:1) Catch和 finally 必須和一個try相關聯(lián)2) try至少要有一個catch, 可以有多個3) finally語句塊是可選的while語句。 while語句的格式:while (布爾表達式) 語句或語句塊當條件(布爾表達式)為true ,則不斷地執(zhí)行語句或語句塊。“while” 循環(huán)的中止條件是布爾表達式變?yōu)閒alse,如果布爾表達式一開始就為false,則不執(zhí)行循環(huán)體。有時循環(huán)條件很難寫出,可以直接使用true, 格式如下:While
18、 (true) If( 條件表達式) break;do-while語句。 do-while語句的格式是:do 語句或語句塊while (布爾表達式);do-while和while結構唯一的區(qū)別就是do-while中的語句至少會執(zhí)行一次,即便布爾表達式第一次就被計算為false。注意最后的分號,一定不能省略。for語句。 for語句的格式是: for (初始化表達式; 條件表達式; 更新表達式) 語句或語句塊例如: int counter, sum; for(counter=1,sum=0; counter=100; counter+) sum+=counter; System.out.prin
19、tln(“counter=“ + counter + ”, sum=” + sum);注意變量counter和sum的作用域,若將它們改在for語句內部定義,會有何不同。在for語句的初始化和更新部分,可以使用多個由逗號分隔的表達式,這些表達式都會獨立執(zhí)行。例如: for(int 1=1, j=i+10; i 5; i+, j=i*2) System.out.println(“i = ” + i + “ j = ” + j); 注意:通過逗號操作符,可以在初始化部分定義多個變量,但這些變量必須具有相同的類型。無論在初始化還是更新部分,表達式都是順序執(zhí)行的。嵌套的循環(huán)結構。 for循環(huán)的嵌套wh
20、ile循環(huán)的嵌套do.while循環(huán)的嵌套以上三個任意之間的嵌套continue語句。 格式:continue;功能:跳過continue之后的語句,重新判斷循環(huán)控制條件,決定是否繼續(xù)循環(huán)。說明:(1) continue語句只能用在三種循環(huán)語句的循環(huán)體中。(2) continue語句通常和if語句聯(lián)合使用,從而構成其后的部分循環(huán)體是否執(zhí)行的單分支結構。break語句。 格式:break;功能:強制結束當前的循環(huán),不再執(zhí)行循環(huán)體中break后面的語句。說明:(1) break語句只能在三種循環(huán)語句的循環(huán)體和switch語句中使用。(2) 在循環(huán)語句中break通常和if語句聯(lián)合使用,用于構成第二
21、個退出循環(huán)的機會。Package語句。 程序包相當于其它語言的函數(shù)庫,系統(tǒng)提供大量的程序包,自己編寫的類也可以組成程序包,但一定要用package語句聲明。格式: package 包名;包名是一個目錄名,可以有路徑。import 語句。 用來引入所需要的類格式:import 包名.類名;例如: import java.util.Date;/引入Date類如果從一個包中引入多個類,可以用通配符“*”, 如: import java.awt.*;一個java源程序中可以有多個import語句, 它們必須出現(xiàn)在package語句之后;類的定義之前。Java程序的基本結構。 package 包名;im
22、port 包名.類名; / 更多的import語句public class 類名int val= /變量定義語句Public static void main( String args )/ 方法定義 / 變量定義和控制語句構成的方法體 第3章 面向對象編程基礎抽象 抽象是程序設計最經常使用的技術之一,是有效控制程序復雜性的重要手段。在面向對象程序設計中:把一系列復雜的屬性與動作組織到單個模塊中,然后把該模塊當作一個整體(對象)來對待,就是一種抽象形式。把一個問題分解成構成它的對象,也是一種抽象形式。對象(object)萬物皆為對象,它存儲數(shù)據(jù),還可以要求它在自身上執(zhí)行操作。對象具有狀態(tài)、行為
23、和標識。這意味著每一個對象可以擁有內部數(shù)據(jù)(它們給出該對象的狀態(tài))和方法(它們產生行為),并且每一個對象都可以唯一地與其他對象區(qū)分開來(每一個對象在內存中都有唯一一個地址)。消息(message)在面向對象框架中,對象之間通過相互發(fā)送消息來進行交互。在Java里,通過調用方法來傳遞消息。類(class)類定義了某種類型的所有對象所具有的屬性與行為,是用來創(chuàng)建對象的藍圖或模板;對象是某個確切類的實例。在創(chuàng)建一個類的實例(對象)之前必須定義這個類。繼承性(inheritance) 多態(tài)性(polymorphism)類 (1)類的聲明類的定義格式如下:類修飾詞 class 類名 extends 父類
24、名 implements 接口名稱列表 類體 / 通常先定義成員變量,再定義構造方法,最后編寫成員方法(2)成員變量成員變量的定義格式如下:修飾詞列表 類型 變量名或帶初始化的變量名列表;例如:private float height, weight; private String name, sex, no;(3)方法類的成員方法:簡稱方法,用來實現(xiàn)類的各種功能。方法的定義格式如下: 方法修飾詞列表 返回類型 方法名(方法的參數(shù)列表) 方法體 例如: public int mb_method() public static void main(String args) 例3.2(若某方法的參
25、數(shù)名或局部變量名與類的成員變量名相同,則成員變量名在這個方法內部暫時被隱藏。)例3.3(關鍵字this:對當前對象的引用) (4)構造方法構造方法用來創(chuàng)建類的實例,并對對象初始化。構造方法的聲明和一般方法聲明非常相似,但是它必須和類同名,并且不能聲明返回值類型。構造方法的一般形式: public ( ) 默認的構造方法:當一個類沒有包含構造方法時,Java將自動提供一個默認的構造方法。對象 (1)聲明對象聲明一個對象只是命名一個引用變量,這個引用變量和對象關聯(lián),可以用來引用該對象。聲明一個對象的格式如下: 類名 變量名(對象名); 例如,聲明對象: Point p1,p2;不要把聲明一個對象和
26、創(chuàng)建一個對象混淆起來。聲明對象并不會為這個對象分配內存。(2)創(chuàng)建對象創(chuàng)建對象:使用new操作符和構造方法。構造方法是在對象實例化過程中使用的特殊方法;操作符new為新的對象分配一片內存并將它存儲在那里,然后返回對象的地址。格式為: new 構造方法名(構造方法的調用參數(shù)列表) 例如: p1 = new Point(); p2 = new Point(30,40);聲明和創(chuàng)建對象也可以一起完成,例如: Point p3 = new Point(), p4 = new Point(60,70);(3)對象的內存模型在Java中有兩種類型的變量:基本類型與引用類型?;绢愋偷淖兞靠偸谴娣乓粋€該類型
27、的值;引用變量實際上存放的是它所引用的對象的地址,而不是存放對象本身。在Java中,主要有數(shù)組和類類型是引用類型。 (4)使用對象程序使用對象:訪問對象的成員變量,一般形式為: 對象名.成員變量名調用對象的方法,一般形式為: 對象名.方法名(參數(shù)表)實例變量和類變量 被關鍵字static修飾的變量為類變量(靜態(tài)變量),未被關鍵字static修飾的變量為實例變量。 例如: class D float x; / 實例變量 static int y; /類變量 每個對象都有自己的實例變量,不同對象的實例變量也將被分配不同的內存空間。類變量則被一個類的所有對象共享,在內存中也只有一處??梢酝ㄟ^類名或對
28、象名引用類變量。實例方法和類方法 被關鍵字static修飾的方法為類變量(靜態(tài)方法),未被關鍵字static修飾的方法為實例方法。例3.7注意:類中的實例方法可以互相調用,并可調用類方法。類方法也能相互調用,但不能直接調用實例方法,而要通過在類方法中引入局部對象,通過對象名調用實例方法。類中的實例方法中可以直接使用實例變量,也可直接使用類變量。但類方法能直接使用類變量,卻必須通過在類方法中引入的局部對象,用對象名引用實例變量。類方法可以通過類名或對象名調用。例3.8訪問權限 設置訪問權限實現(xiàn)訪問控制,為類的成員設置訪問權限,保護類的成員不在非期望的情況下被引用。在類的聲明中,除了類的方法總能訪
29、問類的成員變量外,為其他類的方法訪問本類的成員變量和方法,提供了四種訪問權限:public:無訪問限制,其他類的方法都能訪問private:最強訪問限制,其他類的方法都不能訪問protected:僅限子類或同一包中的類的方法訪問:只允許同一包中的類的方法訪問繼承 繼承性 - 軟件重用的一種方法繼承使得一個類可通過擴展現(xiàn)有類來定義擴展聲明的新類稱為子類,原有的類稱為超類(父類)子類繼承超類的變量和方法;子類可以增加新的變量和方法;子類可以重寫(第51頁)從超類中繼承的方法。子類對父類的繼承性,Java語言有以下規(guī)定:子類自然地繼承其父類中非private的成員變量作為自己的成員變量子類自然地繼承
30、其父類中非private的成員方法作為自己的成員方法多態(tài)性 靜態(tài)的多態(tài)性:重載,在編譯時就能夠被識別針對的是同一個類內的同名方法(重載的方法)。動態(tài)的多態(tài)性:重寫,在程序運行時才被識別(動態(tài)聯(lián)編)重寫父類的方法(同樣簽名)。多層繼承 繼承關系具有傳遞性。繼承聲明的新類,又可被其他類再繼承,從而構成多層繼承。 Java面向對象的其他機制 (1) final類、final方法和final變量關鍵字final的含義為“最終的”,“不能改變的”。用final修飾類,表明此類不能派生出子類,例如:final class C 用final修飾方法,表明此方法不能被子類的方法重寫(覆蓋) 例如:final
31、int f( int x, int y ) 用final修飾變量,表明此變量一旦賦值,則不能再被改變,相當于一個常量 例如:final int FINALVAR = 100;(2)abstract類和abstract方法關鍵自abstract的含義為“抽象”,用abstract修飾類,此類稱為抽象類,抽象類不能被實例化;用abstract修飾方法,此方法稱為抽象方法,抽象方法沒有實現(xiàn)的代碼(方法首部; )包含抽象方法的類一定是抽象類,但抽象類可以沒有抽象方法。(3)關鍵字super關鍵字super的用途:在子類型的非靜態(tài)成員方法中訪問其父類型的成員變量(4)關鍵字this關鍵字this的用途:
32、在當前類的非靜態(tài)成員方法中訪問當前類的成員變量(5)類之間的is-a和has-a關系例:類A繼承自類B,子類A與父類B之間有is-a關系例:類A的某個成員變量的類型是B,類A和類B之間是has-a關系(6)內部類(inner class)定義在其它類內部的類稱為內部類。接口(interface)Java小應用程序基礎 Java Applet主要功能:顯示圖形、動畫、播放聲音、響應用戶事件等。Java applet 的實現(xiàn)主要依靠java.applet 包中的Applet類。 java. applet. Applet類是所有Java applet的基類,所有的Java applet都必須繼承該類
33、。(1)小應用程序的建立和運行 Java applet程序從建立到運行的步驟如下:1) 選用寫字板或文本編輯器等工具建立Java applet源程序。(其中必須有一個類繼承java.applet.Applet類,這個類是小應用程序的主類,用關鍵字public修飾。)2) 把Java applet的源程序編譯為字節(jié)碼文件。3) 編制HTML文件,通過標記將字節(jié)碼文件嵌入HTML文件中。4) 在支持Java的瀏覽器上運行。(2)Applet類的基本方法 public void init( )public void start( )public void paint( )public void st
34、op( )public void destroy( )public void repaint( )public void update( )(4)小應用程序數(shù)據(jù)輸入與輸出 小應用程序的數(shù)據(jù)輸入有多種方式:從圖形用戶界面的文本框、文本區(qū)域中輸入;采用系統(tǒng)標準輸入;由HTML文件中的參數(shù)導入。第4章 數(shù)組和字符串1. 數(shù)組 數(shù)組是連續(xù)存儲區(qū)域的命名集合,這些存儲區(qū)域彼此相鄰,存放著相同類型的數(shù)據(jù)元素。一維數(shù)組 (1)聲明一維數(shù)組一維數(shù)組變量的聲明格式有如下兩種:數(shù)組元素的數(shù)據(jù)類型 數(shù)組名;數(shù)組元素的數(shù)據(jù)類型 數(shù)組名 ;(2)創(chuàng)建一維數(shù)組Java數(shù)組是引用類型,可以通過new 操作符來創(chuàng)建;在創(chuàng)建一
35、個數(shù)組時必須指明數(shù)組的元素類型和它的長度。先聲明后創(chuàng)建 格式:數(shù)組名 = new 數(shù)組元素類型元素個數(shù) 示例: char c; / 聲明數(shù)組 c = new char5; / 創(chuàng)建數(shù)組,并分配內存在聲明時創(chuàng)建 示例: char c = new char5;對于較小的數(shù)組,可以使用直接賦值創(chuàng)建,即在聲明數(shù)組時賦給它初值。數(shù)組初始化表達式寫成一組用逗號分開的擴在花括號里的表達式。例如:int arr = 2, -9, 15, -2, 0, 80, 7; char c = h, e, l, l, o;(3)引用一維數(shù)組元素數(shù)組的每個元素通過它在數(shù)組里的位置來引用:數(shù)組名 下標 ,例如:arr7數(shù)組下
36、標必須是0到N-1之間的整數(shù),或值在0到N-1之間的整數(shù)表達式,其中N是數(shù)組里元素的個數(shù)。例如:arr7、arri+j(其中i=1, j=6)使用一個不在0到N-1范圍內的下標值系統(tǒng)將發(fā)生運行時異常,這是由于Java運行系統(tǒng)會對數(shù)組下標自動進行范圍越界檢查。例如:arr-1、arr15多維數(shù)組 (1)聲明二維數(shù)組聲明二維數(shù)組的形式有以下三種:數(shù)據(jù)元素類型 數(shù)組名 數(shù)據(jù)元素類型 數(shù)組名數(shù)據(jù)元素類型 數(shù)組名 (2)創(chuàng)建二維數(shù)組創(chuàng)建二維數(shù)組的方法也有多種:l 直接分配(適用于平衡二維數(shù)組,即矩陣)格式:類型 數(shù)組名 = new 類型長度1長度2;例如: double rainfall = new d
37、ouble1231;l 從最高維開始,分別對每一維分配不等長空間(適用于非平衡數(shù)組)例如: int a = new int3 ; int a0 = new int4; int a1 = new int5; int a2 = new int2;l 直接賦值創(chuàng)建(適用于元素較少的數(shù)組)例如:int x = 5,6,7, 8,9,10,11, 18,19,20,15, 2,9 ;(3)引用二維數(shù)組元素書中示例的非平衡二維數(shù)組x中,x23值為15(4)使用二維數(shù)組要注意的問題二維數(shù)組名下標1是一維數(shù)組。二維數(shù)組名.length是二維數(shù)組的子數(shù)組個數(shù);二維數(shù)組名下標1.length是指定子數(shù)組的元素個數(shù)
38、。2. 字符串 字符串常量 雙引號括起來的字符序列。示例:“student”、“你好” 或“123.456”字符串聲明和創(chuàng)建 String name1 = new String( );String name2 = new String(“Hello World”);char a = 1,2,3,4,5,6,7;String name3 = new String(a);String name4 = new String(a,2,4);字符串基本操作 (1)字符串連接String s1 = “sweet”;String s2 = new String( “you ” + “are ” + s1);
39、(2)獲取字符串長度方法:public int length() 功能:返回此字符串的長度(3)字符串前綴或后綴的比較方法:public boolean startsWith(Stringprefix)功能:測試此字符串是否以指定的前綴開始方法:public boolean endsWith(Stringsuffix)功能:測試此字符串是否以指定的后綴結束 (4)比較兩個字符串是否相同方法:public boolean equals(Objectobj)功能:比較兩個引用變量是否引用同一個對象,例如x.equals(y),對于任何非空引用值 x 和 y,當且僅當 x 和 y 引用同一個對象時,
40、此方法才返回 true(x = y 具有值 true)。方法:public boolean equalsIgnoreCase(StringanotherString)功能:將此 String 與另一個 String 比較,不考慮大小寫。如果兩個字符串的長度相同,并且其中的相應字符都相等(忽略大小寫),則認為這兩個字符串是相等的。方法:public int compareTo(Stringstr)功能:按字典順序比較兩個字符串的大小。該比較基于字符串中各個字符的 Unicode 值。如果此 String 對象小于參數(shù)字符串,則返回一個負整數(shù)。如果此 String 對象大于參數(shù)字符串,則返回一個正
41、整數(shù)。如果這兩個字符串相等,則返回 0。方法:public int compareToIgnoreCase(Stringstr)功能:按字典順序比較兩個字符串,不考慮大小寫。 (5)字符串檢索String的實例方法indexOf( ) 可以 用于在字符串中查找一個字符或子串的索引位置。indexOf( )方法在一個String里從左到右查找一個字符或子串,它有幾種版本:public int indexOf( String string );public int indexOf( String string, int startingIndex );(6)取字符串的子串方法substring(
42、)可以用 來從一個String里檢索一個字符子串。 public String substring( int startIndex ) 例如: String str = “HelloWorld”; str.substring( 5 ); / “World” str.substring( 9 ); / ”d”(7)替換字符串中的某字符得到一個新字符串方法:public String replace(charoldChar, charnewChar)功能:返回一個新的字符串,它是通過用 newChar 替換此字符串中出現(xiàn)的所有 oldChar 得到的。(8)去掉前后空格得到一個新字符串方法:pub
43、lic String trim() 功能:返回字符串的副本,去掉前后空白。(9)基本類型值的字符串表示String的類方法valueOf( )用于把某種基本類型的值轉換成一個String對象。(10)字符串得到基本類型對象每種基本類(包裝類,除Character)都有類方法能將字符串轉換成基本類的對象,形如: public static Type valueOf(String s) 其中,Type代表任何基本類,包括Boolean、Integer、Double等。(11)字符串得到基本類型值每種基本類(包裝類,除Character)都有類方法能從字符串中解析出基本類型的值,形如: public
44、 static type parseType(Strings) 其中,type代表任何基本數(shù)據(jù)類型,包括boolean、int、double等,Type代表相應的包裝類。StringTokenizer類 java.util.StringTokenizer類用來把字符串分解為標記。常用構造方法1:public StringTokenizer(Stringstr) /為指定字符串構造一個 string tokenizer。使用默認的分隔符集 “tnrf”,即:空格字符、制表符、換行符、回車符和換頁符。 常用構造方法2:public StringTokenizer(Stringstr, String
45、delim) /為指定字符串構造一個 string tokenizer。delim 參數(shù)中的字符都是分隔標記的分隔符。 常用方法:public int countTokens() / 返回使用當前分隔符集的字符串中剩余的標記數(shù) public String nextToken() /返回此 string tokenizer 的下一個標記。 public boolean hasMoreElements() /測試此 string tokenizer 的字符串中是否還有更多的可用標記。如果此方法返回 true,那么后續(xù)調用無參數(shù)的 nextToken 方法將成功地返回一個標記。 字符串與字節(jié)數(shù)組 可
46、以使用String構造方法,利用字節(jié)數(shù)組創(chuàng)建字符串:public String(byte bytes) /通過使用默認字節(jié)字符對應表,由字節(jié)數(shù)組構造一個新的 String。新 String 的長度是字符集的函數(shù),因此可能不等于 byte 數(shù)組的長度。 public String(byte bytes, intoffset, intlength) /通過使用默認字節(jié)字符對應表,由字節(jié)數(shù)組起始位置offset開始取length個字節(jié)構造一個新的 String。String類也提供實例方法將字符串轉化為字節(jié)數(shù)組:public byte getBytes() / 使用默認字節(jié)字符對應表將字符串轉化為字
47、節(jié)數(shù)組對象的字符串表示 根類Object中定義了實例方法 public String toString() 此方法的功能描述為:返回該對象的字符串表示。第5章 圖形界面設計(一)1. 圖形界面設計基礎AWT和Swing AWT:Abstract Windowing Toolkit,抽象窗口工具包Swing:與AWT相比功能更加強大、完善,平臺相關性較小組件和容器組件( Component )組件是Java圖形用戶界面的最基本組成部分,是一個可以以圖形化的方式顯示在屏幕上、并能與用戶進行交互的對象,組件不能獨立地顯示出來,必須將組件放在一定的容器中才可以顯示出來。容器( Container )容
48、器是可以容納其他組件的組件,是圖形界面的復合元素。Container類有 add()方法,可以向容器添加組件。 類java.awt.container的成員方法:public Component add( component comp ) / 將組件comp添加到當前容器中Component、Container和Graphics類是AWT庫中的關鍵類。事件驅動程序設計基礎 (1)事件、監(jiān)視器和監(jiān)視器注冊在Java里,每當某件事發(fā)生在一個GUI組件(事件源或源對象)里,會生成一個事件對象(event)并傳給為處理該事件而注冊的事件監(jiān)視器(event listener)。(2)實現(xiàn)事件處理的途征事
49、件處理模型的三個基本要素:事件源(An event source) 事件對象(An event object)事件監(jiān)視器(event listener(s)事件源(源對象)可供用戶進行交互的GUI組件事件對象包裝相應的事件記錄事件源以及處理該事件所需要的各種信息事件對象對應的類一般位于包java.awt.event和包javax.swing.event中事件監(jiān)視器(事件監(jiān)聽器)在事件源中注冊事件監(jiān)視器,當有事件發(fā)生時,事件源接收事件對象,并交由相應的事件監(jiān)聽器處理事件監(jiān)聽器對應的接口和適配器類一般位于包java.awt.event和包javax.swing.event中(3)事件類型和監(jiān)視器接
50、口常用的事件:動作事件(ActionEvent)、項事件(ItemEvent)、列表選擇事件(ListSelectionEvent)、文檔事件(DocumentEvent)類javax.swing.Frame的成員方法:public Container getContentPane( ) / 返回當前Frame的內容窗格類java.awt.container的成員方法:public Component add( component comp ) / 將組件comp添加到當前容器中對于頂層容器,是向其內容窗格添加組件;對于其他容器,則可直接添加組件。為頂層容器添加組件的另一種方法:建立JPane
51、l對象作為中間容器,將組件添加到這個容器中,再用方法public void setContentPane(Container contentPane)把此中間容器設置為內容面板。 JPanel contentPane = new JPanel(); / 添加組件到contentPane中 mw = setContentPane(contentPane); / mw為之前創(chuàng)建的某JFame對象 3. 標簽、按鈕和按鈕事件 標簽(javax.swing.JLabel)是用于短文本字符串或圖像或二者的顯示區(qū)。標簽不對輸入事件作出反應。標簽(類javax.swing.JLabel)的構造方法:publ
52、ic JLabel( )public JLabel( String text )public JLabel( String text, int align ) / 參數(shù)text指定標簽的文字信息;參數(shù)align指定文字在水平方向上的對齊方式。常見對齊方式:javax.swing.JLabel.LEFT(左對齊)、javax.swing.JLabel.CENTER(中對齊)、javax.swing.JLabel.RIGHT(右對齊)JLabel的常用成員方法:public void setText( String text ) / 設置標簽的文字信息public void getText( ) /返
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030中國腹腔鏡壓榨機行業(yè)產業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國脫水冷凍水果行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國膠合板行業(yè)產業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國聚醚消泡劑行業(yè)產業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國聚光鏡行業(yè)產業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 基于大數(shù)據(jù)的營銷活動分析報告
- 2025至2030中國美甲行業(yè)市場發(fā)展現(xiàn)狀及發(fā)展趨勢與投資發(fā)展報告
- 2025至2030中國羊奶粉行業(yè)市場深度研究及發(fā)展前景投資可行性分析報告
- 2025至2030中國網(wǎng)絡動漫行業(yè)營銷模式與投資契機深度評估報告
- 2025至2030中國罐式集裝箱行業(yè)發(fā)展研究與產業(yè)戰(zhàn)略規(guī)劃分析評估報告
- 工會審計實務課件
- 預防艾滋病、梅毒和乙肝母嬰傳播相關報表、上報流程和要求
- 《鐵路技術管理規(guī)程》(普速鐵路部分)-14年新版
- 食用油儲存期品質變化的太赫茲光譜無損識別
- 胎盤早剝預案演練腳本
- 五山文學全集第一卷
- 聚磷腈功能高分子材料的合成及應用
- 中國鐵路總公司《鐵路技術管理規(guī)程》(高速鐵路部分)2014年7月
- 鈣加維生素Dppt課件(PPT 14頁)
- TRD深基坑止水帷幕施工方案(22頁)
- 企業(yè)組織架構圖模板
評論
0/150
提交評論