《Java程序設計》第02章_第1頁
《Java程序設計》第02章_第2頁
《Java程序設計》第02章_第3頁
《Java程序設計》第02章_第4頁
《Java程序設計》第02章_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

程序設計第2章Java語言基礎前課回顧1、三大核心技術2、dos環(huán)境下編譯、運行java程序的方法3、作業(yè)總結若源文件中包含public類的定義,則源文件的文件名與該類名相同;若源文件中有多個類的定義,則會為每一個類生成一個class文件;一個源文件中最多只能有一個public類。2新課導入publicclassAdd{publicstaticvoidmain(String[]args){inta=3,b=4;intsum=a+b;System.out.println("sum="+sum);}}變量、數據類型、運算符和表達式3學習目標掌握Java編程語言的基本語法。掌握基本數據類型、運算符、表達式、控制語句的運用。掌握一維數組和二維數組的處理。掌握簡單的輸入輸出處理。養(yǎng)成良好的編程習慣,了解并遵守Java編程規(guī)范。學會編寫簡單的Java程序。4重難點復習鞏固C/C++語言的知識熟悉Java與C/C++之間在語言基礎方面的差異掌握數組的概念與應用掌握簡單的輸入輸出理解并熟記基本的知識點養(yǎng)成良好的編程習慣5目錄

2.1JAVA語言的基本要素

2.2變量、數據類型、運算符和表達式

2.3控制結構

2.4數組

