版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 按揭購(gòu)房貸款合同范本
- 展覽宣傳活動(dòng)合同
- 企業(yè)資產(chǎn)抵押貸款合同
- 2024購(gòu)車協(xié)議書合同范本
- 批量購(gòu)房合同協(xié)議
- 2024企業(yè)員工勞動(dòng)合同樣本
- 企業(yè)資產(chǎn)買賣合同模板
- 房屋轉(zhuǎn)讓協(xié)議標(biāo)準(zhǔn)合同范本
- 2024建設(shè)施工合同有些分類
- 2024公司股權(quán)轉(zhuǎn)讓及后續(xù)合伙經(jīng)營(yíng)合同
- 公司組織架構(gòu)圖模板課件
- 遼寧省葫蘆島市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會(huì)明細(xì)
- 植物種子的傳播方式課件
- 電纜敷設(shè)施工方案及安全措施
- 百合干(食品安全企業(yè)標(biāo)準(zhǔn))
- 肺血栓栓塞癥臨床路徑(縣級(jí)醫(yī)院版)
- 國(guó)開成本會(huì)計(jì)第10章綜合練習(xí)試題及答案
- 《西游記》-三打白骨精(劇本臺(tái)詞)精選
- T∕CSCS 012-2021 多高層建筑全螺栓連接裝配式鋼結(jié)構(gòu)技術(shù)標(biāo)準(zhǔn)-(高清版)
- 充電站項(xiàng)目合作方案-高新
- 急診科臨床診療指南-技術(shù)操作規(guī)范更新版
評(píng)論
0/150
提交評(píng)論