版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Java語言基礎金陵科技學院下一頁2Java語言基礎2復 習概述JAVA的歷史與發(fā)展Java語言概貌Java開發(fā)工具:JDK實用程序Java的程序結構Applet與applicationJava語言基礎3本講主要內容基本語法規(guī)則數據類型運算符與表達式流程控制語句分支語句循環(huán)語句Java的數組和字符串Java語言基礎4Java語言的基本語法規(guī)則分隔符注釋標識符關鍵字
Java語言基礎5分隔符Java是一種自由格式的語言,可以用任意個空格、制表符、換行符隔開每個詞。如:
System.
out.
println
("Counted"+count+"chars.");分號作為語句的結束符,每個語句必須以分號作為結束符;空格作為關鍵字、標識符之間的分隔符;逗號作為數據的分隔符。
Java語言基礎6注釋三種注釋格式://實現單行注釋/*這是
*一段注釋,
*它跨越了多個行
*//**JDK的javadoc工具用這種注釋信息能自動從程序中抽出類的公共接口形成Web文檔。
… */
Java語言基礎7標識符定義:標識符用來作為類、方法和變量的名字語法規(guī)則:以字母、下劃線(_)、美元符號($)開始,后跟這三種符號或數字,也可是Unicode字符集中的漢字。 例如:identifier、_sys_var1、$change、userName、user_name、整數1必須要區(qū)分大小寫
沒有長度限制不允許插入空格標識符不能是關鍵字,但是它可包含一個關鍵字作為它的名字的一部分
Java語言基礎8標識符(續(xù))約定:類名,接口名:首字母應該大寫。
classThisIsAClassName
interfaceAccount字段、方法以及對象:首字母應小寫。
thisIsMethodOrFieldName()常量:全部用大寫字母表示。
如:GREENHEAD_COUNTJava包(Package)屬于一種特殊情況:它們全都是小寫字母,即便中間的單詞亦是如此。 如:packagejava.awt.event對于所有標識符:包含的所有單詞都應緊靠在一起,而且大寫中間單詞的首字母(除包名外)。Unicode字符編碼使得標識符可以使用漢字,如:int整數=10;標識符名應具有一定的含義,以增加程序的可讀性Java語言基礎9關鍵字關鍵字是由系統(tǒng)定義的一些詞,它們在程序里代表特定的含義。定義標識符時要避免使用這些詞。abstractbooleanbreakbytecasecatchcharclassconst*continuedefaultdodoubleelseextendsfinalfinallyfloatforgoto*ifimplementsimportinstanceofintinterfacelongnativenewnullpackageprivateprotectedpublicreturnshortstaticsuperswitchsynchronizedthisthrowthrowstransienttryvoidvolatilewhileJava語言基礎10數據類型基本數據類型常量變量復合數據類型Java語言基礎11基本數據類型數據類型 關鍵字占用比特數缺省數值
布爾型 boolean 8 false 字符型 char 16
‘\u0000’
字節(jié)型 byte 8 0短整型 short 16 0 整型 int 32 0 長整型 long 64 0L
浮點型 float 32 0.0F
雙精度型 double 64 0.0D
Java語言基礎12常量直接常量數值型常量,如78,-7.8非數值型常量,如‘A’,“str”,false符號常量以標識符形式表示必需先聲明,后使用常量聲明finalintMAX=10;Java語言基礎13常量整型常量:32位(一般)和64位(長型L/l)255(十),0377(八),0XFF(十六)浮點常量:32位(一般F/f)和64位(雙精度D/d)19.4(一般表示) 2.4E-4(指數表示)boolean常量:true,false不能轉化為int型Java語言基礎14常量(續(xù))char型常量:用單引號界定‘
’,‘
0x20’(16進制表示的ASCII碼空格)采用Unicode碼,從‘\u0000’~’\uFFFF’,其中‘\u0000’~‘\u00FF’為ASCII碼字符串常量:用雙引號界定“HELLO,WORLD”+號的特殊用法Java語言基礎15常量(續(xù))特殊字符(轉義字符)引用方法 對應Unicode碼 意義 ‘\b’
‘\u0008’
回退 ‘\t’
‘\u0009’
水平制表符tab ‘\n’
‘\u000a’
換行 ‘\r’
‘\u000d’
回車 ‘\”’
‘\u0022’
雙引號 ‘\’’
‘\u0027’
單引號 ‘\\’
‘\u005c’
反斜線 Java語言基礎16變量變量是保存在程序中可被改變的數據變量的4要素:名字類型值作用域Java中變量的類型:基本數據類型引用數據類型
Java語言基礎17變量的聲明格式:[modifier]typeidentifier[=value][,identifier[=value]…];例如:inta,b,c;staticdoubled1,d2=0.0;
方法參數和異常處理參數的變量值是由調用者給出。變量聲明:先聲明,后使用Java語言基礎18變量的作用域變量的作用域指明可訪問該變量的一段代碼按作用域來分,變量可以有下面幾種:成員變量Membervariable方法參變量Methodparameter局部變量Localvariable異常處理參變量Exception-handlerparameterJava語言基礎19變量的作用域(續(xù))Java語言基礎20變量的作用域(續(xù))變量的屏蔽與沖突塊內定義的變量屏蔽所在類定義的同名變量同一塊內定義兩個同名變量將引起沖突例:Customer.javaJava語言基礎21變量的默認初始化值Java語言基礎22復合數據類型數組,類class,接口interface屬于復合類型(引用類型)。復合類型(引用類型)的變量是所引用的對象的內存地址。Java語言基礎23復合數據類型例子:publicclassMyDate{privateintday=1;privateintmonth=1;privateintyear=2000;publicMyDate(intday,intmonth,intyear){...}publicvoidprint(){...}}classTestMyDate{publicstaticvoidmain(String[]args){
MyDatemy_birth=newMyDate(22,7,1964);}Java語言基礎24復合數據類型創(chuàng)建一個類對象:MyDatemy_birth=newMyDate(22,7,1964);Java語言基礎25Java的運算符運算符指明對操作數所進行的運算。按功能分類:算術運算符(+,-,*,/,%,++,--)關系運算符(>,<,>=,<=,==,!=)布爾邏輯運算符(!,&&,||,|,&)位運算符(>>,<<,>>>,&,|,^,~)賦值運算符(=,及其擴展賦值運算符如+=)條件運算符(?:)其它(包括分量運算符·,下標運算符[],實例運算符instanceof,內存分配運算符new,強制類型轉換運算符(類型),點操作符.等)Java語言基礎26算術運算符算術運算符雙目運算符 +,-,×,/,%(取余)
+號:可連接字符串“He”+“l(fā)lo”為“Hello”單目運算符(自運算符)++,--,運算符的位置決定自運算的順序,只能用于整數和字符類型變量,不可用于表達式
例:a=3,b=5;c=(a++)*b; a=?,c=?
++(i-1);//語法錯誤Java語言基礎27關系運算符關系運算符對兩運算量大小關系的比較,結果是布爾量>,<,>=,<=,!=,==(與=不同)Java中,大部分數據類型的數據(包括基本類型和復合類型)都可以通過==或!=來比較是否相等(這與C、C++不同)boolean類型不能比較大小Java語言基礎28邏輯運算符邏輯運算符表示兩布爾量的邏輯關系,結果仍為布爾量不可將一個非布爾值當作布爾值在邏輯表達式中使用例如:以下是非法的:inti=1,j=2;i&&ji||j!i以下是合法的:(i<10)&&(j>10)(i<10)||(j>10)Java語言基礎29邏輯運算符邏輯運算符雙目:(與、或)非簡潔運算符:&,|
簡潔運算符:&&,|| (短路運算)1、a&&b&&c2、a||b||c3、x=y=truea=5,b=3,c=2,d=1(x=a<b)&&(y=c<d)x,y=?單目:?。ǚ瘢㎎ava語言基礎30位運算符位運算符按位運算:~,&,|,^移位運算:<<,>>,>>>
>>>不帶符號右移;
Java語言基礎31位運算符(~,&,|,^)Java語言基礎32位運算符(>>,>>>,<<)>>:將一個數的各二進制位全部右移若干位,移到右端的低位被舍棄,最高位則移入原來高位的值
例如: a=00110111,則a>>2=00001101 b=11010011,則
b>>2=11110100右移一位相當于除2取商 例如:128>>1returns128/21=64 -256>>4returns-256/24=-16Java語言基礎33位運算符(>>,>>>,<<)>>>:一個數的各二進制位無符號右移若干位,與運算符>>相同,移出的低位被舍棄,但不同的是最高位補0。如a=00110111,則a>>>2=00001101 b=11010011,則b>>>2=00110100Java語言基礎34位運算符(>>,>>>,<<)<<:用來將一個數的各二進位全部左移若干位。高位左移后溢出,舍棄不起作用,右補0。例如:a=00001111,則a<<2=00111100。在不產生溢出的情況下,左移一位相當于乘2 128<<1returns128*21=256 -16<<2returns-16*22=-64x 二進制表示x<<2x>>2 x>>>2 30 00011110 01111000 0000011100000111-17 11101111 10111100 1111101100111011Java語言基礎35賦值運算符在賦值運算符兩側的類型不一致的情況下:Java允許將任何基本類型轉換為為其他任何一種基本類型。但布爾值(boolean)要除外如果左側變量的數據類型的級別高,則右側的數據被自動轉化為與左側相同的高級的數據類,然后賦給左側變量否則,需要使用強制類型轉換運算符復合類型不能隨便進行強制類型轉換Java語言基礎36賦值運算符例如:longbigValue=99L;intsquashed=bigValue;//Wrongintsquashed=(int)bigValue;//OKintsquashed=99;//defaultintegerliteraldoublez=12.414F;//12.414Fisfloat,OKfloatz1=12.414;//12.414isdouble,illegal復合(擴展)賦值運算符賦值運算符與算術、邏輯、位運算符組成二元運算符@=,a@=b即a=a@ba+=ba=a+b;Java語言基礎37條件運算符三目條件運算符(?:)D=表達式A?表達式B:表達式C A為真,返回表達式BA為假,返回表達式C返回值類型為B,C中的長類型例: intx=5,y=8;shortz=2; intk=x<3?y:z; //2(int型)Java語言基礎38JAVA的運算符(續(xù))運算符的優(yōu)先級括號最優(yōu)先算術運算符移位運算符關系運算符大部分邏輯運算符(除了!號)和按位運算符條件運算符賦值運算符Java語言基礎39JAVA的流程控制語句結構化程序設計的三種基本控制語句順序分支循環(huán)按語句書寫的先后順序執(zhí)行在若干路徑中有條件地選擇執(zhí)行當某條件成立時,反復執(zhí)行一段代碼Java語言基礎40分支(選擇)語句IF語句if(條件表達式)語句塊;if(條件表達式)語句組1;
else 語句組2;語句塊用大括號括起的語句集合else與最近的if配合,用來消除二義性If條件A{ 1……… }If條件B{ 2……… }else{ 3……… }Java語言基礎41分支(選擇)語句(續(xù))嵌套的if-else-if if(expression) statement; elseif(expression) statement; elseif(expression) ………………. else statement;Java語言基礎42多分支開關語句SWITH語句
switch(表達式) { case判斷值1:語句組1;[break;]
case判斷值2:語句組2;[break;]
……
default:語句組n;}根據表達式取值的不同轉向不同的分支每個case分支都只是入口點,以break語句作為出口點【例2.4】求一個日期(年月日)對應的是星期幾Java語言基礎43JAVA的循環(huán)語句
for語句當型循環(huán),功能最強、使用最多、最靈活for(表達式1;表達式2;表達式3) 語句組;表達式1:循環(huán)變量賦初值,可使用外部沒有定義的循環(huán)變量表達式2:循環(huán)條件表達式3:循環(huán)變量修正【例2.9】輸出九九乘法表Java語言基礎44JAVA的循環(huán)語句(續(xù))求表達式1求表達式3循環(huán)體求表達式2假真Java語言基礎45JAVA的循環(huán)語句(續(xù))while語句當型循環(huán):while(表達式) 語句組;執(zhí)行過程:先計算表達式若為真則執(zhí)行語句組,并轉回再計算表達式若為假
則跳出循環(huán),執(zhí)行后面的語句。【例2.6】用輾轉相除法求兩個整數的最大公因數Java語言基礎46JAVA的循環(huán)語句(續(xù))do-while語句直到型循環(huán): do{
語句
}while(表達式);執(zhí)行過程:先執(zhí)行語句,再計算表達式若為真則轉回再執(zhí)行語句,若假則跳出循環(huán)循環(huán)體至少執(zhí)行一次【例2.7】計算Fibonacci序列Java語言基礎47while與do-while語句執(zhí)行流程Java語言基礎48轉移語句return語句:從方法中返回值break語句:從循環(huán)體內跳出至后面語句,結束當前循環(huán)。跳出當前循環(huán)體,不是跳出當前大括號對。循環(huán)嵌套時,break語句只跳出當前循環(huán)。跳出switch分支。continue語句跳過本輪循環(huán)剩余語句,直接進入當前循環(huán)體的下一輪。Java語言基礎49JAVA的數組Java數組是引用數據類型,一個數組變量采用引用方式保存多個數組元素。Java數組元素可以是基本數據類型,也可以是引用類型。數組在其他語言中僅是相同數據類型元素的集合;而Java中還提供了數組類(Arrays),有自身的屬性和方法。Java語言基礎50JAVA數組的聲明數組的聲明方法:intintArray[];--([]不是指長度可變)int[]intArray;數組的長度不是在聲明時指定,而是在創(chuàng)建時由所開辟的內存單元數目確定Java語言基礎51JAVA數組的創(chuàng)建數組的創(chuàng)建步驟創(chuàng)建數組空間對每個數組元素進行初始化系統(tǒng)默認初始化人工初始化Java語言基礎52創(chuàng)建一維數組的過程圖2.8一維數組Java語言基礎53JAVA數組創(chuàng)建方法創(chuàng)建方法:先聲明后創(chuàng)建
intintArray[]; intArray=newint[10];在聲明的同時創(chuàng)建
intintArray[]=newint[10];在聲明的同時初始化
int[]intArray={1,2,3,4,5};例:ArraySize.java數組元素為對象的情況數組元素為基本數據類型的情況Java語言基礎54JAVA數組的使用數組元素的引用用下標變量訪問數組元素(0~length-1)如:arrayName[0],arrayName[5*i]越界異常越界時系統(tǒng)會產生異常ArrayIndexOutofBounds克服異常方法:數組長度不直接用下標值表示,而用arrayName.length表示【例2.5】用一維數組計算Fibonacci序列值Java語言基礎55數組變量的引用賦值Array_reference.javaJava語言基礎56JAVA的二維數組數組的數組1.定義二維數組定義二維數組有三種形式:(1)數組元素類型[][]數組名稱;例如:int[][]results;(2)數組元素類型數組名稱[][];例如:Stringabc[][];(3)數組元素類型[]數組名稱[];例如:Point[]points[];Java語言基礎57JAVA的二維數組2.創(chuàng)建二維數組二維數組可以看作一個按照行和列存儲數據的內存空間按照數組每行和每列的長度,有兩種創(chuàng)建方法(1)矩陣數組(2)非矩陣數組(不規(guī)則二維數組)Java語言基礎58矩陣數組數組每行、每列之間長度相同Java語言基礎59矩陣數組【例2.11】幻方816357492Java語言基礎60非矩陣數組數組每行、每列之間長度不同Java語言基礎61JAVA的二維數組3.靜態(tài)初始化二維數組(1)按照順序依次給每個元素賦值。例如給數組results賦值:int[][]results;results=newint[2][3];results[0][0]=67;results[0][1]=97;results[0][2]=100;results[1][0]=89;results[1][1]=73;results[1][2]=65;(2)在定義數組的同時直接給數組賦初值。例如:int[][]results={{67,97,100},{89,73,65}};Java語言基礎62JAVA的二維數組4.二維數組的長度二維數組的長度是指行數的個數,二維數組每行的長度是指每行的元素個數。例如:results.length表示二維數組results的長度,也就是行數;results[i].length表示二維數組results第i行的長度,也就是元素個數。Java語言基礎63【例2.15】楊輝三角JAVA的二維數組Java語言基礎64數組的復制創(chuàng)建的每個數組都是Array類中的一個對象,所以在復制數組時有兩種情況:(1)兩個數組指向同一個元素空間。例如:int[]num_1={1,2,3,4,5,6};int[]num_2;num_2=num_1;Java語言基礎65數組的復制(2)兩個數組指向內容相同的兩個元素空間。如果要真正復制一個數組,使修改復制數組的值時,不會影響到源數組的話,則需要定義一個和源數組長度相同的數組,然后再把源數組中的元素一一復制給新的數組。例:ArrayTest.java使用方法:System.arraycopy(源數組名,源數組起始下標,目的數組名,目的數組起始下標,拷貝長度)Java語言基礎66JAVA中的字符串Java中的字符串也是類。由于使用頻繁,有時也被視為基本類型遇到雙引號自動創(chuàng)建String類的對象提供字符串運算符,如字符串的連接:+定長字符串:String類(效率較高)不能更改可變字符串:StringBuffer類(使用靈活)可追加、插入、修改,但內存管理復雜Java語言基礎67JAVA中的字符串(續(xù))創(chuàng)建字符串StringBufferdest=newStringBuffer(len);Strings=“abc”;Strings=newString(“abc”);字符串的訪問:獲取String的信息intlength():求字符串的長度charcharAt(intindex):返回指定位置處的字符StringsubString(intbegin,intend):返回指定頭尾的字符子串Booleanequals(Objectobj):比較字符串是否相等StaticStringformat(Stringformat,Object…args):獲得指定格式字符串Java語言基礎68JAVA中的字符串(續(xù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度廁所革命項目廁所革命標準制定與實施合同3篇
- 2025年度智能溫室大棚建筑與物聯網技術合同4篇
- 2025年度臨時用電安全設施更新改造協議4篇
- 2025年度美團外賣商家客戶關系管理系統(tǒng)協議4篇
- 2025年建筑材料綠色生產技術研發(fā)與應用合同3篇
- 2025年鴨苗養(yǎng)殖與冷鏈物流銷售合同規(guī)范3篇
- IT行業(yè)專屬保密合同書樣本下載版B版
- 科技前沿西安創(chuàng)新企業(yè)概覽
- 個人車輛租賃(2024版)
- 孕婦職場活力秘訣工作與健康雙豐收
- 高校鑄牢中華民族共同體意識教育的路徑研究
- 《面神經炎護理措施分析》3900字(論文)
- 城市微電網建設實施方案
- 企業(yè)文化融入中華傳統(tǒng)文化的實施方案
- 9.1增強安全意識 教學設計 2024-2025學年統(tǒng)編版道德與法治七年級上冊
- 《化工設備機械基礎(第8版)》全套教學課件
- 人教版八年級數學下冊舉一反三專題17.6勾股定理章末八大題型總結(培優(yōu)篇)(學生版+解析)
- 2024屆上海高考語文課內古詩文背誦默寫篇目(精校版)
- DL-T5024-2020電力工程地基處理技術規(guī)程
- 初中數學要背誦記憶知識點(概念+公式)
- 駕照體檢表完整版本
評論
0/150
提交評論