Java語(yǔ)言與面向?qū)ο蟪绦蛟O(shè)計(jì)教程_第1頁(yè)
Java語(yǔ)言與面向?qū)ο蟪绦蛟O(shè)計(jì)教程_第2頁(yè)
Java語(yǔ)言與面向?qū)ο蟪绦蛟O(shè)計(jì)教程_第3頁(yè)
Java語(yǔ)言與面向?qū)ο蟪绦蛟O(shè)計(jì)教程_第4頁(yè)
Java語(yǔ)言與面向?qū)ο蟪绦蛟O(shè)計(jì)教程_第5頁(yè)
已閱讀5頁(yè),還剩124頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Java語(yǔ)言與面向?qū)ο蟪绦蛟O(shè)計(jì)教程主講:計(jì)算機(jī)科學(xué)與技術(shù)系

周華平E-mail:hpzhou@2005-5-1第一章軟件開發(fā)基礎(chǔ)與Java語(yǔ)言概述1.1軟件開發(fā)基礎(chǔ)1.1.1軟件運(yùn)行原理計(jì)算機(jī)系統(tǒng)是由硬件和軟件兩大部分組成。硬件:中央處理單元、數(shù)學(xué)邏輯單元、內(nèi)存單元、輸入單元、輸出單元和外存單元組成。軟件:由程序、運(yùn)行程序所需要的數(shù)據(jù)和文檔三部分組成。軟件運(yùn)行原理:軟件加載到內(nèi)存,CPU依次從內(nèi)存取出每一條指令順序執(zhí)行,從而完成程序員事先編寫好的各種數(shù)據(jù)的處理、輸入、輸出等操作。1.1.2操作系統(tǒng)與計(jì)算結(jié)構(gòu)的發(fā)展(1)操作系統(tǒng)簡(jiǎn)介功能:為應(yīng)用程序提供處理機(jī)管理、內(nèi)存管理、輸入輸出、設(shè)備管理及文件管理等,是應(yīng)用程序與硬件之間的"接口"。

PC機(jī)上常用的操作系統(tǒng):DOS、Windows98、WindowsNT、UNIX、Linux等。直接運(yùn)行于裸機(jī)的應(yīng)用軟件:應(yīng)用邏輯→內(nèi)存管理→輸入輸出→設(shè)備管理→硬件(裸機(jī))操作系統(tǒng)管理的應(yīng)用軟件:應(yīng)用邏輯→操作系統(tǒng)→硬件(裸機(jī))

(2)計(jì)算結(jié)構(gòu)的發(fā)展(計(jì)算結(jié)構(gòu)是指應(yīng)用系統(tǒng)的系統(tǒng)體系結(jié)構(gòu),就是系統(tǒng)層次、模塊結(jié)構(gòu))

a.主機(jī)-終端模式:集中運(yùn)算和集中管理是主機(jī)-終端模式的特點(diǎn)。一臺(tái)主機(jī)帶多個(gè)終端。主機(jī)負(fù)擔(dān)太重。

b.單機(jī)模式:個(gè)人計(jì)算機(jī)(PC)迅速發(fā)展,軟件運(yùn)行以孤立的機(jī)器進(jìn)行。

c.客戶機(jī)/服務(wù)器模式:具有分布運(yùn)算和分布管理的特點(diǎn)。即服務(wù)器進(jìn)行匯總、綜合處理;客戶機(jī)實(shí)現(xiàn)與用戶的對(duì)話及客戶端的工作處理。

d.瀏覽器/N層服務(wù)器模式:具有分布運(yùn)算和集中管理的特點(diǎn)。由瀏覽器提供統(tǒng)一的用戶界面。1.1.3軟件開發(fā)過程與程序設(shè)計(jì)語(yǔ)言(1)軟件開發(fā)過程操作系統(tǒng)與系統(tǒng)軟件的開發(fā)要求更加嚴(yán)謹(jǐn)、高效、安全和方便;開發(fā)人員需要具有精深的專業(yè)知識(shí)與技能。應(yīng)用軟件的開發(fā)是針對(duì)某個(gè)具體問題或?qū)嶓w,專用性強(qiáng),軟件間的差異性大,需求量最多。應(yīng)用軟件開發(fā)能力一般包括:

a.了解應(yīng)用軟件的背景知識(shí)

b.分析和了解應(yīng)用軟件的功能和要求

c.確定應(yīng)用軟件的計(jì)算結(jié)構(gòu)

d.熟悉應(yīng)用軟件的工作運(yùn)行環(huán)境

e.掌握開發(fā)應(yīng)用軟件的工具

(2)程序設(shè)計(jì)語(yǔ)言及其發(fā)展

a.面向機(jī)器的語(yǔ)言

b.面向過程的語(yǔ)言

c.面向?qū)ο蟮恼Z(yǔ)言1.2Java語(yǔ)言概述1.2.1Java的發(fā)展歷史

1995年5月23日,Java這種定位于網(wǎng)絡(luò)應(yīng)用的程序設(shè)計(jì)語(yǔ)言正式推出。

Sun公司是這樣描述:Java是一種簡(jiǎn)單的、面向?qū)ο蟮?、?qiáng)壯的、安全的、可移植的、高性能的、體系結(jié)構(gòu)中立的、解釋型的、多線索的、動(dòng)態(tài)的語(yǔ)言。1.2.2Java程序的開發(fā)過程與運(yùn)行環(huán)境

1、編寫源程序例1.1第一個(gè)Java程序:MyFirstJavaProgram.javaimportjava.io.*; //引入以java.io

開頭的模塊(統(tǒng)稱為java.io

包)到程序中。publicclassMyFirstJavaProgram //類頭,用關(guān)鍵字class來(lái)標(biāo)志一個(gè)類定義的開始。{ //類體由大括號(hào)括起來(lái)。

publicstaticvoidmain(Stringargs[])//main方法是主類標(biāo)志

{

System.out.println("ThisismyfirstJavaprogram!");//方法體

}}

幾個(gè)入門概念:(1)Java語(yǔ)言標(biāo)識(shí)符的字母區(qū)分大小寫;(2)不允許在一個(gè)類的內(nèi)部再定義另一個(gè)類,各個(gè)類之間必須是平行的,而不能嵌套;(3)一個(gè)程序可以由一個(gè)或多個(gè)類組成,其中必須有也只能有一個(gè)主類。(4)源文件名必須與程序的主類名一致,并且以.java為其后綴。

2、編譯生成字節(jié)碼

