《Java SE程序設(shè)計及實踐》課件02-第2章 Java基礎(chǔ)知識_第1頁
《Java SE程序設(shè)計及實踐》課件02-第2章 Java基礎(chǔ)知識_第2頁
《Java SE程序設(shè)計及實踐》課件02-第2章 Java基礎(chǔ)知識_第3頁
《Java SE程序設(shè)計及實踐》課件02-第2章 Java基礎(chǔ)知識_第4頁
《Java SE程序設(shè)計及實踐》課件02-第2章 Java基礎(chǔ)知識_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

-1-掌握J(rèn)ava中的變量、常量、關(guān)鍵字掌握J(rèn)ava的基本數(shù)據(jù)類型掌握標(biāo)識符的定義掌握J(rèn)ava中數(shù)據(jù)類型的轉(zhuǎn)換掌握J(rèn)ava的運算符和表達式掌握J(rèn)ava的流程控制結(jié)構(gòu)掌握break、continue和return語句的用法和區(qū)別掌握數(shù)組的創(chuàng)建、初始化和拷貝方法目標(biāo)-2-標(biāo)識符Java中標(biāo)識符的命名必須滿足以下原則:標(biāo)識符必須以字母、下劃線(_)或美元符($)開頭,后面可以跟字母、數(shù)字、下劃線或美元符標(biāo)識符可以包含數(shù)字,但不能以數(shù)字開頭除下劃線“_”和“$”符號外,標(biāo)識符中不包含任何特殊字符,如空格標(biāo)識符區(qū)分大小寫,比如,“abc”和“Abc”是兩個不同的標(biāo)識符對于標(biāo)識符的長度沒有限制不能使用Java關(guān)鍵字作為標(biāo)識符表示指定給變量、方法和類的名稱,以便編譯器可唯一標(biāo)識它們-3-分隔符Java中分隔符分為兩類:沒有意義的空白符擁有確定含義的普通分隔符

分隔符用來分割和組合標(biāo)識符,輔助編譯程序閱讀和理解Java源程序包括空格、回車、換行和制表符(Tab)普通分隔符名稱功能說明{}大括號用來定義程序塊,類,方法以及局部范圍;[]中括號用來進行數(shù)組的聲明,也可用來表示撤銷對數(shù)組的引用;()小括號在定義和調(diào)用方法時用來容納參數(shù)表,在控制語句或強制類型轉(zhuǎn)換組成的表達式中用來表示執(zhí)行或計算的優(yōu)先級;;分號用來表示一條語句的結(jié)束;,逗號在變量聲明中,用于分割變量表中的各個變量;在for控制語句中用來將圓括號內(nèi)的語法連接起來;:冒號說明語句標(biāo)號。例如在三元運算符中使用;-3--4-常量Java中用final關(guān)鍵字來定義常量,常量被設(shè)定后,不允許再進行更改。常量定義的格式如下所示:final<data_type>var_name=var_value;關(guān)鍵字final表示這個變量只能賦值一次Java語言的任意數(shù)據(jù)類型之一常量名,要符合標(biāo)識符命名規(guī)則,一般常量全部大寫,用下劃線分隔多個單詞常量值示例finaldoublePI=3.1415;//聲明了一個double型的常量,值為3.1415-4--5-變量變量是Java程序中最基本的存儲單元;變量必須先聲明再使用,格式如下所示:<data_type>var_name=var_value;Java語言的任意數(shù)據(jù)類型之一變量名,要符合標(biāo)識符命名規(guī)則,一般用小寫,當(dāng)有多個單詞時,從第二個單詞開始,首字母大寫變量初始值示例intcount=10;//聲明了一個int型的變量,初始值為10inti,j,k;//聲明了三個int型變量,沒有賦初始值-5--6-數(shù)據(jù)類型-1Java是一門強類型語言。即所有的變量都必須顯式聲明其類型;Java的數(shù)據(jù)類型分為兩大類:基本數(shù)據(jù)類型和引用類型;基本數(shù)據(jù)類型整數(shù)類型:byte,short,

