OOP02第2章Java程序設(shè)計語言概述_第1頁
OOP02第2章Java程序設(shè)計語言概述_第2頁
OOP02第2章Java程序設(shè)計語言概述_第3頁
OOP02第2章Java程序設(shè)計語言概述_第4頁
OOP02第2章Java程序設(shè)計語言概述_第5頁
已閱讀5頁,還剩66頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章Java程序設(shè)計語言概述提綱2.1Java程序設(shè)計語言的發(fā)展2.2Java程序設(shè)計語言的基本特征2.3Java程序的運行環(huán)境2.4Java程序的基本結(jié)構(gòu)2.5Java程序的基本類型2.6標(biāo)識符、關(guān)鍵字、分隔符、常量、變量2.7Java程序的基本輸入輸出2.8運算符與表達式2.9流程控制語句2.10數(shù)組,遍歷數(shù)組的for循環(huán)2.11二維數(shù)組2.12字符串常量String2.1Java程序設(shè)計語言的發(fā)展1995年5月發(fā)布Java和HotJava瀏覽器1995年9月宣布將提供Java開發(fā)工具1995年12月發(fā)布JavaScript1996年推出JDK1.01996年頒布JavaBeans規(guī)范1997年推出JDK1.1.2(稱為java2)2004年推出JDK5.0(將jdk1.5改名為jdk5.0),是自JDK1.1以來最大的改進,添加了泛型2006年發(fā)布JDK6,擴展類庫,提高性能2011年發(fā)布JDK7,支持動態(tài)類型語言,可在JVM上執(zhí)行JavaScript等腳本語言2014年推出JDK8,支持lambda表達式,函數(shù)式編程,JavaFX2.2Java程序設(shè)計語言的基本特征應(yīng)用最廣泛簡潔而功能強大面向?qū)ο蠓植际浇研越Y(jié)構(gòu)中立(平臺無關(guān))Android編程安全性可移植性解釋執(zhí)行對Internet(網(wǎng)絡(luò))有良好的支持多線程動態(tài)性掌握Java編程,找高薪工作!2.3Java程序的運行環(huán)境編譯型源程序字節(jié)碼程序Java源程序可執(zhí)行程序exe裸機操作系統(tǒng)解釋器編譯連接編譯運行解釋運行.java.classJava是解釋型的高級編程語言Java虛擬機運行Java程序的基本過程1、利用編輯器編寫Java源程序源文件名:主類名.java2、利用編譯器將源程序編譯成字節(jié)碼字節(jié)碼文件名:源文件名.class3、利用虛擬機(解釋器)運行工作過程:載入、代碼校驗、解釋執(zhí)行常用的Java開發(fā)環(huán)境從網(wǎng)絡(luò)上直接下載JDK(JavaDeveloperKit),并利用命令行方式操作javac(編譯器);java(解釋器)Java集成開發(fā)環(huán)境(IDE)NetBeans,Sun公司開發(fā),免費,功能齊全Eclipse(推薦,IBM提供,開源平臺,支持者眾多)JBuilder,VisualJ++已成歷史軟件下載地址:5/lxy開發(fā)工具安裝之一JDK的安裝與環(huán)境設(shè)計自/downloads/下載最新版本的JavaSE(JDK)7運行安裝程序,安裝到(C:\jdk1.7.0)設(shè)置運行環(huán)境參數(shù):進入我的電腦\屬性\高級\環(huán)境變量\系統(tǒng)變量添加變量classpath,值為:”C:\jdk1.7.0\lib”向path變量值末尾添加”;C:\jdk1.7.0\bin;”開發(fā)工具安裝之二下載安裝NetBeans7.3完全版(all)2.4Java程序的基本結(jié)構(gòu)Java程序的形態(tài):Application應(yīng)用程序:它是一個完整的應(yīng)用程序,可以利用Java虛擬機獨立地在本機運行。