Java引入編譯的主要原因:(1)保證程序的語(yǔ)法正確性;(2)通過編譯引入Java類庫(kù)中已編寫好的模塊。(3)編譯成功的結(jié)果將是一個(gè)或多個(gè)字節(jié)碼文件,每個(gè)字節(jié)碼文件對(duì)應(yīng)源程序中定義的一個(gè)類,該文件的名字就是它所對(duì)應(yīng)的類的名字,并以.class為統(tǒng)一的后綴名。

3、運(yùn)行運(yùn)行一個(gè)編譯好的Java字節(jié)碼程序,需要調(diào)用Java的解釋器軟件java.exe。

解釋運(yùn)行的三個(gè)階段:(1)載入:Java解釋器中的類載入器將字節(jié)碼文件加載到內(nèi)存(網(wǎng)上運(yùn)行程序則通過網(wǎng)絡(luò)下載到本地內(nèi)存);(2)代碼校驗(yàn):Java解釋器中的代碼檢驗(yàn)器檢查這些字節(jié)碼的合法性;(3)解釋執(zhí)行:合法的字節(jié)碼程序由Java解釋器逐句地解釋運(yùn)行。1.2.3Applet與ApplicationJavaApplication程序的主要特點(diǎn):(1)JavaApplication程序是獨(dú)立完整的程序。(2)在命令行調(diào)用獨(dú)立的解釋器軟件即可運(yùn)行JavaApplication程序。(3)JavaApplication程序的主類必須有一個(gè)定義為:

publicstaticvoidmain(Stringargs[])的main方法,是JavaApplication程序執(zhí)行的入口點(diǎn)。如例1.1例1.2第一個(gè)JavaApplet程序:MyFirstJavaApplet.javaimportjava.applet.Applet; //引入類庫(kù)中定義好的java.applet.Applet類;importjava.awt.Graphics; //引入java.awt.Graphics

類(圖形類)publicclassMyFirstJavaAppletextendsApplet //主類必須是Applet類的子類{publicvoidpaint(Graphicsg){

g.drawString("ThisismyfirstJavaApplet!",15,20);}}

(1)JavaApplet程序是在WWW瀏覽器環(huán)境下運(yùn)行,即不是完整獨(dú)立運(yùn)行程序;(2)運(yùn)行JavaApplet程序的解釋器不是獨(dú)立的軟件,而是嵌在WWW瀏覽器中做為瀏覽器軟件的一部分。(3)JavaApplet程序中不需要有main方法,但是JavaApplet程序的主類必須是類庫(kù)中已定義好的類java.applet.Applet的子類。(4)JavaApplet程序可以直接利用瀏覽器或AppletViewer

提供的圖形用戶界面,而JavaApplication程序則必須另外書寫專用代碼來(lái)營(yíng)建自己的圖形界面。(5)JavaApplet更多的具體體現(xiàn)狀態(tài)和狀態(tài)之間的切換,而不是固定的順序化的執(zhí)行過程。第二章Java語(yǔ)言基礎(chǔ)2.1Java程序的輸入輸出1.字符界面下的輸入輸出:JavaApplication例2.1字符界面下基本輸入輸出程序:SimpleCharInOut.javaimportjava.io.*; //引入java.io.*系統(tǒng)輸入輸出類包publicclassSinpleCharInOut //類頭{ publicstaticvoidmain(Stringargs[]) //main方法,說(shuō)明該為主類

{ charc=''; //定義字符型變量,賦初值

System.out.print("Enteracharacterplease:");//顯示提示信息

try{c=(char)System.in.read();//接受用戶輸入的字符并保存在變量c中

}catch(IOExceptione){} System.out.println(“You’veenteredcharacter:”+c); //向屏幕輸出變量c中保存的字符} }說(shuō)明:

a."="是Java語(yǔ)言的賦值號(hào);

b.System.in是java.io

包中InputStream

類的對(duì)象,代表系統(tǒng)的標(biāo)準(zhǔn)輸入,即鍵盤;read()是讀數(shù)據(jù)方法。

c.System.out是java.io

包中OutputStream

類的對(duì)象,代表系統(tǒng)的標(biāo)準(zhǔn)輸出,即顯示器;print()是輸出方法。

d.當(dāng)程序執(zhí)行到read()方法就暫停下來(lái),等待用戶從鍵盤輸入一個(gè)字符并按回車鍵。

e.read()方法讀入的字符是整型int

,采用強(qiáng)制類型轉(zhuǎn)換(char)成為字符型char。

f.字符串連接運(yùn)算符+。2、圖形界面下的輸入輸出:JavaApplet例2.2圖形界面下的基本輸入輸出程序:SimpleGraphicsInOut.javaimportjava.applet.Applet;importjava.awt.*;publicclassSimpleGraphicsInOutextendsApplet{ Labelprompt; //定義顯示提示信息的標(biāo)簽對(duì)象

TextFieldinput; //定義接受用戶鍵盤輸入的文本區(qū)域?qū)ο?/p>

Labeloutput; //定義回顯用戶輸入字符的標(biāo)簽對(duì)象

publicvoidinit() //定義瀏覽器打開Applet后的初始操作

{prompt=newLabel("Enteracharacterpleasea:"); //創(chuàng)建提示標(biāo)簽

input=newTextField(3); //創(chuàng)建輸入?yún)^(qū)域

input=newTextField(3); output=newLabel(""); //創(chuàng)建輸出標(biāo)簽

add(prompt); //將提示標(biāo)簽加入圖形界面

add(input); //將輸入?yún)^(qū)域加入圖形界面

add(output); //將輸出標(biāo)簽加入圖形界面

} publicbooleanaction(Evente,Objecto)//定義對(duì)用戶輸入的響應(yīng)

{

output.setText("You'veenteredcharacter:"+o.toString());

//在輸出標(biāo)簽回顯輸入內(nèi)容

returntrue; }}說(shuō)明:

a.Label:java.awt

包中的Label類,用于定義并創(chuàng)建圖形界面的顯示標(biāo)簽對(duì)象。

b.TextFeild:java.awt

包中的TextFeild類,用于定義并創(chuàng)建圖形界面的單行文本輸入?yún)^(qū)域?qū)ο螅脕?lái)接受用戶輸入的字符。

c.add:將Label、TextFeild

等所創(chuàng)建的對(duì)象加入到圖形界面的方法。

d.init():負(fù)責(zé)對(duì)JavaApplet程序進(jìn)行初始化的方法。

e.action():負(fù)責(zé)對(duì)用戶的輸入作響應(yīng)的方法。例2.3對(duì)應(yīng)SimpleGraphicsInOut.java

程序的HTML文件:SimpleGraphicsInOut.html<HTML><HEAD><TITLE>SimpleGraphicsInOut</TITLE></HEAD><BODY><appletcode=SimpleGraphicsInOutwidth=300height=200VIEWASTEXT></applet></BODY></HTML>3、圖形界面下的輸入輸出:JavaApplication例2.4圖形界面下的Application程序:GraphicsApplicationInOut.javaimportjava.awt.*; //引入java.awt