int,long浮點類型:float,double字符類型:char布爾類型:boolean引用類型類(class)接口(interface)數(shù)組(如int[])枚舉(enum)注解(annotation)注意:Java除了基本數(shù)據(jù)類型的八種外,其他的數(shù)據(jù)類型都為引用類型。-7-數(shù)據(jù)類型-2基本數(shù)據(jù)類型容納的值及其范圍:類型大小(位)取值范圍byte(字節(jié)型)8-27~27-1short(短整型)16-215~215-1int(整型)32-231~231-1long(長整型)64-263~263-1double(雙精度)323.4e-38~3.4e+38float(浮點型)641.7e-38~1.7e+38boolean(布爾型)1true/falsechar(字符型)16‘\u0000’~‘\uFFFF’-7--8-數(shù)據(jù)類型-3轉(zhuǎn)義字符轉(zhuǎn)義字符含義\ddd1到3位8進制數(shù)所表示的字符\uxxxx1到4位16進制數(shù)所表示的字符\’單引號\”雙引號\\反斜杠\b退格\r回車\n換行\(zhòng)t制表符使用一種特殊形式的字符常量值來表示一些難以用一般字符來表示的字符,以一個“\”開頭的字符序列-8--9-數(shù)據(jù)類型-4引用類型類型說明數(shù)組具有相同數(shù)據(jù)類型的變量的集合類(class)變量和方法的集合。如Employee類包含了員工的詳細(xì)信息和操作這些信息的方法接口(interface)是一系列方法的聲明,方法特征的集合??梢詫崿F(xiàn)Java中的多重繼承枚舉(enum)枚舉類型是一種獨特的值類型,它用于聲明一組命名的常數(shù)注解(annotation)Annotation提供一種機制,將程序的元素如:類,方法,屬性,參數(shù),本地變量,包和元數(shù)據(jù)聯(lián)系起來-9--10-類型轉(zhuǎn)換-1在Java中,數(shù)據(jù)的類型如果是相容的,那么一種數(shù)據(jù)類型可以轉(zhuǎn)換成另外一種數(shù)據(jù)類型。數(shù)據(jù)類型轉(zhuǎn)換的方式有“自動類型轉(zhuǎn)換”和“強制類型轉(zhuǎn)換”兩種。-11-自動類型轉(zhuǎn)換 將一種類型的變量賦給另一種類型的變量時,就會發(fā)生自動類型轉(zhuǎn)換,發(fā)生自動類型轉(zhuǎn)換需要滿足: 如下面箭頭的指向,在運算時基本數(shù)據(jù)類型可以進行自動類型轉(zhuǎn)換

類型轉(zhuǎn)換-2兩種類型兼容目標(biāo)類型大于源類型byte→short→char→int→long→float→double-12-強制類型轉(zhuǎn)換 表示范圍大的數(shù)據(jù)類型要轉(zhuǎn)換成表示范圍小的數(shù)據(jù)類型,需要用到強制類型轉(zhuǎn)換,語法格式如下:

示例:

類型轉(zhuǎn)換-3data_typevar1=(data_type)var2;目標(biāo)類型目標(biāo)變量源變量inti=10;byteb=(byte)i;//把int型變量i強制轉(zhuǎn)換為byte型-13-變量的作用域變量被定義為只在某個程序塊內(nèi)或只在方法體內(nèi)部有效,這種類型的變量通常被稱為“局部變量”。局部變量的作用范圍有限,只在相應(yīng)的方法體內(nèi)或程序塊內(nèi)有效,超出范圍,這些變量無效。聲明一個變量后,聲明語句到所在作用域結(jié)束的這部分程序為此變量的有效范圍;超出變量作用域,該變量即不能再被訪問。-14-變量的初始化變量在使用之前必須被初始化方式一:聲明變量的同時賦值:

intcount=0;

方式二:先聲明變量,然后再賦值:

intnum; num=4;-15-運算符對數(shù)據(jù)進行運算時,需要使用各種不同的運算符;在Java語言中,運算符分為下面幾類:算術(shù)運算符比較運算符邏輯運算符位運算符賦值運算符條件運算符-16-算術(shù)運算符算術(shù)運算符運算符數(shù)學(xué)含義示例運算符數(shù)學(xué)含義示例+加a+b%取模a%b-減或負(fù)號a-b,-b++自增a++,++a*乘a*b--自減a--,--a/除a/b示例publicclassMathOP{ publicstaticvoidmain(String[]args){ inta=13;//聲明int變量a,并賦值為13 intb=4;//聲明int變量b,并賦值為4 System.out.println("a+b="+(a+b));//輸出a+b的值

System.out.println("a-b="+(a-b));//輸出a-b的值

System.out.println("a*b="+(a*b));//輸出a*b的值

System.out.println("a/b="+(a/b));//輸出a/b的值

System.out.println("a%b="+(a%b));//輸出a%b的值

}}a+b=17a-b=9a*b=52a/b=3a%b=1-16--17-比較運算符