Servlet(服務(wù)器小程序):在遠程的web服務(wù)器中運行,可通過web協(xié)議(即http方式訪問),它可以動態(tài)生成一個網(wǎng)頁。EJB(EnterpriseJavaBean):運行在應(yīng)用服務(wù)器中,可被servlet或其它應(yīng)用程序調(diào)用。運行在手機中,Android,JME,。。。Applet(應(yīng)用小程序,已退出歷史舞臺)Application應(yīng)用程序舉例importjava.io.*;publicclassMyFirstJavaProgram{publicstaticvoidmain(String[]args){System.out.println(“ThisisthefirstJavaApplication”);}}2.5Java程序的基本類型數(shù)據(jù)類型決定了參與操作的變量、常量和表達式的取值類別、取值范圍以及能夠?qū)嵤┑牟僮餍袨?。Java是強類型語言,所有變量和表達式,在編譯時進行數(shù)據(jù)類型相容性的檢查。Java的基本數(shù)據(jù)類型布爾類型:boolean字符類型:char整數(shù)類型:byte、short、int、long浮點類型:float、double1.boolean與C不同?。?!只有“true”和“false”兩個取值,分別代表“真”和“假”。特點:不能夠與任何其他類型進行相互的類型轉(zhuǎn)換操作。2.charJava語言規(guī)定,字符采用Unicode編碼,每個字符占用兩個字節(jié)。ASCII字符集是Unicode字符集的一個子集,并且在這兩個字符集中,前128個編碼所對應(yīng)的字符完全相同,只是每個字符占用的二進制位數(shù)不同。3.byte、short、int、long上面4種數(shù)據(jù)類型都屬于整型數(shù)值類型。byte1個字節(jié)short2個字節(jié)int4個字節(jié)long8個字節(jié)與C的區(qū)別:占用字節(jié)數(shù)固定,無unsigned類型4.float、doublefloat單精度32位double雙精度64位Java語言中的浮點數(shù)值表示遵循IEEE754標(biāo)準(zhǔn)。它不僅包括正零、負零、正無窮大、負無窮大和一個特別的值NaN。上溢:無窮大,正無窮大/負無窮大下溢:0,正零/負零0/0,對負數(shù)開方:NaN見課本p41:例2-22.6標(biāo)識符、關(guān)鍵字、分隔符、常量、變量【標(biāo)識符】

Java的標(biāo)識符由字母、數(shù)字、_和$組成,長度不限。第一個字符必須為字母、(_)或($)符號。標(biāo)識符區(qū)分大小寫。其中字母可以是大寫或小寫的英文字母,數(shù)字為0到9。標(biāo)識符用來命名變量、符號常量、數(shù)組、方法、類、對象、接口、包等。如:MyFirstClass,Student,name,age,myObject等。要點:標(biāo)識符嚴(yán)格區(qū)分大小寫用戶自定義標(biāo)識符不可與Java語言關(guān)鍵字和常量相同Java標(biāo)識符命名規(guī)范:類型規(guī)范示例包(package)用小寫字母java.io類/接口名(class/Interface)駝峰命名法(Camel-Case):用名詞或名詞詞組構(gòu)成,每個單詞首字母大寫MyFirstJavaStudent方法/變量名駝峰命名法,用名詞或名詞詞組構(gòu)成,除首字母外,每個單詞首字母大寫myFirstJavastudent常量每個字母都大寫,單詞間用下劃線(_)連接Math.PIMIN_WIDTH基本原則:見名知義【關(guān)鍵字】又稱保留字,是Java語言規(guī)定了特定含義的標(biāo)識符。用戶只能按照系統(tǒng)規(guī)定的方式使用,不能自行定義。關(guān)鍵字一律用小寫字母表示。Java中的關(guān)鍵字有50個,按用途劃分為:數(shù)據(jù)類型、語句、修飾、方法、類、接口、包,并保留了const和goto。見P43關(guān)鍵字表【分隔符】分隔符被用來區(qū)分Java源程序中的基本成分(標(biāo)識符、關(guān)鍵字、運算符和常量),分隔符分為注釋、空白符和普通分隔符三種類別。注釋是為源程序增加必要的解釋說明的內(nèi)容,其目的是提高程序的可讀性,書寫注釋是編寫程序的良好習(xí)慣。Java中有三種形式的注釋:

/*注釋部分*//**注釋部分*/ //注釋部分第二種分隔符是空白符,包括空格、回車符、換行符和制表符(Tab鍵)等。各種Java基本成分之間的多個空白符與一個空白符的作用相同。第三種是普通分隔符,具有確定的語法含義,必須按照特定的語法規(guī)定使用。它包括四種分隔符:{}

大括號,用來定義類體、方法體、復(fù)合語句或?qū)?shù)組進行初始化。

;分號,是語句結(jié)束的標(biāo)志。

,逗號,分隔方法的參數(shù)或聲明的變量序列。

:冒號,用于分隔語句標(biāo)號?!境A俊空统A浚菏?、十六進制實型常量:double、float字符常量:單引號括起來布爾常量:true和false字符串常量:雙引號括起來符號常量在Java中,可以利用關(guān)鍵字final將一個變量定義為常量標(biāo)識符。

finaldoublePI=3.1415926;變量PI的值在作用域范圍內(nèi)只能被引用,不能被修改。packagejava.lang;importjava.util.Random;publicfinalclassMath{privateMath(){}publicstaticfinaldoubleE=2.7182818284590452354;

publicstaticfinaldoublePI=3.14159265358979323846;publicstaticnativedoublesin(doublea);publicstaticnativedoublecos(doublea);publicstaticnativedoubletan(doublea);publicstaticnativedoubleasin(doublea);publicstaticnativedoubleacos(doublea);publicstaticnativedoubleatan(doublea);publicstaticnativedoubleexp(doublea);publicstaticnativedoublelog(doublea);publicstaticnativedoublesqrt(doublea);publicstaticnativedoubleIEEEremainder(doublef1,doublef2);publicstaticnativedoubleceil(doublea);publicstaticnativedoublefloor(doublea);publicstaticnativedoublerint(doublea);Math類(importjava.lang)publicstaticnativedoubleatan2(doublea,doubleb);

publicstaticnativedoublepow(doublea,doubleb);publicstaticintround(floata)publicstaticlonground(doublea)privatestaticRandomrandomNumberGenerator;

publicstaticdoublerandom()//產(chǎn)生0~1.0之間的一個隨機數(shù)

publicstaticintabs(inta)publicstaticlongabs(longa)publicstaticfloatabs(floata)publicstaticdoubleabs(doublea)publicstaticintmax(inta,intb)publicstaticlongmax(longa,longb)publicstaticfloatmax(floata,floatb)publicstaticdoublemax(doublea,doubleb)publicstaticintmin(inta,intb)publicstaticlongmin(longa,longb)publicstaticfloatmin(floata,floatb)publicstaticdoublemin(doublea,doubleb)}【變量】在Java語言中,所有的變量必須先定義后使用。其格式為:數(shù)據(jù)類型標(biāo)識符1[=初值],[標(biāo)識符2...];如int