包中的所有類publicclassGraphicsApplctInOut

//定義主類GraphicsApplicationInOut{ publicstaticvoidmain(Stringargs[])//定義主類中的main方法

{

ApplctFrame

MyFrame=newApplctFrame();//創(chuàng)建對(duì)象myFrame,形成圖形界面

}}classApplctFrameextendsFrame //定義Frame類的子類applictFrame{ Labelprompt; //定義提示標(biāo)簽對(duì)象

TextFieldinput; //定義輸入單行文本區(qū)域?qū)ο?/p>

Labeloutput; //定義輸出標(biāo)簽對(duì)象

ApplctFrame() //對(duì)ApplctFrame對(duì)象初始化{super("ApplicationGraphicsFrame");//調(diào)用父類方法,指定圖形界面窗口的標(biāo)題setLayout(new

FlowLayout()); //指定圖形界面窗口中各部件的排列方式prompt=newLabel("Enteracharacterplease:"); //創(chuàng)建提示標(biāo)簽對(duì)象input=newTextField(4); //創(chuàng)建輸入單行文本區(qū)域?qū)ο髈utput=newLabel(""); //創(chuàng)建輸出標(biāo)簽對(duì)象

add(prompt); //將提示標(biāo)簽加入窗口

add(input); //將輸入?yún)^(qū)域加入窗口

add(output); //將輸出標(biāo)簽加入窗口

pack(); //使上述三部件間緊密相連

show(); //顯示圖形窗口

} publicbooleanaction(Evente,Objecto) //定義對(duì)用戶輸入的響應(yīng)

{

output.setText("You'veenteredcharacter:"+o.toString()); //在輸出標(biāo)簽回顯輸入內(nèi)容

returntrue; }publicboolean

handleEvent(Evente)//響應(yīng)用戶關(guān)閉窗口的操作

{if(e.id==Event.WINDOW_DESTROY)//如果事件的id是關(guān)閉窗口,則執(zhí)行退出。

System.exit(0); returnsuper.handleEvent(e); }}解釋:

1、JavaApplication應(yīng)用程序下如何創(chuàng)建圖形界面示例;

2、程序由兩個(gè)類構(gòu)成:(1)主類publicclassGraphicsApplication

(包含main方法:publicstaticvoidmain(Stringargs[]))

(2)用戶自定義類classApplctFrameextendsFrame(繼承父類Frame的屬性與方法)

3、Frame類:框架(frame)是一個(gè)具有附加屬性的空口,這些屬性包括標(biāo)題欄、菜單欄、邊界、光標(biāo)和圖標(biāo)映象。是類庫(kù)java.awt

包中的類。

4、自定義類ApplctFrame

中的方法:(1)構(gòu)造方法ApplctFrame():在創(chuàng)建對(duì)象的同時(shí)完成對(duì)ApplctFrame

對(duì)象初始化;(2)action()方法:當(dāng)一個(gè)動(dòng)作事件發(fā)生時(shí)被調(diào)用,即定義為處理所有用戶產(chǎn)生的事件。(3)handleEvent()方法:當(dāng)組件接收到事件時(shí)被調(diào)用,被定義為可以處理所有類型的事件。(4)action()方法和handleEvent()方法都是組件Component類中的方法;

5、Event類:事件(event)在AWT組件中流動(dòng)的事件由Event類的對(duì)象表示。是類庫(kù)java.awt

包中的類;

6、Component類:組件(component)是一種用戶界面對(duì)象,它可以顯示在屏幕上,還可以和用戶交互。這樣的用戶界面對(duì)象包括按鈕、滾動(dòng)條和文本域。是類庫(kù)java.awt

包中的類;

7、JavaApplication程序從主類的main()方法開始運(yùn)行。創(chuàng)建一個(gè)用戶自定義的ApplictFrame類的對(duì)象,即創(chuàng)建一個(gè)用戶圖形界面窗口;2.2變量與數(shù)據(jù)類型2.2.1變量Java中的變量定義: a.定義變量的名字

b.定義變量的數(shù)據(jù)類型如: intx; charch1,ch2;

其中,x、ch1、ch2為變量名,即變量標(biāo)識(shí)符;int

、char數(shù)據(jù)類型;標(biāo)識(shí)符命名規(guī)定:(1)標(biāo)識(shí)符可以由字母、數(shù)字、下劃線或$符號(hào)組成,對(duì)標(biāo)識(shí)符的長(zhǎng)度沒有特別限定。(2)標(biāo)識(shí)符必須以字母、下劃線或$符開頭。(3)標(biāo)識(shí)符區(qū)分大小寫。例2.5定義簡(jiǎn)單變量:VariableDefinition.javaimportjava.awt.*;importjava.applet.Applet;publicclassVariableDefinitionextendsApplet //定義主類VariableDefinition,是Applet的子類{

intx=10; //定義整型變量x并賦初值

charchar_MyClass_Flag='R'; //定義子符型變量并賦初值

Labeloutput1; //定義用來(lái)顯示輸出結(jié)果的兩個(gè)標(biāo)簽

Labeloutput2;

publicvoidinit() //創(chuàng)建標(biāo)簽,指定其顯示內(nèi)容

