Java语言基础课件_第1页
Java语言基础课件_第2页
Java语言基础课件_第3页
Java语言基础课件_第4页
Java语言基础课件_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java語言基礎

2024年8月12日星期一22.1Java程式的構成Java根源程式是由類定義組成的,每個程式中可以定義若干個類,但是只有一個類是主類。在JavaApplication中,這個主類是指包含main方法的類;在JavaApplet中,這個主類是一個系統類Applet的子類,是Java程式執行的入口點。在同一個Java根源程式中定義的若干類之間沒有嚴格的邏輯關係要求,但它們通常是在一起協同工作的,每一個類都可能需要使用其他類中定義的靜態屬性或方法

Java程式中定義類使用關鍵字class,每個類的定義有類頭定義和類體定義兩部分組成。類體部分用來定義靜態屬性和方法這兩種類的成員,其中方法類似於其他高級語2.1.1一個Java根源程式2024年8月12日星期一3言的函數,而靜態屬性則類似於變數。類頭部分除了聲明類名之外,還可以說明類的繼承特性,當一個類被定義為是另一個已經存在的類(稱為這個類的父類)的子類時,它就可以從其父類中繼承一些以定義好的類成員而不必自己重複編碼。Java程式的每一條Java語句都由分號結束,其構成應該符合Java的語法規則。類和方法中的所有語句應該使用一對大括弧括起。Java程式的每一個類中,除了靜態屬性聲明語句之外,其他的執行具體操作的語句只能存在於類方法的大括弧之中,而不能跳出方法孤立地直接書寫在類中。

2024年8月12日星期一4

注解是指程式中用來說明程式的文字。它是為了方便程式員理解,維護該程式,並不參與程式的編譯執行。Java的注解有3種:單行注解符號“//”後面的單行內容不參與編譯;多行注解用“/*…*/”包含起來的一段文本,中間可以換行;用“/**…*/”包含起來的,它可以用javadoc工具來生成HTML形式的開發文檔。也可以在寫程式的時候將某些代碼注釋掉以便調試程式。2.1.1Java的程式注解2024年8月12日星期一52.1.3Java的的識別字與關鍵字

關鍵字是Java語言保留的字串,表示特殊的指令,而不能用來做為程式中的識別字。識別字是用來代表程式中一個元素的名字,比如變數、函數、類等。在Java中標識符由字母、下劃線、“$”和數字組成,只能以字母、“$”或者“_”開頭,中間不能有空格,並且不能使用關鍵字。但可以包含關鍵字作為它的名字的一部分。在Java中中文字元也是字元,所以也可以作識別字。Java的識別字區分大小寫,而且沒有長度的限制,可以為識別字取任意長度的名字。識別字的名字要有一定的意義,讓人一看識別字就知道這個變數、函數的大概作用,即常說的編碼規範。

2024年8月12日星期一6在Java語言中,有三種基本類型,即簡單類型(整型、浮點型、字元型、布爾型等)、數組類型(整型、浮點型、字元型、布爾型等)和複合類型(類、介面)。可以看出Java的數據類型與C語言相近,其不同之處在於:首先,Java的各種數據類型佔用固定的記憶體長度,與具體的軟硬體平臺環境無關;其次,Java的每種數據類型都對應一個缺省的數值,使得這種數據類型的變數的取值總是確定的。這兩點分別體現了Java的跨平臺特性和安全穩定性。

2.2基本數據類型2024年8月12日星期一7在Java語言中有四種整數類型,每種類型可以使用關鍵字byte,short,int和long中的任意一個進行聲明。所有Java編程語言中的整數類型都是帶符號的數字,不存在無符號整數。整數類型的文字可使用十進位、八進制和十六進製錶示。首位為“0”表示八進制的數值,首位為“0x”表示十六進制的數值。整數類型默認為int類型,如在其後有一個字母“L”表示一個long值(也可以用小寫“l”)。

2.2.1整型

2024年8月12日星期一8

使用char類型可表示單個字元,字元是用單引號括起來的一個字元,如‘a’,‘B’等。Java中的字元型數據是16位無符號型數據,它表示Unicode集,而不僅僅是ASCII集。

與C語言類似,Java也提供轉義字元,以反斜杠“\”開頭,將其後的字元轉變為另外的含義。值得注意的一點是,用雙引號引用的文字,就是我們平時所說的字串類型不是原始類型,而是一個類string,它被用來表示字元序列。字元本身符合Unicode標準且上述char類型的轉義字元適用於string。2.2.2字元型

2024年8月12日星期一92.2.3浮點型

在Java語言中有兩種浮點數類型;float和double。如果一個數包括小數點或指數部分,或者在數字後帶有字母F或f(float)、D或d(double),則該數為浮點數。如果不明確指明浮點數的類型,浮點數默認為double。