2.5簡單的輸入輸出62.1Java語言的基本要素程序員要學會正確使用這些要素,以便寫出正確規(guī)范、可讀性好、易于維護的代碼。2.1.1關鍵字具有特定含義和專門用途的單詞,共53個。每種語言都有關鍵字,如C有32個,C++有62個,C#有77個。2.1.2Java標識符用戶定義的。用來表示常量、變量、標號、方法、類,接口以及包的名字。2.1.3分隔符用于分隔標識符和關鍵字。2.1.4代碼注釋C++只有二種Java有三種72.1.1關鍵字共53個,全部用小寫,包括二個單詞組成的instanceof保留不用的:goto、const從技術上看true,false,null不是關鍵字,而是字面常量82.1.2Java標識符命名規(guī)則(強制要求)只能使用A-Z、a-z、0-9、_、$。只能以字母、下劃線和美元符開頭,不能用數字開頭。嚴格區(qū)分大小寫,沒有長度限制。不能使用Java關鍵字。合法的標識符Student、userName、logFile、getLength、read。合法但不宜使用的標識符文件名、user_Name、_count、$error、abc、a1。非法的標識符2mail、room#、final、userName。9標識符命名規(guī)范(重要)命名規(guī)范用英語單詞,盡量使用完整的單詞,不要使用縮寫。不使用美元符和下劃線(下劃線只在常量名中使用),盡量只使用字母,必要時才少量使用數字。不要使用常用的類名以及內部使用的常用名稱,如String,java等。通過標識符中的大小寫區(qū)分不同類型的標識符:常量名:PI、MAX_VALUE。變量名:fileName、radius、student。方法名:getArea、printResult。類名:Student、Rectangle。接口名:IPerson、Shape。包名:org.ngweb.ch02。注意:編寫代碼時一定要遵守上述規(guī)范。102.1.3分隔符空格這里指廣義的空格(即白字符)包括空格、換行(\n)、換頁(\f)、回車符(\r)、制表符(\t)五種。連續(xù)的多個空格與一個空格的效果相同。分隔符(){}[];,.有些資料認為上述分隔符也是運算符,如點運算符。11如何編寫可讀性好的代碼軟件企業(yè)都有編寫代碼的規(guī)范,下面是常見的要求:一行只寫一條語句,一行中不要寫二條語句。一行只聲明一個變量,即使是相同類型的變量也要分開聲明。一條語句超過80個字符,分為二行或多行,續(xù)行應增加一層縮格。適當插入空行,例如在變量聲明與方法定義之間插入空行。表達式中圓括號的嵌套層數不應超過三層,超過時可以分為多個表達式??s格一般為4個半角字符。用縮格區(qū)分花括號的嵌套,每增加一層花括號的嵌套,應增加一層縮格。花括號的嵌套層數一般不應超過三層,超過時可以分為多個方法。前花括號不單獨占一行,放在相關語句的后面。后花括號單獨占一行,與前花括號的語句通過縮格對齊。有些規(guī)定與C++等語言不同,要注意區(qū)別。Eclipse提供重排代碼格式的功能。122.1.4代碼注釋單行注釋多行注釋文檔注釋選擇合適的注釋方式要養(yǎng)成寫注釋的編程習慣//單行注釋,以換行符為結束。/*多行注釋,注釋內容跨越數行。*//**文檔注釋的格式是HTML,因此,換行后面應該加上HTML的斷行標簽。<br>*/13文檔注釋文檔注釋將可以生成開發(fā)文檔/***這是第二個程序,作了少許修改,可以從命令行中讀取第一個參數,并<br>*將該參數輸出到屏幕上。<br>**@author黃能耿*/publicclassHelloWorld{ //hello保存英文的問候語 privatestaticStringhello="Hello,"; /** *這是程序的主方法<br> * *@param參數:args字符串數組,從命令行中接收<br> *@return返回值:無<br>142.2變量、數據類型、運算符和表達式2.2.1常量和變量2.2.2基本數據類型2.2.3空類型2.2.4引用數據類型2.2.5運算符2.2.6表達式、語句和語句塊152.2.1常量和變量字面常量符號常量符號常量是字面常量的別名,用關鍵字final修飾。例如: finaldoublePI=3.141593; finalintMAX_VALUE=99999;整型長整型單精度雙精度字符型字符串型布爾型空1230L1.0F1.0D'a'"Java"truenull01230123L1.F1.'%'"\""false0x1230x100000000L.3F.3'\t'100000000L0F0'\\'0xC0CBL1E1F1E1'\''1.3E10F1.3E10'\u1234''\uC4Fe''漢'16變量變量用于標識數據的存儲單元。四種變量成員變量:在類中聲明,但是在方法之外,因此作用域范圍是整個類。局部變量:在語句塊內聲明,作用域范圍是從聲明處直到該語句塊的結束。方法參數變量:作用域范圍是在整個方法中。異常處理參數變量:作用域范圍是在異常處理語句塊中。 inti; intcount=1; Stringstr=“Java”; Studentstudent;172.2.2基本數據類型8種基本類型18整數和實數類型整數只有4種,建議int通常只使用int一種實數根據需要選用19布爾類型布爾型布爾型常量只有兩個true和false。它們是Java關鍵字(字面常量)。不能用0或1表示布爾型的值20字符和字符串類型字符類型是16位的,內部用Unicode碼轉義字符與C類似,但是16進制是使用\uxxxx格式字符串類型每個字符都是16位的,因上英文字母與漢字點同樣的內存可以嵌入轉義字符以對象表示,不以\x0表示字符串的結束,內部可以包含\u0000。長達20億21基本數據類型的轉換自動類型轉換(byte、short、char)intlongfloatdouble強制類型轉換(cast)必須注意溢出字符型與整型的轉換在本質上字符型是一個16位的正整數可以與整型轉換注意下述代碼的輸出不是A3問題:下述代碼有什么錯誤? i=130; //數字130超過了byte的取值范圍 b=(byte)i; //這時b的值是-126,發(fā)生了溢出