{ //并加入主類的Applet圖形界面顯示

output1=newLabel("定義int

類型變量"+"x,初值為"+x); output2=newLabel("定義char類型變量" +"char_MyClass_Flag,初值為"+char_MyClass_Flag); add(output1); add(output2); }}例2.6使用變量簡(jiǎn)化程序:VariableDefinition2.javaimportjava.awt.*;importjava.applet.Applet;publicclassVariableDefinition2extendsApplet{

intx=10; charchar_MyClass_Flag='F'; Stringprompt1="定義"; //定義三字符串變量

Stringprompt2="類型變量"; //把固定的字符串常量賦給它們

Stringprompt3=",初值為"; //使編程更加方便

publicvoidpaint(Graphicsg) { g.drawString(prompt1+"int"+prompt2+"x"+prompt3+x,10,20); g.drawString(prompt1+"char"+prompt2+"char_MyClass_Flag" +prompt3+char_MyClass_Flag,10,50); }}注意:程序中的變量必須先定義后使用,變量的有效范圍在定義它的語(yǔ)句所在的大括號(hào)內(nèi)部(包括其中嵌套的大括號(hào)內(nèi)部),一旦出了這個(gè)范圍,變量就失效了。2.2.2數(shù)據(jù)類型1、布爾型boolean

取值:true(真)false(假)例2.8布爾型變量的定義與初值設(shè)備:ShowBoolean.javaimportjava.awt.*;importjava.applet.Applet;publicclassShowBooleanextendsApplet{

booleanb1=true;

booleanb2; //默認(rèn)初值falseStringprompt1="boolean";Stringprompt2="類型變量";Stringprompt3=",初值為";publicvoidpaint(Graphicsg){g.drawString(prompt1+prompt2+"b1"+prompt3+b1,10,20);g.drawString(prompt1+prompt2+"b2"+prompt3+b2,10,50);}}2、整型int

與字符型char

*短整型short 16bit

*整型int 32bit

*長(zhǎng)整型long 64bit

*字符型char 16bit

**整形變量的使用必須注意最大值和最小值,以免出現(xiàn)溢出。**字符型變量的取值可以使用字符常量(用單引號(hào)括起來(lái)的單個(gè)字符),也可以使用整型常數(shù)。例:charc_char='A';charc_int=65;

注意:整型變量必須強(qiáng)制類型轉(zhuǎn)換才能向字符變量賦值。如下是錯(cuò)誤的:

inti=65; charc_char=i;//i是整型變量,c_char是字符型變量,無(wú)強(qiáng)制類型轉(zhuǎn)換,錯(cuò)誤。正確語(yǔ)句如下:

inti=65; charc_char=(char)i; //強(qiáng)制類型轉(zhuǎn)換3、浮點(diǎn)型float、double

*浮點(diǎn)型 float 32bit

*雙精度型 double 64bitfloat和double都是浮點(diǎn)數(shù)據(jù)類型,程序中使用它們來(lái)代表小數(shù)??茖W(xué)計(jì)數(shù)法表示小數(shù):

3.14E3 表示 3140 3.14E-2 表示 0.0314float浮點(diǎn)數(shù)的表示方法如: 0.0314f 或 0.0314F 3.14E-2f 或 3.14E-2Fdouble浮點(diǎn)數(shù)的表示方法如: 0.0314d 或 0.0314D 3.14E-2d 或 3.14E-2D

如果一個(gè)數(shù)沒有帶f(F)或d(D)后綴時(shí),系統(tǒng)默認(rèn)為double浮點(diǎn)數(shù)。注意:將一個(gè)double類型的數(shù)據(jù)賦給float類型變量,將產(chǎn)生編譯錯(cuò)誤。如

floatf=3.14; //編譯錯(cuò)誤,因?yàn)?.14默認(rèn)為double數(shù)據(jù)類型。

floatf=3.14F; //正確的寫法4、類型轉(zhuǎn)換(1)隱含類型轉(zhuǎn)換:凡是把占用比特?cái)?shù)較少的數(shù)據(jù)轉(zhuǎn)換成占用比特?cái)?shù)較多的數(shù)據(jù)為隱含類型輪換。(2)強(qiáng)制類型轉(zhuǎn)換格式:(數(shù)據(jù)類型)變量名 強(qiáng)制類型轉(zhuǎn)換是將變量名的數(shù)據(jù)類型轉(zhuǎn)換成括號(hào)里指定的數(shù)據(jù)類型。注意:強(qiáng)制類型轉(zhuǎn)換應(yīng)防止數(shù)據(jù)溢出。如

longl=5000000000;

inti=(int)l;//因?yàn)閘=5000000000的值大于i的最大值2147483647溢出錯(cuò)誤。2.3表達(dá)式與運(yùn)算符2.3.1算術(shù)運(yùn)算雙目運(yùn)算符:+、-、×、/、%分別為:加、減、乘、除、取余算術(shù)運(yùn)算,用于整型與浮點(diǎn)型數(shù)據(jù)的運(yùn)算。單目運(yùn)算符:自加++;自減--。例2.9算術(shù)運(yùn)算:ArithmeticOperation.javaimportjava.applet.Applet;importjava.awt.*;publicclassArithmetcOperationextendsApplet{

inti_x=1;

inti_y=2; doubled_x=3.1415926; doubled_y=2.41; publicvoidpaint(Graphicsg)

{

g.drawString(i_x+"+"+i_y+"="+(i_x+i_y),10,20);

g.drawString(i_x+"-"+i_y+"="+(i_x-i_y),10,40);

g.drawString(i_x+"*"+i_y+"="+(i_x*i_y),10,60);

g.drawString(i_x+"/"+i_y+"="+(i_x/i_y),10,80);

g.drawString(i_x+"%"+i_y+"="+(i_x%i_y),10,100);

g.drawString(d_x+"+"+d_y+"="+(d_x+d_y),10,140);

g.drawString(d_x+"-"+d_y+"="+(d_x-d_y),10,160);

g.drawString(d_x+"*"+d_y+"="+(d_x*d_y),10,180);

g.drawString(d_x+"/"+d_y+"="+(d_x/d_y),10,200);

g.drawString(d_x+"%"+d_y+"="+(d_x%d_y),10,220); }}2.3.2邏輯運(yùn)算與關(guān)系運(yùn)算1、關(guān)系運(yùn)算關(guān)系運(yùn)算符:==、!=、>、<、>=、<=分別代表等于、不等于、大于、小于、大于等于、小于等于說(shuō)明:(1)判斷兩數(shù)相等的等于運(yùn)算符由兩個(gè)等號(hào)連綴而成。一個(gè)等號(hào)是賦值號(hào)。(2)參與比較大小的兩個(gè)操作數(shù)或表達(dá)式的值可以是整型,也可以是浮點(diǎn)型。但是浮點(diǎn)型數(shù)之間作等于比較是無(wú)意義的,因?yàn)檫\(yùn)算總有誤差,通常沒有絕對(duì)相等的浮點(diǎn)數(shù)。例2.10關(guān)系運(yùn)算:RelationOperation.javaimportjava.applet.Applet;importjava.awt.*;publicclassRelatinOperationextendsApplet{

inti_x=1;

inti_y=2; doubled_x=3.1415926; doubled_y=2.41; publicvoidpaint(Graphicsg) {

g.drawString(i_x+">"+i_y+"="+(i_x>i_y),10,20);

g.drawString(i_x+"<"+i_y+"="+(i_x<i_y),10,40);

g.drawString(i_x+"=="+i_y+"="+(i_x==i_y),10,60);

g.drawString(i_x+"!="+i_y+"="+(i_x!=i_y),10,80);

g.drawString(i_x+">="+i_y+"="+(i_x>=i_y),10,100);

g.drawString(i_x+"<="+i_y+"="+(i_x<=i_y),10,120);

g.drawString(d_x+">"+d_y+"="+(d_x>d_y),10,160);

g.drawString(d_x+"<"+d_y+"="+(d_x<d_y),10,180); }}2、邏輯運(yùn)算例2.11邏輯運(yùn)算:LogicalOperation.javaimportjava.applet.Applet;importjava.awt.*;publicclassLogicalOperationextendsApplet{

booleanb1=true;

booleanb2=false;

intx1=3,y1=5;

intx2=3,y2=5;

booleanb3=x1>y1&&x1++==y1--;

booleanb4=x2>y2&x2++==y2--;

publicvoidpaint(Graphicsg) {

g.drawString(b1+"&"+b2+"="+(b1&b2),10,20);

g.drawString(b1+"|"+b2+"="+(b1|b2),10,40);

g.drawString(b1+"^"+b2+"="+(b1^b2),10,60);

g.drawString("!"+b2+"="+(!b2),10,80);

g.drawString(b1+"&&"+b2+"="+(b1&&b2),10,100);

g.drawString(b1+"||"+b2+"="+(b1||b2),10,120);

g.drawString("x="+x1+",y="+y1,10,140);

g.drawString("(x>y&&x++==y--)="+b3+";x="+x1+",y="+y1,10,160);

g.drawString("(x>y&x++==y--)="+b4+";x="+x2+",y="+y2,10,180); }}2.3.3位運(yùn)算2.3.4其他運(yùn)算符