在兩種類型的浮點數中,float為32位(單精確度),double為64位(雙精度)。也就是說double類型的浮點數具有更高的精度。

2.2.4邏輯型邏輯類boolean的數據類型有兩種文字值:true和false。在Java語言中boolean類型只允許使用boolean值,在整數類型和boolean類型之間無轉換計算。2024年8月12日星期一102.2.5變數與常量在Java中,不同類型的數據既可以以常量的形式出現,也可以以變數的形式出現。常量就是指在程式執行期間其值不能發生變化的數據,常量是固定的。

變數的值是可以變化的,它的定義包括變數名、變數類型和作用域幾個部分。注意以下幾點:(1)變數名必須是一個合法的識別字。變數名應具有一定的含義,以增加程式的可讀性。(2)變數類型可以為前面所說的任意一種數據類型。(3)聲明一個變數的同時也就指明了變數的作用域。變數的作用域指明可訪問該變數的一段代碼。(4)變數的聲明中多個變數間用逗號隔開。(5)在Java程式中聲明變數後,需要給該變數賦值。可以用賦值語句來初始化變數——任何變數都不能沒有初始值,否則無法通過編譯。2024年8月12日星期一11

Java語言是支持兩個不同數值類型之間的強制類型轉換的,一個變數從一個類型強制轉換到另一個類型,轉化後的變數要受到新類型的制約。

類型轉換語法格式:(type)variableName

類型變數名

2.2.6數據類型的轉換2024年8月12日星期一12自動類型轉換整型、浮點型、字元型數據可以混合運算。在運算中不同類型的數據先轉化為同一種類型然後進行計算。自動類型轉換原則是從在機器中占位(bit)少的類型向占位多的類型方向進行轉換。強制類型轉換在Java語言中強制類型轉換是指從在機器中占位多的類型向占位少的類型方向進行轉換,例如int類型轉換成byte類型。強制類型轉換需要使用類型轉換語法格式,但是有些類型是不允許轉換成另一種類型的,例如boolean類型不能轉換成int等類型。2024年8月12日星期一132.3運算符與運算式

Java語言的運算符(operator)指明對運算元所進行的運算,運算符按照運算元的數目來劃分為單目運算符(例如~、++)、雙目運算符(例如+、>)、三目運算符(例如?:)。基本運算符包括賦值運算符、算術運算符、關係運算符、邏輯運算符、位運算符、條件運算符等。Java語言的運算式是由識別字、數據和運算符等的組合而構成的,它基本上和C\C++語言的運算式一樣。2024年8月12日星期一142.3.1賦值

賦值運算符“=”把一個數據賦給另一個變數。Java語言支持簡單算術運算符和賦值運算符的作用在賦值運算符兩側的類型不一致的情況下,如果左側變數的數據類型的級別高,則就把右側的數據轉換為與左側相同的高級數據類型,然後賦值給左側的變數。否則需要使用強制類型轉換運算符。

在賦值符“=”前加上其他運算符,即構成擴展賦值運算符。用擴展賦值運算符可表示為:

varoperator=expression2024年8月12日星期一152.3.2算術運算算術運算是針對數值類型運算元進行的運算。根據需要參與運算的運算元的數目要求,可將算術運算符分為雙目運算符和單目運算符兩種。雙目算術運算符雙目運算符有:+、-、*、/、%五種。要注意“/”運算符對於與整數和浮點數的運算結果是不同的。取模運算符“%”一般用於整數運算,它是用來得到餘數部分。單目算術運算符變數的自增與自減和++與—出現在該變數的前後位置無關。無論是++x還是x++均表示x要增1,且運算式的值與運算符的位置有關。2024年8月12日星期一162.3.3關係運算關係運算符也稱為比較運算符,是用於比較兩個數據之間的大小關係的運算符。關係運算結果是布爾值(true或false)。2.3.4邏輯運算邏輯運算是針對布爾型數據進行的邏輯判斷運算,運算的結果仍然是布爾型量。常用的邏輯運算符有:與(AND)、或(OR)、非(NOT)。2024年8月12日星期一17

2.3.5位運算位運算是對運算元以二進位比特位為單位進行的操作運算,位運算的運算元和結果都是整型量。移位運算符移位運算符是將某一變數所包含的各比特位按指定方向移動指定的位數,移位運算符通過對第一個運算對象向左移位或向右移位來對數據執行位操作,移動的位數由右邊的運算元決定,移位的方向取決於運算符本身。按位邏輯運算位運算符&、|、~、^分別提供了基於位的與、或、求反、異或操作。其中異或是指對應的兩位數值不同時,結果為1,否則為0。