比較運算符運算符數(shù)學(xué)含義示例運算符數(shù)學(xué)含義示例>大于a>b>=大于等于a>=b<小于a<b<=小于等于a<=a==等于a==b示例 publicclassCompareOP{ publicstaticvoidmain(String[]args){ inta=10; intb=20; System.out.println("a>b="+(a>b)); System.out.println("a<b="+(a<b)); System.out.println("a==b="+(a==b)); System.out.println("a>=b="+(a>=b)); System.out.println("a<=b="+(a<=b)); }} a>b=falsea<b=truea==b=falsea>=b=falsea<=b=true-17--18-邏輯運算符邏輯運算符運算符數(shù)學(xué)含義示例!非!a&&與a&&b||或a||b注意:在邏輯運算時,為了提高運行效率,Java提供了“短路運算”功能。-18--19-邏輯運算符示例

邏輯運算符示例 publicclassBooleanOP{ publicstaticvoidmain(String[]args){ booleantrueValue=true;//聲明boolean變量t,并賦值為true booleanfalseValue=false;//聲明boolean變量f,并賦值為false //! System.out.println("!trueValue="+!trueValue); System.out.println("!falseValue="+!falseValue); //&& System.out.println("trueValue&&true="+(trueValue&&true)); System.out.println("falseValue&&true="+(falseValue&&true)); System.out.println("trueValue&&false="+(trueValue&&false)); System.out.println("falseValue&&false="+(falseValue&&false)); //|| System.out.println("trueValue||true="+(trueValue||true)); System.out.println("falseValue||true="+(falseValue||true)); System.out.println("trueValue||false="+(trueValue||false)); System.out.println("falseValue||false="+(falseValue||false)); }}

輸出結(jié)果:!trueValue=false!falseValue=truetrueValue&&true=truefalseValue&&true=falsetrueValue&&false=falsefalseValue&&false=falsetrueValue||true=truefalseValue||true=truetrueValue||false=truefalseValue||false=false-19--20-位運算符位運算符:Java直接對整數(shù)類型的位進行操作。運算符數(shù)學(xué)含義說明示例~按位非(NOT)按位非也叫做補,一元運算符NOT“~”是對其運算數(shù)的每一位取反。~00101010=11010101&按位與(AND)按位與運算符“&”,如果兩個運算數(shù)都是1,則結(jié)果為1。其他情況下,結(jié)果均為零。00101010&00001111=00001010|按位或(OR)按位或運算符“|”,任何一個運算數(shù)為1,則結(jié)果為1。00101010|00001111=00101111^按位異或(XOR)按位異或運算符“^”,只有在兩個比較的位不同時其結(jié)果是1。<<左移value<<num。左移運算符<<使指定值的所有位都左移num位。每左移一個位,高階位都被移出(并且丟棄),并用0填充右邊。11111000<<1=11110000>>右移右移運算符>>使指定值的所有位都右移num位。當(dāng)值中的某些位被“移出”時,這些位的值將丟棄。右移時,被移走的最高位(最左邊的位)由原來最高位的數(shù)字補充。11111000>>1=11111100>>>無符號右移無符號右移運算符>>>使指定值的所有位都右移num位。當(dāng)值中的某些位被“移出”時,這些位的值將丟棄。右移時,被移走的最高位(最左邊的位)固定由0補充。11111000>>>1=01111100-20--21-賦值運算符賦值運算符賦值運算符為一個單獨的等于號“=”,它將值賦給變量。如:

inti=3;

此外賦值運算符可以與算術(shù)運算符結(jié)合成一個運算符。如:i+=3;//等效于i=i+3運算符示例運算符示例+=a+=b/=a/=b-=a-=b%=a%=b*=a*=b

類似的賦值運算符如下表所示:-21--22-條件運算符條件運算符

條件運算符是三元運算符,語法格式為:

<表達式>?e1:e2

表達式值的類型為布爾類型,若表達式的值為真,則返回e1的值;表達式的值為假,則返回e2的值。

示例:

publicclassThreeOP{publicstaticvoidmain(String[]args){intnum1=3,num2=6;booleanresult=(num1>num2)?true:false;System.out.println(result);}}演示結(jié)果:

false

-22--23-運算符優(yōu)先級優(yōu)先次序運算符優(yōu)先次序運算符1.[]()9&2++--!~instanceof10^3new(type)11|4*/%12&&5+-13||6>>>>><<14?:7><>=<=15=+=-=*=/=%=^=8==!=16&=|=<<=>>=>>>=

優(yōu)先級是指同一表達式中多個運算符被執(zhí)行的次序,在表達式求值時,先按運算符的優(yōu)先級由高到低的次序執(zhí)行。

Java中運算符優(yōu)先級如下表所示:-23-流程控制Java程序通過控制語句來執(zhí)行程序流,從而完成一定的任務(wù)。Java中的控制語句有以下幾類:分支結(jié)構(gòu):if-else,switch迭代結(jié)構(gòu):while,do-while,for轉(zhuǎn)移語句:break,continue,return

-24--25-分支結(jié)構(gòu)

分支結(jié)構(gòu)是根據(jù)假設(shè)的條件是否成立,再決定執(zhí)行什么樣語句的結(jié)構(gòu)。分支結(jié)構(gòu)的作用是讓程序更具有選擇性。

Java中通常將假設(shè)條件以布爾表達式的方式實現(xiàn)。

Java語言中提供的分支結(jié)構(gòu)有:

if-else語句

switch語句

-25--26-if-else語句if-else語句是最常用的分支結(jié)構(gòu)。

if-else語句的語法結(jié)構(gòu)如下:

if(condition)statement1;[elsestatement2;]布爾表達式,結(jié)果為true或falsestatement1和statement2都是表示語句塊。當(dāng)condition為true時執(zhí)行前者,反之執(zhí)行后者。-26--27-switch語句

一個switch語句有一個控制表達式和一個由case標(biāo)記表述的語句塊組成。

switch語法如下:

switch(expression){case'value1':statement1;break;case'value2':statement2;break;case'valueN':statementN;break;[default:defaultStatement;]}表達式必須為byte,short,int或char類型value的值必須是與表達式類型兼容的特定的一個常量,并且不允許重復(fù)注意:在JDK7.0以后可以用String類型作為判斷條件,即expression和value可以是String類型的-27--28-迭代結(jié)構(gòu)

迭代結(jié)構(gòu)的作用是反復(fù)執(zhí)行一段代碼,直到滿足終止循環(huán)的條件為止。

Java語言中提供的迭代結(jié)構(gòu)有:while語句do-while語句for語句

-28--29-while/do-whilewhile語句

while語句是常用的迭代語句,語法如下:do-while語句

do-while用于循環(huán)至少執(zhí)行一次的情形。語句如下:

while(condition){statement;}如果條件為true,則執(zhí)行while循環(huán)體內(nèi)的語句;否則結(jié)束while循環(huán),執(zhí)行while循環(huán)體以后的語句。do{statement;}while(condition)do-while語句先執(zhí)行一次do語句塊,然后條件,如果為true,則繼續(xù)執(zhí)行循環(huán)體內(nèi)的語句;否則則結(jié)束do-while循環(huán)。

-29--30-for語句-1for語句是最常見的迭代語句,一般用在循環(huán)次數(shù)已知的情形

for語句結(jié)構(gòu)如下:

for(initialization;condition;update){statements;}1、首先初始化操作(initialization)2、判斷終止條件表達式(condition)是否滿足,如果為true,則執(zhí)行循環(huán)體中的語句statements;3、最后執(zhí)行迭代部分(update)4、完成一次循環(huán)后,重新判斷終止條件

-30--31-for語句-2示例:打印九九乘法表

publicclassNineTable{publicstaticvoidmain(String[]args){for(inti=1;i<=9;i++){for(intj=1;j<=i;j++){ //輸出a*b=c格式

System.out.print(j+"*"+i+"="+i*j+"");}//輸出空行

System.out.println();}}}1*1=11*2=22*2=41*3=32*3=63*3=91*4=42*4=83*4=124*4=16…..-31--32-轉(zhuǎn)移語句Java的轉(zhuǎn)移語句用在選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)中,使程序員更方便地控制程序執(zhí)行的方向。

Java語言中提供的轉(zhuǎn)移語句有:

break語句:在循環(huán)中用于立即從當(dāng)前循環(huán)終止控制;

continue語句:從其調(diào)用處跳至循環(huán)的開始處;

return語句:其之后的語句將不再執(zhí)行;

Java中沒有g(shù)oto語句,在多層循環(huán)時,可以用break、continue實現(xiàn)goto語句的功能。

-32--33-數(shù)組屬于引用數(shù)據(jù)類型;由類型相同的元素組成的有順序的數(shù)據(jù)集合;數(shù)組的長度是固定的,不能擴展;可以存儲基本數(shù)據(jù)類型或?qū)ο?;通過數(shù)組名和下標(biāo)可以訪問數(shù)組中的元素;-34-一維數(shù)組-1定義一維數(shù)組的語法如下:示例data_type[]varName;或data_typevarName[];任意數(shù)據(jù)類型數(shù)組名一維數(shù)組的標(biāo)識,可放置在數(shù)組名前面或后面inta[];//聲明一個整形數(shù)組doubleb[];//聲明一個雙精度浮點型數(shù)組-34--35-一維數(shù)組-2利用new來為數(shù)組型變量分配內(nèi)存空間訪問數(shù)組元素的格式a=newint[10];doubleb[]=newdouble[10]數(shù)組名[索引]數(shù)組的索引是從0開始到數(shù)組的長度減1-35--36-數(shù)組初始化數(shù)組的初始化有靜態(tài)和動態(tài)兩種方式。靜態(tài)初始化:在定義數(shù)組的同時對該數(shù)組進行初始化。例如:動態(tài)初始化:將數(shù)組的定義和初始化分開進行。例如:int[]k={1,2,3,4}或int[]k=newint[]{1,2,3,4}int[]array=newint[2];//數(shù)組的定義array[0]=1;//數(shù)組的第一個元素賦值array[1]=2;//數(shù)組的第二個元素賦值不能寫長度-36--37-使用數(shù)組使用數(shù)組存儲5個整數(shù),并輸出其中最大值。publicclassFindMax{publicstaticvoidmain(String[]args){int[]array={10,23,6,88,19};intindex=0;//最大值索引號,默認(rèn)為0intmax=array[index];//最大值