1、三目條件運(yùn)算符?:

使用格式:x?y:z

其規(guī)則是,先計(jì)算表達(dá)式x的值,若x為真,則整個(gè)三目運(yùn)算的結(jié)果為表達(dá)式y(tǒng)的值;若x為假,則整個(gè)運(yùn)算結(jié)果為表達(dá)式z的值。例:intx=5,y=8,z=2;

intk=x<3?y:z;//x<3為假,所以k取z的值,結(jié)果為2.

inty=x>0?x:-x;//y為x的絕對(duì)值。

2、復(fù)雜賦值運(yùn)算符(材料P.39表2.5復(fù)雜賦值運(yùn)算符)

3、括號(hào)與方括號(hào)括號(hào)運(yùn)算符()在某些情況下起到改變表達(dá)式運(yùn)算先后順序的作用;在另一些情況下代表方法或函數(shù)的調(diào)用。它的優(yōu)先級(jí)在所有的運(yùn)算符中是最高的。方括號(hào)運(yùn)算符[]是數(shù)組運(yùn)算符,它的優(yōu)先級(jí)也是很高,其具體使用方法將在后面介紹。

4、對(duì)象運(yùn)算符對(duì)象運(yùn)算符instanceof

用來(lái)測(cè)定一個(gè)對(duì)象是否屬于某一個(gè)指定類或其子類的實(shí)例,如果是則返回true,否則返回false。

例:booleanb=MyObject

instanceof

MyClass;2.3.5運(yùn)算符的優(yōu)先級(jí)與結(jié)合性運(yùn)算符的優(yōu)先級(jí)決定了表達(dá)式中不同運(yùn)算執(zhí)行的先后順序。如關(guān)系運(yùn)算符的優(yōu)先級(jí)高于邏輯運(yùn)算符。運(yùn)算符的結(jié)合性決定了并列的相同運(yùn)算的先后執(zhí)行順序。如對(duì)于左結(jié)合的“+”,x+y+z等價(jià)于(x+y)+z,對(duì)于右結(jié)合的“!”,!!x等價(jià)于!(!x)。第三章Java語(yǔ)言的結(jié)構(gòu)化程序設(shè)計(jì)3.1算法與結(jié)構(gòu)化程序設(shè)計(jì)1、算法任何可計(jì)算性問題的解決過程都可以轉(zhuǎn)化為按指定順序執(zhí)行的一系列操作過程。由"(1)可執(zhí)行的操作;(2)執(zhí)行操作的順序"組成解決問題的過程稱為算法。2、結(jié)構(gòu)化程序設(shè)計(jì)的三種基本結(jié)構(gòu)順序結(jié)構(gòu):程序中的語(yǔ)句按它們書寫的順序一句接一句地執(zhí)行。分支結(jié)構(gòu):程序根據(jù)條件,判斷執(zhí)行流程。循環(huán)結(jié)構(gòu):程序反復(fù)執(zhí)行某段程序塊,直到結(jié)束條件滿足。結(jié)構(gòu)化編程原則:自頂向下、逐步求精。3.2分支控制結(jié)構(gòu)

Java中的分支語(yǔ)句有兩個(gè),一個(gè)是負(fù)責(zé)實(shí)現(xiàn)雙分支的if語(yǔ)句,另一個(gè)是負(fù)責(zé)實(shí)現(xiàn)多分支的開關(guān)語(yǔ)句switch。3.2.1if語(yǔ)句

if語(yǔ)句的一般形式是:

if(條件表達(dá)式)語(yǔ)句塊;//if分支

else

語(yǔ)句塊;//else分支其中條件表達(dá)式用來(lái)選擇判斷程序的流程走向,在程序的實(shí)際執(zhí)行過程中,如果條件表達(dá)式的取值為真,則執(zhí)行if分支的語(yǔ)句塊,否則執(zhí)行else分支的語(yǔ)句塊。在編寫程序時(shí),也可以不書寫else分支,此時(shí)若條件表達(dá)式的取值為假,則繞過if分支直接執(zhí)行if語(yǔ)句后面的其他語(yǔ)句。語(yǔ)法格式如下:

if(條件表達(dá)式)語(yǔ)句塊;//if分支其他語(yǔ)句;補(bǔ)充例子:FindMax.javaimportjava.applet.*;importjava.awt.*;importjava.awt.event.*;publicclassFindMaxextendsAppletimplementsActionListener{Labelresult;

TextFieldin1,in2,in3;Buttonbtn;

inta=0,b=0,c=0,max;

publicvoidinit(){result=newLabel("請(qǐng)輸入三個(gè)待比較的整數(shù)");in1=newTextField(5);in2=newTextField(5);in3=newTextField(5);

btn=newButton("比較");

add(in1);add(in2);add(in3);

add(btn);add(result);

btn.addActionListener(this);}

publicvoidactionPerformed(ActionEvente){a=Integer.parseInt(in1.getText());b=Integer.parseInt(in2.getText());c=Integer.parseInt(in3.getText());if(a>b)if(a>c)max=a;elsemax=c;elseif(b>c)max=b;elsemax=c;

result.setText("三個(gè)數(shù)中最大值是:"+max);}}例3.1求某班的平均成績(jī)、及格人數(shù)和不及格人數(shù)。importjava.applet.*;importjava.awt.*;publicclassClassScoreextendsApplet //定義主類{ Labelprompt; //定義提示標(biāo)簽

TextFieldinput; //定義輸入?yún)^(qū)域