a,b,c=30;floatf1,f2;基本數(shù)據(jù)類型的變量在聲明時就為其分配內(nèi)存空間;其它類型(如數(shù)組、對象)需要用new為聲明的變量分配空間。變量的作用域在某個方法體中或參數(shù)表中聲明的變量只能在該方法體中使用;在某個語句塊中聲明的變量,只能在該語句塊中使用。在類中聲明的成員變量需要根據(jù)訪問修飾符確定可訪問者。2.7Java程序的基本輸入輸出Application應(yīng)用程序的輸入輸出字符界面:輸入:單個字符字符:利用System.in.read()對數(shù)據(jù)對象為單位的讀入:Scanner有next(),nextLine(),nextInt(),nextXXX()方法輸出:System.out.print()System.out.println()System.out.printf()格式化輸出importjava.util.Scanner;publicclassApplicationLineInOut{ publicstaticvoidmain(Stringargs[]){ Stringstr=""; System.out.print(“請輸入一行任意字符串:");

Scannersc=newScanner(System.in);//掃描標(biāo)準(zhǔn)輸入流

str=sc.nextLine();//讀取一行

System.out.println(“你輸入的字符串是:"+str); }}字符界面IO(讀入一行)importjava.util.Scanner;publicclassReadMultiInt{

publicstaticvoidmain(String[]args){intsum=0;System.out.println(“請輸入10個整數(shù):”);//輸入10個數(shù)

Scannersc=newScanner(System.in);

for(inti=0;i<10;i++){sum+=sc.nextInt();}System.out.println(“它們的和是:"+sum);}}字符界面IO(讀入多個整數(shù))格式化輸出Jdk5.0開始引入與C語言類似的格式化輸出方法,用System.out.printf()實現(xiàn),如:…value=100.0/3;System.out.printf(“%10.2f”,value);….顯示結(jié)果將為:333.33其中的%10.2f為格式控制字符串,表示用10個字符寬度,小數(shù)點后2位的浮點數(shù)格式顯示變量value的值。其它格式見表2-5:符號d,x,o,f,e,s,c,b分別表示10進制整數(shù)、16進制整數(shù)、8進制整數(shù)、10進制小數(shù)、科學(xué)表示法,字符串、字符、布爾值2.8運算符與表達式算術(shù)運算:+、-、*、/、%、++、--邏輯運算:&、|、!、^、&&、||關(guān)系運算:==、!=、>、<、>=、<=位運算:~、&、|、^、>>、<<、>>>其他運算:?:、賦值運算符、()、[]、new檢測某個對象是否屬于某個類

instanceof(對象)賦值操作中的類型轉(zhuǎn)換Java是強類型語言,因此,在進行賦值操作時要檢查類型;當(dāng)將占位數(shù)少的類型賦值給占位數(shù)多的類型時,Java自動使用隱式類型轉(zhuǎn)換;當(dāng)將占位數(shù)多的類型賦值給占位數(shù)少的類型時,需要由用戶使用顯式地強制進行類型轉(zhuǎn)換。2.9流程控制語句表達式語句:表達式后加一個分號a+=a*6;a++;a+3;復(fù)合語句:包含在括號中的語句序列流程控制語句:順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)分支語句:if...else、switch循環(huán)語句:while、do...while、for轉(zhuǎn)移語句:break、continue、label返回語句:return《分支結(jié)構(gòu)》

if(布爾表達式)語句1;[else語句2;]switch(表達式){case常量1:語句塊1;

......case常量n:語句塊n;default:語句塊n+1;}循環(huán)結(jié)構(gòu)—while格式:

while(循環(huán)條件){循環(huán)體}含義:循環(huán)條件為一個布爾表達式,其值為true時,重復(fù)執(zhí)行循環(huán)體。循環(huán)結(jié)構(gòu)—do格式:do{

循環(huán)體}while(循環(huán)條件);含義:重復(fù)執(zhí)行循環(huán)體,直到循環(huán)條件為false。循環(huán)結(jié)構(gòu)—for格式:for(表達式1;表達式2;表達式3)循環(huán)體;表達式1:循環(huán)初值表達式2:布爾型表達式,循環(huán)條件表達式3:循環(huán)增量表達式for循環(huán)示例問題:輸入一個整數(shù)到變量n,求n!。定義函數(shù)nn!控制轉(zhuǎn)移語句break語句:使程序的流程從一個語句塊內(nèi)部轉(zhuǎn)移出去。通常在switch和循環(huán)語句中使用。continue語句:只能在循環(huán)語句中使用。其作用是終止當(dāng)前這一輪的循環(huán),直接進入下一輪的循環(huán)。label:用于標(biāo)記位置breaklabel/continuelabel跳轉(zhuǎn)到label所示的層次,而不限于當(dāng)前層。break+label示例publicclassLabelTest{publicstaticvoidmain(Stringargs[]){booleant=true;first://第一個位置標(biāo)簽{second://第二個位置標(biāo)簽{third://第三個位置標(biāo)簽{System.out.println("Beforethebreak.");if(t){breaksecond;//breakoutofsecondblockSystem.out.println("Thiswon'texecute");}}System.out.println("Thiswon'texecute");}System.out.println("Thisisaftersecondblock.");}}}ContinueLabel示例//continue配合label來打印0到9的三角形乘法表:

publicclassContinueLabel{

publicstaticvoidmain(Stringargs[]){outer:for(inti=0;i<10;i++){for(intj=0;j<10;j++){if(j>i){System.out.println();continueouter;}System.out.print(""+(i*j));}}System.out.println();}}//思考與練習(xí):如何打印出更美觀有效的乘法表?2.10數(shù)組問題:編寫一個程序,計算一個同學(xué)自己本學(xué)期各課程的平均積點。用C怎么實現(xiàn)?用Java在字符界面下如何實現(xiàn)?示例1:字符界面下計算平均積點要點:1.定義數(shù)組,用于存放各課程成績。2.循環(huán)讀入各門課程成績,存入數(shù)組中。3.計算平均成績。4.輸出結(jié)果:課程數(shù)量,平均積點2.10數(shù)組按照元素的組成分類,數(shù)組屬于復(fù)合數(shù)據(jù)類型,它是由類型相同的元素組成的有順序的數(shù)據(jù)集合。特點:元素類型相同;元素有順序;所有元素共用一個名稱。要點:區(qū)分?jǐn)?shù)組的聲明與數(shù)組的創(chuàng)建Java語言中的數(shù)組聲明格式:數(shù)組元素類型

數(shù)組名[];

數(shù)組元素類型[]

數(shù)組名;舉例:

intarrayInt[];doublearrayDouble[];String[]strs;Point[]ps;注意:按照變量的存儲方式上分類,Java語言中的數(shù)組屬于引用類型,因此在聲明數(shù)組引用時不能給出長度。數(shù)組的創(chuàng)建聲明數(shù)組引用后,需要利用new運算來為數(shù)組型變量定義長度且分配內(nèi)存空間,我們將其稱之為創(chuàng)建數(shù)組。

arrayInts=newint[10];arrayDoubles=newdouble[1000];String[]strs=newString[10];Java規(guī)定,數(shù)組創(chuàng)建后系統(tǒng)自動地為數(shù)組中的每個元素賦予初值。數(shù)組初值數(shù)組元素的默認初值:整型:0實型:0.0f或0.0d字符:‘\0’類對象:nullintarrayInts[]={1,2,3,4,5,6,7};String[]strs={“C++”,“QBasic”,“Pascal”};另一種for循環(huán)for(var:collection)statement;for(intvalue:array){System.out.printf(“%4d”,value)}示例從鍵盤讀入若干門課程的成績,用數(shù)組存儲。分別輸出最低成績,最高成績和平均成績。問題:Java的數(shù)組在使用前必須指定長度,如果實現(xiàn)對任意門課程的處理?辦法:先提示用戶要輸入課程門數(shù),根據(jù)課程門數(shù)創(chuàng)建數(shù)組。一維數(shù)組的復(fù)制System.arraycopy()方法voidarraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength);Arrays類Arrays是java提供的一個標(biāo)準(zhǔn)類,存放于java.util包中,它專門用于對數(shù)組進行處理。常用方法包括:staticvoidsort(eType[]a),排序staticintbinarySearch(eType[]a,eTypev),查找staticvoidfill(eType[]a,eTypev),批量填充2.11二維數(shù)組問題:編寫一個程序,計算全班同學(xué)的平均積點,并排序輸出。用C怎么實現(xiàn)?用Java在字符界面下如何實現(xiàn)?用java在圖形用戶界面下實現(xiàn)?2.11二維數(shù)組二維數(shù)組是一個一維數(shù)組,它的每個元素是對一個維數(shù)組的引用,每個一維數(shù)組元素引用數(shù)組元素數(shù)目可以不同??衫斫鉃橐粋€各行長度不一定相同的二維表格。例:intarrD2[][];//聲明一個二維數(shù)組變量,arrD2=newint[10][];//創(chuàng)建一個有10個成員的二維數(shù)組實例.arrD2[0]=newint[5]; //創(chuàng)建第一行arrD2[1]=newint[6]; //創(chuàng)建第二行…arrD2[9]=newint[20]; //創(chuàng)建第10行楊輝三角形11112113311464115101051161520156117213535217118285670562881193684126126843691用數(shù)組int[][]data存放數(shù)據(jù)//遍歷每行r:=1~10//給第一列和第r列都賦值1data[r][0]=1;data[r][r]=1;//給r行第c列(c:=1~i-1)賦值,第r-1行的第c-1列+第r-1行的第c列data[r][c]=data[r-1][c-1]+data[r-1][c];publicclassYangHui{publicstaticvoidmain(Stringargs[]){

int[][]data;//聲明數(shù)組

data=newint[10][];

//為數(shù)組分配內(nèi)存

for(intr=0;r<10;r++)data[r]=newint[r+1];

//!!每行長度不同

//給各個元素賦值

data[0][0]=1;for(intr=1;r<10;r++){//遍歷每行

data[r][0]=1;data[r][r]=1;//給第一列和最后一列賦值

for(intc=1;c<r;c++)//給第2列到第i-1列賦值

data[r][c]=data[r-1][c-1]+data[r-1][c];}//逐行輸出數(shù)組中的內(nèi)容

for(intr=0;r<10;r++){for(intc=0;c<=r;c++)System.out.print(data[r][c]+"");System.out.println();}}}利用二維數(shù)組構(gòu)造楊輝三角形前10行的內(nèi)容publicclassYangHuiNew{publicstaticvoidmain(Stringargs[]){

int[][]data;//聲明數(shù)組

data=newint[10][];

//為數(shù)組分配內(nèi)存

for(intr=0;r<data.length;r++)data[r]=newint[r+1];

//!!每行長度不同

//給各個元素賦值

data[0][0]=1;for(intr=1;r<data.length;r++){//遍歷每行

data[r][0]=1;data[r][r]=1;//給第0列和最后一列賦值

for(intc=1;c<r;c++)//給第1列到第r-1列賦值

data[r][c]=data[r-1][c-1]+data[r-1][c];}//逐行輸出數(shù)組中的內(nèi)容

for(intr=0;r<data.length;r++){for(intc=0;c<=r;c++)System.out.print(data[r][c]+"");System.out.println();}}}利用二維數(shù)組構(gòu)造楊輝三角形前10行的內(nèi)容2.12字符串常量String與C不同!Java中的字符串是對象,不是字符數(shù)組!兩種字符串類:一種是字符串常量,它是用String標(biāo)準(zhǔn)類實現(xiàn)的;另一種是可編輯修改的字符串,它是用StringBuffer標(biāo)準(zhǔn)類實現(xiàn)的。字符串直接量同C語言一樣,Java的字符串直接量使用雙引號(")將字符序列括在其中。例如:"thisisastringliteral!"但它不是一個字符數(shù)組!在使用String類對象時,需要注意下面幾點:在Java語言中,字符串直接量中的每個字符占用兩個字節(jié)

溫馨提示

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

評論

0/150

提交評論