2024年8月12日星期一182.3.6其他運算幾點說明:條件運算符是唯一的一個三目運算符,其結構如下:條件?運算式1:運算式2其含義是如果條件的計算結果為真,則結果為運算式1的計算結果,否則為運算式2的計算結果。instanceof

用來決定第一個運算對象是否為第二個運算對象的一個實例。2024年8月12日星期一192.3.7運算符的優先順序運算符的優先順序決定了運算式中執行不同運算的先後順序,在運算符優先順序相同時,運算的進行次序取決於運算符的結合性。運算符的結合性分為左結合和右結合,左結合就是按照從左向右的次序計算運算式,而右結合就是按照從右到左的次序計算運算式。

2024年8月12日星期一202.4數組

Java語言中,數組是一種最簡單的複合數據類型。數組的主要特點如下:數組是相同數據類型的元素的集合;數組中的各元素是有先後順序的,連續存放在記憶體之中;每個數組中的元素用整個數組的名字和它在數組中的位置(稱為下標)表達。2024年8月12日星期一212.4.1數組聲明、創建、初始化聲明數組聲明數組是定義一個數組的名稱、維數和數組元素的類型。有兩種定義格式:格式1:數組元素類型數組名[];格式2:數組元素類型[]數組名;其中數組元素的類型可以是基本類型,也可以是類或介面。創建數組數組聲明只是定義了數組名和類型,並未指定元素的個數。與變數一樣,數組的每個元素需要佔用存儲空間,因此必須通過某種方式規定數組的大小,進而確定數組需要的空間。給已聲明的數組分配空間可採用如下格式:

數組名=new數組元素類型[數組元素個數]

2024年8月12日星期一22也可以在聲明數組的同時給數組規定空間,一旦數組創建以後,數組就有了固定長度的結構,數組中各元素通過下標來區分,下標從0開始,下標最大值為數組元素的個數減1。當數組的元素類型為基本類型時,在創建存儲空間時將按照默認規定給各元素賦初值。數組的初始化

給數組元素分配空間和賦初值可以採取以下方式:聲明數組時給數組一個初值表,格式如下:

類型數組名[]={初值表};所有的數組都有一個屬性length,它代表了數組元素的個數。使用數組時,要注意下標不要超出範圍。如果下標超出範圍,則運行時會產生“數組訪問越界異常”。2024年8月12日星期一232.4.2數組使用在方法調用中,數組也可以作為方法參數來傳遞。但要注意數組是屬於引用類型的參數傳遞,也就是在方法中對虛參數組的操作會影響實參數組。在Java語言應用程式的main方法中有一個字串數組參數,該數組中存放所有的命令行參數,命令行參數是給Java語言應用程式提供數據的手段之一,它跟在命令行運行的主類名之後,各參數之間用空格分隔。使用命令行參數有利於提高應用程式的通用性。如果命令行參數中有引號,則兩個引號之間的字元系列為一個參數,空格作為參數的分隔符號。如果引號不匹配,則從最後一個引號到行尾的所有字元將作為一個參數。2024年8月12日星期一242.4.2多維數組Java語言中,多維數組被看作數組的數組,多維數組的定義是通過對一維數組的嵌套來實現的。即用數組的數組來定義多維數組。多維數組中最常用的是二維數組,下麵主要以二維數組為例介紹多維數組的使用。聲明數組

二維數組的聲明與一維數組類似,如下所示:格式1:數組元素類型數組名[][]格式2:數組元素類型[][]數組名;2024年8月12日星期一25二維數組的創建和初始化為二維數組創建存儲空間有兩種方式:直接為每個一維數組分配空間;從最高維開始,按照由高到低的順序為每一維數據分配空間Java語言中,由於把二維數組看作是數組的數組,不要求二維數組中每一維數組的大小相同。要獲取數組的行數,可以通過如下方式獲得:數組名.length要獲取數組的列數則要先確定行,再通過如下方式獲取列數:數組名[行標].length