int

PassCount=0; //定義并初始化及格計(jì)數(shù)器

int

FailureCount=0; //定義并初始化不及格計(jì)數(shù)器

int

TotalNumber=0; //定義并初始化總?cè)藬?shù)計(jì)數(shù)器

int

TotalScore=0; //定義并初始化總分累計(jì)器

doubleAverageScore=0; //定義并初始化班平均分

publicvoidinit() { prompt=newLabel("Enternextstudentscore(-1forreset):"); input=newTextField(4); add(prompt); add(input); } publicvoidpaint(Graphicsg) //顯示更新后的各項(xiàng)統(tǒng)計(jì)數(shù)據(jù)

{

g.drawString("Totalstudentnumberis:"+TotalNumber,10,80);

g.drawString("Thepassnumberis:"+PassCount,10,100);

g.drawString("Thefailurenumberis:"+FailureCount,10,120);

g.drawString("Theaveragescoreofwholeclassis:"+AverageScore,10,140); }

publicbooleanaction(Evente,Objecto) {

intscore; if(e.target==input) { score=Integer.parseInt(input.getText()); if(score==-1) {

PassCount=0;

FailureCount=0;

TotalNumber=0;

TotalScore=0;

AverageScore=0; }

else { if(score>=60)

PassCount++; else

FailureCount++;

TotalNumber++;

TotalScore+=score;

AverageScore=TotalScore/TotalNumber; }

input.setText(""); repaint(); } returntrue; }}3.2.2switch語(yǔ)句

