版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
程序設(shè)計(jì)第2章Java語(yǔ)言基礎(chǔ)前課回顧1、三大核心技術(shù)2、dos環(huán)境下編譯、運(yùn)行java程序的方法3、作業(yè)總結(jié)若源文件中包含public類(lèi)的定義,則源文件的文件名與該類(lèi)名相同;若源文件中有多個(gè)類(lèi)的定義,則會(huì)為每一個(gè)類(lèi)生成一個(gè)class文件;一個(gè)源文件中最多只能有一個(gè)public類(lèi)。2新課導(dǎo)入publicclassAdd{publicstaticvoidmain(String[]args){inta=3,b=4;intsum=a+b;System.out.println("sum="+sum);}}變量、數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式3學(xué)習(xí)目標(biāo)掌握J(rèn)ava編程語(yǔ)言的基本語(yǔ)法。掌握基本數(shù)據(jù)類(lèi)型、運(yùn)算符、表達(dá)式、控制語(yǔ)句的運(yùn)用。掌握一維數(shù)組和二維數(shù)組的處理。掌握簡(jiǎn)單的輸入輸出處理。養(yǎng)成良好的編程習(xí)慣,了解并遵守Java編程規(guī)范。學(xué)會(huì)編寫(xiě)簡(jiǎn)單的Java程序。4重難點(diǎn)復(fù)習(xí)鞏固C/C++語(yǔ)言的知識(shí)熟悉Java與C/C++之間在語(yǔ)言基礎(chǔ)方面的差異掌握數(shù)組的概念與應(yīng)用掌握簡(jiǎn)單的輸入輸出理解并熟記基本的知識(shí)點(diǎn)養(yǎng)成良好的編程習(xí)慣5目錄
2.1JAVA語(yǔ)言的基本要素
2.2變量、數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式
2.3控制結(jié)構(gòu)
2.4數(shù)組
2.5簡(jiǎn)單的輸入輸出62.1Java語(yǔ)言的基本要素程序員要學(xué)會(huì)正確使用這些要素,以便寫(xiě)出正確規(guī)范、可讀性好、易于維護(hù)的代碼。2.1.1關(guān)鍵字具有特定含義和專(zhuān)門(mén)用途的單詞,共53個(gè)。每種語(yǔ)言都有關(guān)鍵字,如C有32個(gè),C++有62個(gè),C#有77個(gè)。2.1.2Java標(biāo)識(shí)符用戶(hù)定義的。用來(lái)表示常量、變量、標(biāo)號(hào)、方法、類(lèi),接口以及包的名字。2.1.3分隔符用于分隔標(biāo)識(shí)符和關(guān)鍵字。2.1.4代碼注釋C++只有二種Java有三種72.1.1關(guān)鍵字共53個(gè),全部用小寫(xiě),包括二個(gè)單詞組成的instanceof保留不用的:goto、const從技術(shù)上看true,false,null不是關(guān)鍵字,而是字面常量82.1.2Java標(biāo)識(shí)符命名規(guī)則(強(qiáng)制要求)只能使用A-Z、a-z、0-9、_、$。只能以字母、下劃線(xiàn)和美元符開(kāi)頭,不能用數(shù)字開(kāi)頭。嚴(yán)格區(qū)分大小寫(xiě),沒(méi)有長(zhǎng)度限制。不能使用Java關(guān)鍵字。合法的標(biāo)識(shí)符Student、userName、logFile、getLength、read。合法但不宜使用的標(biāo)識(shí)符文件名、user_Name、_count、$error、abc、a1。非法的標(biāo)識(shí)符2mail、room#、final、userName。9標(biāo)識(shí)符命名規(guī)范(重要)命名規(guī)范用英語(yǔ)單詞,盡量使用完整的單詞,不要使用縮寫(xiě)。不使用美元符和下劃線(xiàn)(下劃線(xiàn)只在常量名中使用),盡量只使用字母,必要時(shí)才少量使用數(shù)字。不要使用常用的類(lèi)名以及內(nèi)部使用的常用名稱(chēng),如String,java等。通過(guò)標(biāo)識(shí)符中的大小寫(xiě)區(qū)分不同類(lèi)型的標(biāo)識(shí)符:常量名:PI、MAX_VALUE。變量名:fileName、radius、student。方法名:getArea、printResult。類(lèi)名:Student、Rectangle。接口名:IPerson、Shape。包名:org.ngweb.ch02。注意:編寫(xiě)代碼時(shí)一定要遵守上述規(guī)范。102.1.3分隔符空格這里指廣義的空格(即白字符)包括空格、換行(\n)、換頁(yè)(\f)、回車(chē)符(\r)、制表符(\t)五種。連續(xù)的多個(gè)空格與一個(gè)空格的效果相同。分隔符(){}[];,.有些資料認(rèn)為上述分隔符也是運(yùn)算符,如點(diǎn)運(yùn)算符。11如何編寫(xiě)可讀性好的代碼軟件企業(yè)都有編寫(xiě)代碼的規(guī)范,下面是常見(jiàn)的要求:一行只寫(xiě)一條語(yǔ)句,一行中不要寫(xiě)二條語(yǔ)句。一行只聲明一個(gè)變量,即使是相同類(lèi)型的變量也要分開(kāi)聲明。一條語(yǔ)句超過(guò)80個(gè)字符,分為二行或多行,續(xù)行應(yīng)增加一層縮格。適當(dāng)插入空行,例如在變量聲明與方法定義之間插入空行。表達(dá)式中圓括號(hào)的嵌套層數(shù)不應(yīng)超過(guò)三層,超過(guò)時(shí)可以分為多個(gè)表達(dá)式??s格一般為4個(gè)半角字符。用縮格區(qū)分花括號(hào)的嵌套,每增加一層花括號(hào)的嵌套,應(yīng)增加一層縮格?;ɡㄌ?hào)的嵌套層數(shù)一般不應(yīng)超過(guò)三層,超過(guò)時(shí)可以分為多個(gè)方法。前花括號(hào)不單獨(dú)占一行,放在相關(guān)語(yǔ)句的后面。后花括號(hào)單獨(dú)占一行,與前花括號(hào)的語(yǔ)句通過(guò)縮格對(duì)齊。有些規(guī)定與C++等語(yǔ)言不同,要注意區(qū)別。Eclipse提供重排代碼格式的功能。122.1.4代碼注釋單行注釋多行注釋文檔注釋選擇合適的注釋方式要養(yǎng)成寫(xiě)注釋的編程習(xí)慣//單行注釋?zhuān)該Q行符為結(jié)束。/*多行注釋?zhuān)⑨寖?nèi)容跨越數(shù)行。*//**文檔注釋的格式是HTML,因此,換行后面應(yīng)該加上HTML的斷行標(biāo)簽。<br>*/13文檔注釋文檔注釋將可以生成開(kāi)發(fā)文檔/***這是第二個(gè)程序,作了少許修改,可以從命令行中讀取第一個(gè)參數(shù),并<br>*將該參數(shù)輸出到屏幕上。<br>**@author黃能耿*/publicclassHelloWorld{ //hello保存英文的問(wèn)候語(yǔ) privatestaticStringhello="Hello,"; /** *這是程序的主方法<br> * *@param參數(shù):args字符串?dāng)?shù)組,從命令行中接收<br> *@return返回值:無(wú)<br>142.2變量、數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式2.2.1常量和變量2.2.2基本數(shù)據(jù)類(lèi)型2.2.3空類(lèi)型2.2.4引用數(shù)據(jù)類(lèi)型2.2.5運(yùn)算符2.2.6表達(dá)式、語(yǔ)句和語(yǔ)句塊152.2.1常量和變量字面常量符號(hào)常量符號(hào)常量是字面常量的別名,用關(guān)鍵字final修飾。例如: finaldoublePI=3.141593; finalintMAX_VALUE=99999;整型長(zhǎng)整型單精度雙精度字符型字符串型布爾型空1230L1.0F1.0D'a'"Java"truenull01230123L1.F1.'%'"\""false0x1230x100000000L.3F.3'\t'100000000L0F0'\\'0xC0CBL1E1F1E1'\''1.3E10F1.3E10'\u1234''\uC4Fe''漢'16變量變量用于標(biāo)識(shí)數(shù)據(jù)的存儲(chǔ)單元。四種變量成員變量:在類(lèi)中聲明,但是在方法之外,因此作用域范圍是整個(gè)類(lèi)。局部變量:在語(yǔ)句塊內(nèi)聲明,作用域范圍是從聲明處直到該語(yǔ)句塊的結(jié)束。方法參數(shù)變量:作用域范圍是在整個(gè)方法中。異常處理參數(shù)變量:作用域范圍是在異常處理語(yǔ)句塊中。 inti; intcount=1; Stringstr=“Java”; Studentstudent;172.2.2基本數(shù)據(jù)類(lèi)型8種基本類(lèi)型18整數(shù)和實(shí)數(shù)類(lèi)型整數(shù)只有4種,建議int通常只使用int一種實(shí)數(shù)根據(jù)需要選用19布爾類(lèi)型布爾型布爾型常量只有兩個(gè)true和false。它們是Java關(guān)鍵字(字面常量)。不能用0或1表示布爾型的值20字符和字符串類(lèi)型字符類(lèi)型是16位的,內(nèi)部用Unicode碼轉(zhuǎn)義字符與C類(lèi)似,但是16進(jìn)制是使用\uxxxx格式字符串類(lèi)型每個(gè)字符都是16位的,因上英文字母與漢字點(diǎn)同樣的內(nèi)存可以嵌入轉(zhuǎn)義字符以對(duì)象表示,不以\x0表示字符串的結(jié)束,內(nèi)部可以包含\u0000。長(zhǎng)達(dá)20億21基本數(shù)據(jù)類(lèi)型的轉(zhuǎn)換自動(dòng)類(lèi)型轉(zhuǎn)換(byte、short、char)intlongfloatdouble強(qiáng)制類(lèi)型轉(zhuǎn)換(cast)必須注意溢出字符型與整型的轉(zhuǎn)換在本質(zhì)上字符型是一個(gè)16位的正整數(shù)可以與整型轉(zhuǎn)換注意下述代碼的輸出不是A3問(wèn)題:下述代碼有什么錯(cuò)誤? i=130; //數(shù)字130超過(guò)了byte的取值范圍 b=(byte)i; //這時(shí)b的值是-126,發(fā)生了溢出
charch=’A’; System.out.println(ch+3); byteb=3; b=b+b;222.2.3空類(lèi)型空類(lèi)型(void)表示沒(méi)有類(lèi)型,僅用于方法返回值類(lèi)型的聲明上。注意:空(null)不是類(lèi)型,是一個(gè)字面常量,它表示沒(méi)有值,用于表示引用數(shù)據(jù)類(lèi)型的值為空。232.2.4引用數(shù)據(jù)類(lèi)型引用數(shù)據(jù)類(lèi)型類(lèi)接口枚舉數(shù)組引用數(shù)據(jù)類(lèi)型與指針引用數(shù)據(jù)類(lèi)型實(shí)質(zhì)上是一個(gè)指向內(nèi)存的指針Java中不允許對(duì)指針進(jìn)行直接的操作C中可對(duì)指針進(jìn)行操作,功能強(qiáng)大,但帶來(lái)不安全因素242.2.5運(yùn)算符37個(gè)運(yùn)算符=><!~?:==<=>=!=&&||++--+-*/&|^%<<>>>>>+=-=*=/=&=|=^=%=<<=>>=>>>=instanceof分為8大類(lèi)算術(shù)運(yùn)算符關(guān)系運(yùn)算符布爾運(yùn)算符位運(yùn)算符類(lèi)型比較運(yùn)算符條件運(yùn)算符字符串連接運(yùn)算符賦值運(yùn)算符等252627運(yùn)算符布爾運(yùn)算符注意簡(jiǎn)潔與和與的區(qū)別、簡(jiǎn)潔或和或的區(qū)別類(lèi)型比較運(yùn)算符比較一個(gè)變量的值是否是某種類(lèi)型Strings=null;System.out.println(sinstanceofString);//false,s指向的內(nèi)容不是String而是nulls=""; //雙引號(hào)之間沒(méi)有空格,長(zhǎng)度為0System.out.println(sinstanceofString); //true,s指向的內(nèi)容是String28publicclassdemo{publicstaticvoidmain(String[]args){{inta=6,b=8,c=12,d=15;booleanx=(++a>b++)&&(c++>d--);System.out.print(x);System.out.println("c="+c);}{inta=6,b=8,c=12,d=15;booleanx=(++a>b++)&(c++>d--);System.out.print(x);System.out.println("c="+c);}}}2930313233運(yùn)算符的優(yōu)先級(jí)342.3控制結(jié)構(gòu)2.3.1順序結(jié)構(gòu)語(yǔ)句塊2.3.2分支結(jié)構(gòu)if-elseswitch2.3.3循環(huán)結(jié)構(gòu)whiledo-whilefor增強(qiáng)型for2.3.4跳轉(zhuǎn)控制語(yǔ)句1.continue語(yǔ)句2.break語(yǔ)句3.return語(yǔ)句4.標(biāo)號(hào)標(biāo)號(hào)只能與continue、break配合使用352.4數(shù)組一維數(shù)組與C的數(shù)組不同二維數(shù)組是數(shù)組的數(shù)組Java語(yǔ)言的數(shù)組與C的數(shù)組的區(qū)別Java語(yǔ)言的數(shù)組是對(duì)象,有長(zhǎng)度屬性C的數(shù)組沒(méi)有長(zhǎng)度屬性362.4.1一維數(shù)組publicclassArrayForDemo{publicstaticvoidmain(String[]args){int[]score;//1.一維數(shù)組的聲明score=newint[4];//2.一維數(shù)組的創(chuàng)建(初始化)score[0]=80;//3.一維數(shù)組的引用score[1]=88;score[2]=78;score[3]=92;intsum;//總和//求平均成績(jī)sum=0;for(inti=0;i<score.length;i++){//4.一維數(shù)組的遍歷sum+=score[i];}System.out.println("平均成績(jī)是:"+sum/score.length);}}37一維數(shù)組的內(nèi)存分配int[]a;//聲明a=newint[3];//創(chuàng)建int[]a={1,2,3};//初始化for(inti=0;i<a.length;i++){a[i]=i+1;//引用}38例1數(shù)組的循環(huán),求最大值和平均值。publicclassArrayForDemo{ publicstaticvoidmain(String[]args){ int[]score={80,85,87,98,67,92}; intmax,sum=0; max=score[0]; for(inti=0;i<score.length;i++){ if(max<score[i]) max=score[i]; sum+=score[i]; } System.out.println("max="+max+",average="+sum/score.length); }}39增強(qiáng)型for循環(huán)publicclassArrayForDemo{ publicstaticvoidmain(String[]args){ int[]score={80,85,87,98,67,92}; intmax,sum=0; max=score[0]; for(intx:score){ if(x>max) max=x; sum+=x; }
System.out.println("max="+max+",average="+sum/score.length); }}402.4.2二維數(shù)組二維數(shù)組是數(shù)組的數(shù)組與一維數(shù)組的操作相似創(chuàng)建數(shù)組時(shí)有二種方法直接為每一維分配空間從高維開(kāi)始,分別為每一維分配空間41創(chuàng)建數(shù)組(一)直接為每一維分配空間int[][]a;//1.二維數(shù)組的聲明a=newint[3][2];//2.二維數(shù)組的創(chuàng)建(三行二列)a[0][0]=1;//3.二維數(shù)組的引用a[0][1]=2;a[1][0]=3;a[1][1]=4;a[2][0]=5;a[2][1]=6;42創(chuàng)建數(shù)組(二)從高維開(kāi)始,分別為每一維分配空間
int[][]a;//1.二維數(shù)組的聲明a=newint[3][];//2.先為第一維分配空間a[0]=newint[2];//然后為第二維的每一個(gè)元素分配空間a[1]=newint[1];a[2]=newint[3];a[0][0]=1;//3.二維數(shù)組的引用a[0][1]=2;a[1][0]=3;a[2][1]=4;a[2][2]=5;a[2][3]=6;43二維數(shù)組的內(nèi)存分配int[][]a={{1},{2,3},{4,5,6}};int[][]a;//聲明a=newint[3][];//高維開(kāi)始a[0]=newint[1];//每一維a[1]=newint[2];a[2]=newint[3];a[0][0]=1;//訪問(wèn)a[1][1]=2;a[2][2]=3;44例2定義一個(gè)三角數(shù)組,打印九九乘法表。1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 45publicclassArrayTriangleDemo{ publicstaticvoidmain(String[]args){ String[][]triangleArray=newString[9][]; inti,j; for(i=0;i<9;i++) triangleArray[i]=newString[i+1]; for(i=0;i<9;i++){ for(j=0;j<triangleArray[i].length;j++){ triangleArray[i][j]=(i+1)+"*"+(j+1)+"="+(i+1)*(j+1); System.out.print(triangleArray[i][j]+"\t"); } System.out.println(); } }}46數(shù)組的操作System類(lèi)中的有關(guān)方法數(shù)組復(fù)制arraycopy()staticvoidarraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength)從指定源數(shù)組中復(fù)制一個(gè)數(shù)組,復(fù)制從指定的位置開(kāi)始,到目標(biāo)數(shù)組的指定位置結(jié)束。inta[]={1,2,3,4,5,6,7};intb[]=newint[6];inti;System.arraycopy(a,1,b,2,3);for(i=0;i<b.length;i++) System.out.print(b[i]+"");47java.util.Arrays類(lèi)中的有關(guān)方法1)數(shù)組排序sort()staticvoidsort(int[]a)對(duì)指定的int型數(shù)組按數(shù)字升序進(jìn)行排序。importjava.util.Arrays;publicclassTest1{ publicstaticvoidmain(String[]args){ inta[]={7,5,2,6,3}; Arrays.sort(a); for(inti=0;i<a.length;i++) System.out.print(a[i]+""); }}staticvoidsort(int[]a,intfromIndex,inttoIndex)可以指定排序的范圍。如Arrays.sort(a,1,4)482)查找方法binarySearch()staticintbinarySearch(int[]a,intkey)使用二進(jìn)制搜索算法來(lái)搜索指定的int型數(shù)組,以獲得指定的值。importjava.util.Arrays;publicclassTest1{ publicstaticvoidmain(String[]args){ inta[]={2,4,5,7,9}; intkey,pos; key=5; pos=Arrays.binarySearch(a,key); if(pos<0) System.out.println("元素"+key+"在數(shù)組中不存在"); else System.out.println("元素"+key+"在數(shù)組中的位置為"+pos); }}49課堂練習(xí)1、將一個(gè)數(shù)組的內(nèi)容按顛倒的次序重新存放。原先:8、3、5、1、9、7、2改為:2、7、9、1、5、3、82、某小組有5個(gè)學(xué)生,考了3門(mén)課程,他們的學(xué)號(hào)及成績(jī)?nèi)缦卤硭荆嚽蟪雒课粚W(xué)生的平均成績(jī)。學(xué)號(hào)數(shù)學(xué)語(yǔ)文英語(yǔ)平均分1001908085100270758010036570751004855060100580907050publicclassReverseArray{ publicstaticvoidmain(String[]args){ int[]a=newint[7]; Scannersc=newScanner(System.in); System.out.println("請(qǐng)輸入7個(gè)整數(shù):"); inti,temp; for(i=0;i<a.length;i++) a[i]=sc.nextInt(); for(i=0;i<a.length/2;i++){ temp=a[i]; a[i]=a[a.length-1-i]; a[a.length-1-i]=temp; } for(i=0;i<a.length;i++) System.out.print(a[i]+"\t"); }}51publicclassTest2{ publicstaticvoidmain(String[]args){ int[][]a=newint[5][5]; System.out.println("請(qǐng)輸入5位學(xué)生的學(xué)號(hào)、語(yǔ)文、數(shù)學(xué)、英語(yǔ)3門(mén)課程成績(jī):
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年烏魯木齊貨運(yùn)從業(yè)資格考試模擬考試題目及答案
- 洛陽(yáng)師范學(xué)院《企業(yè)級(jí)網(wǎng)絡(luò)架構(gòu)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年度文化產(chǎn)業(yè)實(shí)習(xí)生勞動(dòng)合同范本3篇
- 2024年某城市地鐵線(xiàn)路 extension 建設(shè)承包合同
- 軟件測(cè)試與驗(yàn)收協(xié)議
- 房屋租賃保證書(shū)-礦山開(kāi)采
- 哈爾濱市建筑工地消防管理
- 河北省滄衡名校聯(lián)盟2025屆高三上學(xué)期11月期中考試數(shù)學(xué)試題(解析版)
- 2024年版電動(dòng)汽車(chē)充電站點(diǎn)施工協(xié)議版B版
- 2024年度電商平臺(tái)用戶(hù)協(xié)議補(bǔ)充條款3篇
- 教育創(chuàng)新智慧課堂賦能學(xué)習(xí)
- 七年級(jí)數(shù)學(xué)(上)有理數(shù)混合運(yùn)算100題(含答案)
- 探索小學(xué)數(shù)字化教學(xué)手段促進(jìn)教學(xué)質(zhì)量提升
- 網(wǎng)絡(luò)營(yíng)銷(xiāo)、電子商務(wù)-專(zhuān)業(yè)“十四五”專(zhuān)業(yè)與課程建設(shè)規(guī)劃
- 項(xiàng)目廉潔風(fēng)險(xiǎn)及防控措施宣貫
- 鐵路專(zhuān)用線(xiàn)設(shè)計(jì)規(guī)范(試行)(TB 10638-2019)
- 婦產(chǎn)科vte的預(yù)防
- 銀行消保知識(shí)培訓(xùn)總結(jié)
- 首尾件檢查作業(yè)指導(dǎo)書(shū)
- 公安系統(tǒng)意識(shí)形態(tài)領(lǐng)域分析報(bào)告
- 國(guó)家開(kāi)放大學(xué)電大《現(xiàn)代漢語(yǔ)專(zhuān)題》形考作業(yè)答案
評(píng)論
0/150
提交評(píng)論