charch=’A’; System.out.println(ch+3); byteb=3; b=b+b;222.2.3空類型空類型(void)表示沒有類型,僅用于方法返回值類型的聲明上。注意:空(null)不是類型,是一個字面常量,它表示沒有值,用于表示引用數據類型的值為空。232.2.4引用數據類型引用數據類型類接口枚舉數組引用數據類型與指針引用數據類型實質上是一個指向內存的指針Java中不允許對指針進行直接的操作C中可對指針進行操作,功能強大,但帶來不安全因素242.2.5運算符37個運算符=><!~?:==<=>=!=&&||++--+-*/&|^%<<>>>>>+=-=*=/=&=|=^=%=<<=>>=>>>=instanceof分為8大類算術運算符關系運算符布爾運算符位運算符類型比較運算符條件運算符字符串連接運算符賦值運算符等252627運算符布爾運算符注意簡潔與和與的區(qū)別、簡潔或和或的區(qū)別類型比較運算符比較一個變量的值是否是某種類型Strings=null;System.out.println(sinstanceofString);//false,s指向的內容不是String而是nulls=""; //雙引號之間沒有空格,長度為0System.out.println(sinstanceofString); //true,s指向的內容是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ōu)先級342.3控制結構2.3.1順序結構語句塊2.3.2分支結構if-elseswitch2.3.3循環(huán)結構whiledo-whilefor增強型for2.3.4跳轉控制語句1.continue語句2.break語句3.return語句4.標號標號只能與continue、break配合使用352.4數組一維數組與C的數組不同二維數組是數組的數組Java語言的數組與C的數組的區(qū)別Java語言的數組是對象,有長度屬性C的數組沒有長度屬性362.4.1一維數組publicclassArrayForDemo{publicstaticvoidmain(String[]args){int[]score;//1.一維數組的聲明score=newint[4];//2.一維數組的創(chuàng)建(初始化)score[0]=80;//3.一維數組的引用score[1]=88;score[2]=78;score[3]=92;intsum;//總和//求平均成績sum=0;for(inti=0;i<score.length;i++){//4.一維數組的遍歷sum+=score[i];}System.out.println("平均成績是:"+sum/score.length);}}37一維數組的內存分配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數組的循環(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增強型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二維數組二維數組是數組的數組與一維數組的操作相似創(chuàng)建數組時有二種方法直接為每一維分配空間從高維開始,分別為每一維分配空間41創(chuàng)建數組(一)直接為每一維分配空間int[][]a;//1.二維數組的聲明a=newint[3][2];//2.二維數組的創(chuàng)建(三行二列)a[0][0]=1;//3.二維數組的引用a[0][1]=2;a[1][0]=3;a[1][1]=4;a[2][0]=5;a[2][1]=6;42創(chuàng)建數組(二)從高維開始,分別為每一維分配空間

int[][]a;//1.二維數組的聲明a=newint[3][];//2.先為第一維分配空間a[0]=newint[2];//然后為第二維的每一個元素分配空間a[1]=newint[1];a[2]=newint[3];a[0][0]=1;//3.二維數組的引用a[0][1]=2;a[1][0]=3;a[2][1]=4;a[2][2]=5;a[2][3]=6;43二維數組的內存分配int[][]a={{1},{2,3},{4,5,6}};int[][]a;//聲明a=newint[3][];//高維開始a[0]=newint[1];//每一維a[1]=newint[2];a[2]=newint[3];a[0][0]=1;//訪問a[1][1]=2;a[2][2]=3;44例2定義一個三角數組,打印九九乘法表。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數組的操作System類中的有關方法數組復制arraycopy()staticvoidarraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength)從指定源數組中復制一個數組,復制從指定的位置開始,到目標數組的指定位置結束。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類中的有關方法1)數組排序sort()staticvoidsort(int[]a)對指定的int型數組按數字升序進行排序。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)使用二進制搜索算法來搜索指定的int型數組,以獲得指定的值。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+"在數組中不存在"); else System.out.println("元素"+key+"在數組中的位置為"+pos); }}49課堂練習1、將一個數組的內容按顛倒的次序重新存放。原先:8、3、5、1、9、7、2改為:2、7、9、1、5、3、82、某小組有5個學生,考了3門課程,他們的學號及成績如下表所示,試求出每位學生的平均成績。學號數學語文英語平均分1001908085100270758010036570751004855060100580907050publicclassReverseArray{ publicstaticvoidmain(String[]args){ int[]a=newint[7]; Scannersc=newScanner(System.in); System.out.println("請輸入7個整數:"); 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("請輸入5位學生的學號、語文、數學、英語3門課程成績:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論