switch語(yǔ)句是多分支的開關(guān)語(yǔ)句,它的一般格式如下:switch(表達(dá)式){case判斷值1:語(yǔ)句塊1//分支1case判斷值2:語(yǔ)句塊2//分支2......case判斷值3:語(yǔ)句塊n//分支ndefault:語(yǔ)句塊n+1//分支n+1}

switch語(yǔ)句在執(zhí)行時(shí),首先計(jì)算表達(dá)式的值,這個(gè)值必須是整型或字符型,同時(shí)應(yīng)與各個(gè)case分支的判斷值的類型相一致。計(jì)算出表達(dá)式的值之后,將它先與第一個(gè)case分支的判斷值相比較,若相同,則程序的流程轉(zhuǎn)入第一個(gè)case分支的語(yǔ)句塊;否則,再將表達(dá)式的值與第二個(gè)case分支相比較......依此類推。如果表達(dá)式的值與任何一個(gè)case分支都不相同,則轉(zhuǎn)而執(zhí)行最后的default分支;在default分支不存在的情況下,則跳出整個(gè)switch語(yǔ)句。

需要注意的是,switch語(yǔ)句的每一個(gè)case判斷,都只負(fù)責(zé)指明流程分支的入口點(diǎn),而不負(fù)責(zé)指定分支的出口點(diǎn),分支的出口點(diǎn)需要編程人員用相應(yīng)的跳轉(zhuǎn)語(yǔ)句來(lái)標(biāo)明。如下例子:switch(MyGrade){case'A':MyScore=5;break;case'B':MyScore=4;break;case'C':MyScore=3;break;default:MyScore=0;}break是流程跳轉(zhuǎn)語(yǔ)句,它定義了分支的出口,多分支開關(guān)語(yǔ)句的結(jié)構(gòu)就完整了。3.3循環(huán)控制結(jié)構(gòu)循環(huán)結(jié)構(gòu)是在一定條件下,反復(fù)執(zhí)行某段程序的流程結(jié)構(gòu),被反復(fù)執(zhí)行的程序被稱為循環(huán)體。1、while語(yǔ)句

while語(yǔ)句的一般語(yǔ)法格式如下:

while(條件表達(dá)式)循環(huán)體其中條件表達(dá)式的返回值為布爾型,循環(huán)體可以是單個(gè)語(yǔ)句,也可以是復(fù)合語(yǔ)句塊。

while語(yǔ)句的執(zhí)行過程是先判斷條件表達(dá)式的值,若為真,則執(zhí)行循環(huán),循環(huán)體執(zhí)行完之后再無(wú)條件轉(zhuǎn)向條件表達(dá)式再做計(jì)算與判斷;當(dāng)計(jì)算出條件表達(dá)式為假時(shí),跳過循環(huán)體執(zhí)行while語(yǔ)句后的語(yǔ)句。補(bǔ)充例題求一個(gè)水仙花數(shù)程序Narcissus.java。水仙花數(shù)是三位數(shù),它的各位數(shù)字的立方和等于這個(gè)三位數(shù)本身。importjava.io.*;publicclassNarcissus{publicstaticvoidmain(Stringargs[]){

inti,j,k,n=100,m=1;while(n<1000){ i=n/100; j=(n-i*100)/10; k=n%10; if(Math.pow(i,3)+Math.pow(j,3)+Math.pow(k,3)==n)

System.out.println("找到第"+m+"個(gè)水仙花數(shù):"+n); n++;}}}2、do-while語(yǔ)句

do-while語(yǔ)句的一般語(yǔ)法結(jié)構(gòu)如下:

do

循環(huán)體

while(條件表達(dá)式);

do-while語(yǔ)句的使用與while語(yǔ)句很類似,不同的是不像while語(yǔ)句是先計(jì)算條件表達(dá)式的值,而是無(wú)條件地先執(zhí)行一遍循環(huán)體,再來(lái)判斷條件表達(dá)式。若表達(dá)式的值為真,則再運(yùn)行循環(huán)體,否則跳出do-while循環(huán),執(zhí)行下面語(yǔ)句??梢钥闯?,do-while語(yǔ)句的特點(diǎn)是它的循環(huán)體將至少被執(zhí)行一次。補(bǔ)充例題:從鍵盤接受用戶輸入的一個(gè)字符后輸出這個(gè)字符整型數(shù)值程序showCharValue.javaimportjava.io.*;publicclassshowCharValue{ publicstaticvoidmain(Stringargs[]) {charch;try{

System.out.println("請(qǐng)輸入一個(gè)字符,以'#'結(jié)束");

do {

ch=(char)System.in.read();

System.out.println("字符"+ch+"的整數(shù)值為"+(int)ch); System.in.skip(2); //跳過回車鍵

}while(ch!='#');}catch(IOExceptione) {

System.err.println(e.toString()); } }}3、for語(yǔ)句

for語(yǔ)句是Java語(yǔ)言三個(gè)循環(huán)語(yǔ)句中功能較強(qiáng),使用較廣泛的一個(gè)。for語(yǔ)句的一般語(yǔ)法如下:

for(表達(dá)式1;表達(dá)式2;表達(dá)式3)循環(huán)體其中表達(dá)式2是返回布爾值的條件表達(dá)式,用來(lái)判斷循環(huán)是否繼續(xù);表達(dá)式1完成初始化循環(huán)變量和其他變量的工作;表達(dá)式3用來(lái)修整循環(huán)變量,改變循環(huán)條件,三個(gè)表達(dá)式之間用分號(hào)隔開。

for語(yǔ)句的執(zhí)行過程是這樣的:首先計(jì)算表達(dá)式1,完成必要的初始化工作;再判斷表達(dá)式2的值,若為真,則執(zhí)行循環(huán)體,執(zhí)行完循環(huán)體后再返回表達(dá)3,計(jì)算并修改循環(huán)條件,這樣一輪循環(huán)就結(jié)束了。第二輪循環(huán)從計(jì)算并判斷表達(dá)式2開始,若表達(dá)式的值仍為真,則繼續(xù)循環(huán),否則跳出整個(gè)for語(yǔ)句執(zhí)行下面的句子。for語(yǔ)句的三個(gè)表達(dá)式都可以為空,但若表達(dá)式2也為空,則表示當(dāng)前循環(huán)是一個(gè)無(wú)限循環(huán),需要在循體中書寫另外的跳轉(zhuǎn)語(yǔ)句終止循環(huán)。補(bǔ)充例題:輸出1000之內(nèi)的所有完全數(shù)程序PerfectNum.java

。完全數(shù)是指等于其所有因子和(包括1但不包括這個(gè)數(shù)本身)的數(shù)。importjava.io.*;publicclassPerfectNum{ publicstaticvoidmain(Stringargs[]) {

intcount=1; for(inti=1;i<1000;i++) {

inty=0; for(intj=1;j<i;j++) if(i%j==0) y+=j;

if(y==i) { System.out.print(i+String.valueOf('\t')); count++; if(count%3==0)

System.out.println(); } } try{ System.in.read(); }catch(IOExceptione){} }}4、循環(huán)中的跳轉(zhuǎn)語(yǔ)句(1)continue語(yǔ)句

continue語(yǔ)句必須用于循環(huán)結(jié)構(gòu)中。不帶標(biāo)號(hào)的continue語(yǔ)句終止當(dāng)前這一輪的循環(huán)。跳過本輪循環(huán)剩余語(yǔ)句,直接進(jìn)入當(dāng)前循環(huán)的下一輪。帶標(biāo)號(hào)的continue語(yǔ)句直接跳轉(zhuǎn)到標(biāo)號(hào)處繼續(xù)執(zhí)行。格式:continue標(biāo)號(hào)名;(2)break語(yǔ)句作用:程序的流程從一個(gè)語(yǔ)句塊內(nèi)部跳轉(zhuǎn)出來(lái)。格式:break標(biāo)號(hào)名;3.4定義和使用Java的方法1、定義方法方法是類的動(dòng)態(tài)屬性,標(biāo)志了類所具有的功能和操作,用來(lái)把類和對(duì)象的數(shù)據(jù)封裝在一起。方法由方法頭與方法體組成,其一般格式如下:修飾符1修飾符2......返回值類型方法名(形式參數(shù)列表)throw[異常列表]{

方法體各語(yǔ)句;

}

其中形式參數(shù)列表的格式為:形式參數(shù)類型1形式參數(shù)名1,形式參數(shù)類型2形式參數(shù)名3,......

小括號(hào)是方法的標(biāo)志,程序使用方法名來(lái)調(diào)用方法,形式參數(shù)是方法從調(diào)用它的環(huán)境輸入的數(shù)據(jù),返回值是方法在操作完成后返還給調(diào)用它的環(huán)境的數(shù)據(jù)。定義方法的目的是定義具有相對(duì)獨(dú)立和常用功能的模塊,使程序結(jié)構(gòu)清晰,也利于模塊在不同場(chǎng)合的重復(fù)利用。方法頭:由方法名、參數(shù)列表、方法返回值類型、方法修飾符和方法拋出的例外組成。方法體:由局部變量聲明和語(yǔ)句序列組成。例3.3列出兩數(shù)M和N之間的所有素?cái)?shù)和N的所有素?cái)?shù)因子,而且將求出數(shù)N的所有素?cái)?shù)因子。importjava.applet.Applet;importjava.awt.*;publicclassUsePrimeextendsApplet{ Labelprompt;

TextFieldL_input,U_input;

int

LowerLimit,UpperLimit; publicvoidinit() { prompt=newLabel("Enterthelowerandupperlimit:"); L_input=newTextField(4); U_input=newTextField(4); add(prompt); add(L_input); add(U_input); }

publicvoidpaint(Graphicsg) {

inti,j,k=0;

intp=0;

booleanf_i; for(i=2;i<UpperLimit;i++) {

if(UpperLimit%i!=0) continue; f_i=false; if(i%2!=0) { j=3; f_i=true;

while(j<=Math.sqrt(i)) {if(i%j==0) { f_i=false; break; } j+=2; }} if(f_i) { g.drawString(Integer.toString(i),20+k*20,40+p*20); if(k>10) {p++; k=0; } else k++; }}

k=0; p=0; for(i=LowerLimit;i<=UpperLimit;i++) { f_i=false; if(i%2!=0) { j=3; f_i=true;

while(j<=Math.sqrt(i)) {if(i%j==0) { f_i=false; break; } j+=2; }} if(f_i) {g.drawString(Integer.toString(i),20+k*20,100+p*20); if(k>10) {p++; k=0; } else k++; } } }

publicbooleanaction(Evente,Objecto) {

inttemp; if(e.target==U_input) {

LowerLimit=Integer.parseInt(L_input.getText());

UpperLimit=Integer.parseInt(U_input.getText());

if(LowerLimit>UpperLimit)

{ temp=LowerLimit;

LowerLimit=UpperLimit;

UpperLimit=temp; } repaint(); } returntrue; }}例3.4定義判斷素?cái)?shù)的方法,改寫例3.3.importjava.applet.Applet;importjava.awt.*;publicclassUsePrime_CextendsApplet{ Labelprompt;

TextFieldL_input,U_input;

int

LowerLimit,UpperLimit; publicvoidinit() { prompt=newLabel("Enterthelowerandupperlimit:"); L_input=newTextField(4); U_input=newTextField(4); add(prompt); add(L_input); add(U_input); }

publicvoidpaint(Graphicsg) {

inti,j,k=0;

intp=0;

booleanf_i; for(i=2;i<UpperLimit;i++) {

if(UpperLimit%i!=0) continue; f_i=isPrime(i);

if(f_i) {

g.drawString(Integer.toString(i),20+k*20,40+p*20); if(k>10) { p++; k=0; } else k++; } } k=0; p=0; for(i=LowerLimit;i<=UpperLimit;i++) { f_i=isPrime(i);

if(f_i) {

g.drawString(Integer.toString(i),20+k*20,100+p*20); if(k>10) { p++; k=0; } else k++; } } }

boolean

isPrime(inti) {

intj=0;

booleanf_i; f_i=false; if(i%2!=0) {j=3; f_i=true; while(j<=Math.sqrt(i)) {if(i%j==0) {f_i=false; break;} j+=2; } } returnf_i; }

publicbooleanaction(Evente,Objecto) {

inttemp; if(e.target==U_input) {

LowerLimit=Integer.parseInt(L_input.getText());

UpperLimit=Integer.parseInt(U_input.getText());

if(LowerLimit>UpperLimit) { temp=LowerLimit;

LowerLimit=UpperLimit;

UpperLimit=temp; } repaint(); } returntrue; }}2、方法的形式參數(shù)方法頭中參數(shù)列表規(guī)定了方法的輸入數(shù)據(jù),而方法的返回值是方法的輸出數(shù)據(jù)。如方法頭為: boolean