//尋找最大值

for(inti=1;i<array.length;i++){if(array[i]>max){index=i;max=array[i];}}System.out.println("最大值為"+max+",索引號為"+index);}}演示結(jié)果:最大值為88,索引號為3-37--38-數(shù)組拷貝-1數(shù)組的復(fù)制是指將源數(shù)組的元素一一做副本,賦值到目標(biāo)數(shù)組的對應(yīng)位置。常用的數(shù)組復(fù)制方法有如下三種:使用循環(huán)語句進行復(fù)制 使用循環(huán)語句遍歷源數(shù)組每個元素,賦值給目標(biāo)數(shù)組對應(yīng)位置。使用clone()方法 在Java中,Object類是所有類的父類,其clone()方法一般用于創(chuàng)建并返回此對象的一個副本,Java中認(rèn)為一切都是“對象”,所以使用該方法也可以實現(xiàn)數(shù)組的復(fù)制。publicclassArrayCopyClone{publicstaticvoidmain(String[]args){int[]array1={1,2,3,4,5};//復(fù)制

int[]array2=array1.clone();//輸出array2結(jié)果

for(inti=0;i<array2.length;i++){System.out.print(array2[i]+",");}}}演示結(jié)果:1,2,3,4,5,-38--39-數(shù)組拷貝-2使用System.arraycopy方法