在二維數組創建空間時,如果元素是基本類型,系統將按照默認規則賦初值;如果元素類型為其他引用類型,則其所有元素為未賦初值狀態(null)。但可以在數組定義時同時進行初始化。2024年8月12日星期一262.5流程控制語句流程控制語句是用來控制程式中各語句執行順序的語句,使程式設計中非常關鍵和基本的部分。流程控制語句可以把單個的語句組合成有意義的、能完成一定功能的小模組。最主要的流程控制方式是結構化程式設計中規定的三種基本流程結構。2.5.1結構化程式設計的三種基本流程結構化程式設計原則是公認的面向過程編程應遵循的原則,它使得程式段的邏輯結構清晰、層次分明,有效地改善了局部程式段的可讀性和可靠性,保證了程式品質,提高了程式開發的效率。2024年8月12日星期一27結構化程式設計的最基本原則是:任何程式都是可以由三種基本流程結構構成,即順序結構、分支結構和迴圈結構。2024年8月12日星期一28三種流程結構的主要特點是:均為單入單出結構,每種結構僅有一個入口點,結構執行完畢後,僅有一個出口點。順序結構和選擇結構為開放式結構,執行完後立即退出;而迴圈結構為封閉式結構,只要滿足條件則反復執行結構內的語句。三種基本結構可以相互嵌套。2024年8月12日星期一292.5.2順序結構順序結構是三種結構中最簡單的一種,即語句按照書寫的順序依次執行。從宏觀上來看,整個程式就是一個順序結構。2.5.3選擇結構Java中的分支結構可以由兩種選擇語句來實現,一個是實現雙選擇的if語句,另一個是實現多分支的switch開關語句。2024年8月12日星期一30if語句if語句的一般形式是:if(條件運算式)語句塊;//if分支

else

語句塊;//else分支塊其中條件運算式用來選擇判斷程式的流程走向。在程式的實際執行過程中,如果條件運算式的取值為真,則執行if分支的語句塊,否則執行else分支的語句塊。在編寫程式時,也可以不書寫else分支,此時若條件運算式的取值為假,則繞過if分支直接執行if語句後的其他語句。有時也會用到if-else複合結構。但要注意else字句不能單獨作為語句使用,它必須和if配對使用。

2024年8月12日星期一31switch語句switch語句是多分支的開關語句,它的一般格式如下:switch(運算式){case判斷值1:語句塊1;//分支1case判斷值2:語句塊2;//分支2……case判斷值n:語句塊n;//分支ndefault:語句塊n+1//分支n+1}

switch語句執行時,首先計算運算式的值,這個值必須是整型或字元型,同時應與各個case分支的判斷值的類型相一致。計算出運算式的值之後,將它先與第一個case分支的判斷值相比較。若相同,則程式轉入第一個case分2024年8月12日星期一32支的語句塊;否則,再將運算式的值與第二個分支相比較……依此類推。如果運算式的值與任何一個case分支都不相同,則轉而執行最後的default分支;在default分支不存在的情況下,則跳出整個switch語句。各個case和default出現的次序不影響執行的結果。

需要注意各個case後面的常量不能有相同的值。還有各個語句塊可以有多條語句,不必使用大括弧。switch語句也允許嵌套。還要注意的是,switch語句的每一個case判斷,都只負責指明流程分支的入口點,而不負責指定分支的出口點,分支的出口點需要編程時用相應的跳轉語句來標明。2024年8月12日星期一332.5.4迴圈結構迴圈結構是利用迴圈語句來實現的。迴圈語句是在一定條件下反復執行一段代碼,被反復執行的程式段稱為循環體。Java語言中提供的迴圈語句有三種:while語句、do-while語句、for語句。

2024年8月12日星期一34while語句while語句的一般形式是:

while(條件運算式)

循環體while語句的執行時,首先檢查運算式的值是否為真,若為真,則執行循環體,然後繼續判斷是否繼續迴圈,直到運算式的值為假,直到運算式的值為假,執行後續語句。循環體通常是一個組合語句,也可以是單個語句。

while迴圈的特點是“先判斷,後執行”。如果條件已開始就不滿足,則迴圈執行為0次。另外,在循環體中通常通過執行某個操作來改變迴圈條件,如果迴圈條件不改變,則迴圈會陷入死迴圈中。在程式設計中要避免死迴圈。2024年8月12日星期一35do-while語句如果需要在任何情況下都先執行一遍循環體,則可以採用do-while迴圈,它的格式如下:do{

循環體}while(條件運算式)do-while迴圈的特點是:“先執行,後判斷”,在執行時,先執行循環體的語句,在檢查運算式,若運算式的值為真,則繼續執行循環體,否則,結束迴圈,執行後續語句。與while迴圈相比,循環體至少要執行一次。2024年8月12日星期一36for語句

for語句一般用於事先能夠確定迴圈次數的場合,其格式為:

for(控制變數設定初值;迴圈條件;迭代部分)循環體for語句執行時,首先執行初始化操作,然後判斷終止條件是否滿足,如果滿足,則執行循環體中的語句,最後通過執行迭代部分給控制變數增值。完成一次迴圈後,重新判斷終止條件。使用for迴圈要注意一下幾點:初始化、終止條件以及迭代部分都可以為空(但分號不能少),三者均為空時,相當於一個無限迴圈。在初始化部分和迭代部分可以使用逗號運算式

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论