isPrime(intn)其中: intn形式參數(shù),規(guī)定方法的輸入數(shù)據(jù)是一個(gè)整型量。

boolean

isPrime() 調(diào)用方法名為isPrime()的方法,將返回一個(gè)布爾型量。方法調(diào)用如: f_i=isPrime(i);其中: i 實(shí)際參數(shù),調(diào)用方法時(shí)傳給方法的實(shí)際數(shù)據(jù)。

f_i 獲得調(diào)用方法的返回結(jié)果,為布爾型量。3、方法的返回值返回值語(yǔ)句的一般格式是:

return表達(dá)式;如果方法沒有返回值,方法頭返回值類型應(yīng)該寫關(guān)鍵字void,表明這個(gè)方法不輸出數(shù)據(jù)。如: publicvoidinit()4、方法的使用(1)程序調(diào)用方法如:f_i=isPrime();

(2)系統(tǒng)調(diào)用方法如: publicbooleanaction(Evente,Objecto)

*只有系統(tǒng)才知道何時(shí)應(yīng)該調(diào)用這個(gè)方法。第七章常用工具、算法與數(shù)據(jù)結(jié)構(gòu)7.1java的類庫(kù)Java程序是由類的定義組成的,編寫java的過程就是設(shè)計(jì)各種類和確定它們相互作用關(guān)系的過程。為了簡(jiǎn)化面向?qū)ο蟮木幊踢^程,java事先設(shè)計(jì)并實(shí)現(xiàn)了一些體現(xiàn)常用功能的標(biāo)準(zhǔn)類,這些系統(tǒng)標(biāo)準(zhǔn)類根據(jù)實(shí)現(xiàn)的功能不同,可以劃分成不同的集合,每個(gè)集合是一個(gè)包,合稱為類庫(kù)。用戶可以自己編寫具有某一功能的類,但沒有必要一切從頭開始,完全可以繼承已有類,這樣使用戶的類一開始就具有了一些功能,大大提高了編程的效率??梢韵胂?,沒有java的類庫(kù),java程序寸步難行,所以我們必須對(duì)java的類庫(kù)有足夠的了解。我們可以這樣說(shuō),開發(fā)者編程能力的強(qiáng)弱相當(dāng)大程度上取決于他對(duì)java類庫(kù)的掌握程度。7.1.1java的類庫(kù)結(jié)構(gòu)Java的類庫(kù)是系統(tǒng)已實(shí)現(xiàn)的標(biāo)準(zhǔn)類的集合,是java編程的API,它可以幫助開發(fā)者方便、快捷的開發(fā)java程序。根據(jù)功能的不同,java的類庫(kù)被劃分為若干個(gè)不同的包,每個(gè)包中都有若干個(gè)具有特定功能合相互關(guān)系的類和接口。在java中使用類庫(kù)的方法是在程序的開頭用import語(yǔ)句引入。Java1.0類庫(kù)(1)java.lang包是java的核心類庫(kù),包含了運(yùn)行java程序必不可少的系統(tǒng)類,如基本數(shù)據(jù)類型、基本數(shù)學(xué)函數(shù)、字符串處理、線程、異常處理等。這個(gè)包的加載是缺省的,不需要用import引入,系統(tǒng)自動(dòng)加載。Java.io包Java.io包是java的標(biāo)準(zhǔn)輸入/輸出類庫(kù),凡是完成與操作系統(tǒng)有關(guān)的較底層的輸入輸出操作的java程序,都應(yīng)在程序開頭用import語(yǔ)句引入:importjava.io.*;Java.util包這個(gè)包包括了java語(yǔ)言中的一些低級(jí)的實(shí)用工具,如處理時(shí)間的Date類、處理變長(zhǎng)數(shù)組的Vector類、實(shí)現(xiàn)棧和雜湊表的Stack類和HashTable類等Java.awt包是java構(gòu)建用戶圖形界面的類庫(kù)。凡是要構(gòu)建圖形界面的都要把這個(gè)包引入。Java.awt.image包是用來(lái)處理和操作來(lái)自于網(wǎng)上的圖片的java工具類庫(kù)。Java.awt.peer包很少在程序中直接用到,它使java程序在不同的軟硬件平臺(tái)上運(yùn)行時(shí)具有相同的圖形界面,換句話說(shuō),是java語(yǔ)言實(shí)現(xiàn)跨平臺(tái)的主要手段之一。Java.applet包它僅包含一個(gè)有用的類,java.applet.Applet,實(shí)現(xiàn)運(yùn)行于Internet瀏覽器中的javaApplet的工具類庫(kù)。J包是java語(yǔ)言用于實(shí)現(xiàn)網(wǎng)絡(luò)功能的類庫(kù)。Java1.1類庫(kù)這個(gè)類庫(kù)是對(duì)1.0內(nèi)容的擴(kuò)充和修正。(1)java.corba包和java.corba.orb包(2)java.lang.reflect(3)java.rmi包、java.registry包和java.rmi.server包(4)java.security包、java.security.acl包和

erfaces包(5)java.util.zip包(6)java.awt.dataransfer包(7)java.awt.event包(8)java.sql

包是實(shí)現(xiàn)jdbc的類庫(kù),使java程序可以連接不同類型的數(shù)據(jù)庫(kù)如Oracle、Sysbase、SQLServer、Mysql、Postgre等。3。Java1.2簡(jiǎn)介Java1.2又稱為java2,它可以細(xì)化為三個(gè)版本:(1)企業(yè)版主要用于服務(wù)器上運(yùn)行的jav

溫馨提示

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

評(píng)論

0/150

提交評(píng)論