arraycopy()方法是System類的一個靜態(tài)方法(并且是本地方法,效率非常高),其可以方便的實現(xiàn)數(shù)組拷貝功能,System.arraycopy()方法的結(jié)構(gòu)如下:publicclassArrayCopy{publicstaticvoidmain(String[]args){int[]array1={1,2,3,4,5};int[]array2=newint[array1.length];//復(fù)制

System.arraycopy(array1,0,array2,0,array1.length);//輸出array2結(jié)果

for(inti=0;i<array2.length;i++){System.out.print(array2[i]+",");}}}演示結(jié)果:1,2,3,4,5,System.arraycopy(from,fromIndex,to,toIndex,count)示例:-40-二維數(shù)組如果一維數(shù)組元素的數(shù)據(jù)類型還是一維數(shù)組的話,這種數(shù)組就被稱為二維數(shù)組。二維數(shù)組定義語法如下:data_type[][]varName;int[][]array=newint[10][];上面只是聲明了一個二維數(shù)組,并沒有初始化。同一維數(shù)組一樣,二維數(shù)組也是通過new關(guān)鍵字來創(chuàng)建,方式如下所示:

至少指定第一維的長度-40--41-動態(tài)初始化二維數(shù)組動態(tài)初始化二維數(shù)組:publicclassArray2DDemo{publicstaticvoidmain(String[]args){//定義二維數(shù)組

int[][]array=newint[2][2];for(inti=0;i<array.length;i++){for(intj=0;j<array[i].length;j++){array[i][j]=j+2*i+1;//把1,2,

溫馨提示

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

最新文檔

評論

0/150

提交評論