《Java程序設(shè)計(jì)教程》課后答案-趙輝_第1頁(yè)
《Java程序設(shè)計(jì)教程》課后答案-趙輝_第2頁(yè)
《Java程序設(shè)計(jì)教程》課后答案-趙輝_第3頁(yè)
《Java程序設(shè)計(jì)教程》課后答案-趙輝_第4頁(yè)
《Java程序設(shè)計(jì)教程》課后答案-趙輝_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第一章【基礎(chǔ)】1,D2,B3,A4,AllmansKernighan5,編輯源程序$編譯生成字節(jié)碼$解釋運(yùn)行字節(jié)碼【應(yīng)用】1,Java平臺(tái)由JVM和JavaAPI組成。其中JVM為Java虛擬機(jī),它類(lèi)似于可運(yùn)行Java程序的抽象計(jì)算機(jī),而JavaAPI是已編譯的可在任何Java程序中使用的代碼庫(kù)(即Java類(lèi)庫(kù)),它們作為可定制的現(xiàn)成功能可以隨時(shí)添加到Java【應(yīng)用】程序中,以節(jié)約編程時(shí)間,實(shí)現(xiàn)代碼復(fù)用。2,publicclassC1_P4{//類(lèi)名 publicstaticvoidmain(Stringargs[]){ System.out.println("mynameistom");//輸出語(yǔ)句,輸出"mynameistom }}第二章【基礎(chǔ)】1.A2.C3.4.B【應(yīng)用】1,(1)true(2)false(3)false(4)true2,(1)20.0(2)13(3)158.0(4)0(5)false3,(1)importjava.util.Scanner;publicclassExample{ publicstaticvoidmain(String[]args){ System.out.println("pleaseinputyoursalesAmount:"); ScannerI=newScanner(System.in); doublesalesAmount=I.nextDouble(); doublecommission; if(salesAmount>=10001) commission=5000*0.08+5000*0.1+(salesAmount-10000)*0.12; elseif(salesAmount>=5001) commission=5000*0.08+(salesAmount-5000)*0.1; else commission=salesAmount*0.08; System.out.println(commission); }}(2)importjava.util.Scanner;publicclassExample{ publicstaticvoidmain(String[]args){ System.out.println("pleaseinputyournumber:"); ScannerI=newScanner(System.in); doublea=I.nextDouble(); doubleb=I.nextDouble(); doublec=I.nextDouble(); if(a+b>c&&a+c>b&&b+c>a) { System.out.println("可以構(gòu)成三角形\n"); if(a==b&&a==c)System.out.println("等邊三角形"); elseif(a==b||a==c||b==c)System.out.println("等腰三角形"); elseif(a*a+b*b==c*c)System.out.println("直角三角形"); } else System.out.println("不可以構(gòu)成三角形"); }}【探索】1,publicclassExample{ /** *@paramargs */ publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub for(inti=0;i<5;i++){for(intj=0;j<5;j++){if(j==2&&(i==0||i==4)){System.out.print("*");}elseif((i==1||i==3)&&0<j&&j<4){System.out.print("*");}elseif(i==2){System.out.print("*");}else{System.out.print("");}}System.out.println();} }}2,publicclassExample{ publicstaticvoidmain(String[]args){ for(introw=0;row<=7;row++) { for(intcolumn=1;column<=7-row;column++) { System.out.print(""); } for(intcolumn=1;column<=row+1;column++) { System.out.print(""+column); } for(intcolumn=row;column>0;column--) { System.out.print(""+column); } System.out.println(); } }}第三章【基礎(chǔ)】1,D2,A3,封裝,繼承,多態(tài)4,為了更好地組織類(lèi),Java提供了包機(jī)制。包是類(lèi)的容器,用于分隔類(lèi)名空間。如果沒(méi)有指定包名,所有的示例都屬于一個(gè)默認(rèn)的無(wú)名包。Java中的包一般均包含相關(guān)的類(lèi),例如,所有關(guān)于交通工具的類(lèi)都可以放到名為T(mén)ransportation的包中。如上所述,更好的組織類(lèi),防止在一個(gè)空間下出現(xiàn)類(lèi)重名啊這些情況;表明類(lèi)之間的層次關(guān)系。5,this代表的是當(dāng)前對(duì)象,可以是當(dāng)前對(duì)象的方法、變量。super代表的是父類(lèi),說(shuō)白了就是在子類(lèi)中通過(guò)super關(guān)鍵字來(lái)調(diào)用父類(lèi)的東西【應(yīng)用】1,classStudent{privateStringname;privateintstuId;privatefloatscore;publicStringgetName(){returnname;}publicvoidsetName(Stringname){=name;}publicintgetStuId(){returnstuId;}publicvoidsetStuId(intstuId){this.stuId=stuId;}publicfloatgetScore(){returnscore;}publicvoidsetScore(floatscore){this.score=score;}publicvoidshowInfo(){System.out.println("Student[name="+name+",stuId="+stuId+",score="+score+"]");}}importjava.util.Scanner;publicclassExample{ publicstaticvoidmain(String[]args){ ScannerI=newScanner(System.in); Studentstr=newStudent(); System.out.println("請(qǐng)輸入姓名"); str.setName(I.next()); System.out.println("請(qǐng)輸入學(xué)號(hào)"); str.setStuId(I.nextInt()); System.out.println("請(qǐng)輸入成績(jī)"); str.setScore(I.nextFloat()); str.showInfo(); }}2,classRectangle{privateDoubleWidth;publicDoubleLength;publicDoublegetWidth(){ returnWidth;}publicvoidsetWidth(Doublewidth){ if(width>0.0&&width<20.0) Width=width; else System.out.println("不為0.0到20.0的浮點(diǎn)數(shù)");}publicDoublegetLength(){ returnLength;}publicvoidsetLength(Doublelength){ if(length>0.0&&length<20.0) Length=length; else System.out.println("不為0.0到20.0的浮點(diǎn)數(shù)");}publicDoublePerimeter(){ return2*(Length+Width);}publicDoubleArea(){ returnLength*Width;}}importjava.util.Scanner;publicclassExample{ publicstaticvoidmain(String[]args){ RectangleR=newRectangle(); ScannerI=newScanner(System.in); System.out.println("請(qǐng)輸入長(zhǎng)方形的長(zhǎng)"); R.setLength(I.nextDouble()); System.out.println("請(qǐng)輸入長(zhǎng)方形的寬"); R.setWidth(I.nextDouble()); System.out.println("長(zhǎng)方形的面積"); System.out.println(R.Area()); System.out.println("長(zhǎng)方形的周長(zhǎng)"); System.out.println(R.Perimeter()); }}第四章【基礎(chǔ)】1,D2,C3,A4,D5,B【應(yīng)用】1,/***賬戶(hù)類(lèi)。**@authorCodingMouse*@version1.0*/publicabstractclassAccount{protectedStringaccountNumber;//賬號(hào)protecteddoubleoverage;//余額protecteddoubleannualInterestRate;//年利率/***參數(shù)化構(gòu)造器方法。**用于開(kāi)戶(hù)。*@paramaccountNumber預(yù)設(shè)賬號(hào)*@paramoverage初始余額*@paramannualInterestRate預(yù)設(shè)年利率*/publicAccount(StringaccountNumber,doubleoverage,doubleannualInterestRate){super();//設(shè)定賬號(hào)。this.accountNumber=accountNumber;//設(shè)定初始余額,至少為零。this.overage=overage>=0?overage:0;//設(shè)定年利率,至少為零。this.annualInterestRate=annualInterestRate>=0?annualInterestRate:0;}/***查詢(xún)賬號(hào)。*@return返回賬號(hào)。*/publicStringgetAccountNumber(){returnthis.accountNumber;}/***設(shè)置賬號(hào)。*@paramaccountNumber新賬號(hào)。*/publicvoidsetAccountNumber(StringaccountNumber){this.accountNumber=accountNumber;}/***查詢(xún)余額方法。*@return返回賬戶(hù)余額。*/publicdoublegetOverage(){returnthis.overage;}/***存款方法。*@parammoney要存入的金額。*@return返回true時(shí)存款成功,否則存款失敗。*/publicbooleandepositMoney(doublemoney){//如果金額小于零,則不能存款if(money<=0)returnfalse;//否則將相應(yīng)的金額累加到賬戶(hù)余額中this.overage+=money;returntrue;}/***取款方法。**默認(rèn)不能透支。*@parammoney要取出的金額。*@return返回true時(shí)取款成功,否則取款失敗。*/publicbooleandrawMoney(doublemoney){//如果賬戶(hù)余額不足,則不能取款if(this.overage<money)returnfalse;//否則從賬戶(hù)余額中扣除相應(yīng)的金額this.overage-=money;returntrue;}/***查詢(xún)年利率。*@return返回年利率。*/publicdoublegetAnnualInterestRate(){returnthis.annualInterestRate;}/***設(shè)置年利率。*@paramannualInterestRate新的年利率。*/publicvoidsetAnnualInterestRate(doubleannualInterestRate){this.annualInterestRate=annualInterestRate;}}--------------------------------------------------/***借記卡賬戶(hù)。**不能透支。*@authorCodingMouse*@version1.0*/publicclassDebitCardAccountextendsAccount{/***重寫(xiě)父類(lèi)構(gòu)造器。*@paramaccountNumber預(yù)設(shè)賬號(hào)*@paramoverage初始余額*@paramannualInterestRate預(yù)設(shè)年利率*/publicDebitCardAccount(StringaccountNumber,doubleoverage,doubleannualInterestRate){super(accountNumber,overage,annualInterestRate);}}-------------------------------------------------/***信用卡賬戶(hù)。**可以透支。*@authorCodingMouse*@version1.0*/publicclassCreditCardAccountextendsAccount{privatedoubleoverdraftLimit;//透支限度/***重載構(gòu)造器。**便于構(gòu)建可透支的信用卡賬戶(hù)實(shí)例。*@paramaccountNumber預(yù)設(shè)賬號(hào)*@paramoverage初始余額*@paramannualInterestRate預(yù)設(shè)年利率*@paramoverdraftLimit透支限度*/publicCreditCardAccount(StringaccountNumber,doubleoverage,doubleannualInterestRate,doubleoverdraftLimit){super(accountNumber,overage,annualInterestRate);this.overdraftLimit=overdraftLimit;}/***查詢(xún)透支限度的方法。*@return透支限度金額。*/publicdoublegetOverdraftLimit(){returnthis.overdraftLimit;}/***設(shè)置透支限度的方法。*@paramoverdraftLimit新的透支限度金額。*/publicvoidsetOverdraftLimit(doubleoverdraftLimit){//透支限度必須為零和正數(shù),否則為零。this.overdraftLimit=overdraftLimit>=0?overdraftLimit:0;}/***重寫(xiě)父類(lèi)構(gòu)造器。*@paramaccountNumber預(yù)設(shè)賬號(hào)*@paramoverage初始余額*@paramannualInterestRate預(yù)設(shè)年利率*/publicCreditCardAccount(StringaccountNumber,doubleoverage,doubleannualInterestRate){super(accountNumber,overage,annualInterestRate);}/***重寫(xiě)父類(lèi)取款方法。**將默認(rèn)不能透支的取款改為可以透支的取款。*@parammoney要取出的金額。*@return返回true時(shí)取款成功,否則取款失敗。*/@OverridepublicbooleandrawMoney(doublemoney){//如果賬戶(hù)余額+透支限度的總金額仍不足,則不能取款if(this.overage+this.overdraftLimit<money)returnfalse;//否則從賬戶(hù)余額中扣除相應(yīng)的金額this.overage-=money;returntrue;}}------------------------------------------/***測(cè)試賬戶(hù)使用。**@authorCodingMouse*@version1.0*/publicclassTest{/***主程序方法。*@paramargs入口參數(shù)。*/publicstaticvoidmain(String[]args){//創(chuàng)建一個(gè)不能透支的借記卡賬戶(hù)。System.out.println("------------借記卡賬戶(hù)------------");DebitCardAccountdebitCardAccount=newDebitCardAccount("CHK20100117001",100,0.02);//初始余額有100元,調(diào)用并打印取90元和取120元的結(jié)果。System.out.println("取90元的結(jié)果:"+debitCardAccount.drawMoney(90));//重新存入90元debitCardAccount.depositMoney(90);System.out.println("取120元的結(jié)果:"+debitCardAccount.drawMoney(120));//創(chuàng)建一個(gè)可以透支的信用卡賬戶(hù)。System.out.println("------------信用卡賬戶(hù)------------");CreditCardAccountcrebitCardAccount=newCreditCardAccount("CHK20100117002",100,0.03,50);//初始余額有100元,并且透支限度為50元,調(diào)用并打印取90元、取120元和取160元的結(jié)果。System.out.println("取90元的結(jié)果:"+crebitCardAccount.drawMoney(90));//重新存入90元crebitCardAccount.depositMoney(90);System.out.println("取120元的結(jié)果:"+crebitCardAccount.drawMoney(120));//重新存入120元crebitCardAccount.depositMoney(120);System.out.println("取160元的結(jié)果:"+crebitCardAccount.drawMoney(160));}}2,classVehicle{privateintwheels;privatefloatweight;protectedVehicle(intwheels,floatweight){this.wheels=wheels;this.weight=weight;}publicintgetWheels(){returnwheels;}publicfloatgetWeight(){returnweight;}publicvoidprint(){System.out.println("汽車(chē):");System.out.println("共有"+this.getWheels()+"個(gè)輪子");System.out.println("重量為"+this.getWeight()+"噸");}}classCarextendsVehicle{privateintpassenger_load;publicCar(intwheels,floatweight,intpassenger_load){super(wheels,weight);this.passenger_load=passenger_load;}publicintgetPassenger_load(){returnpassenger_load;}publicvoidprint(){System.out.println("小車(chē):");System.out.println("共有"+this.getWheels()+"個(gè)輪子");System.out.println("重量為"+this.getWeight()+"噸");System.out.println("載人數(shù)為"+this.getPassenger_load()+"人");}}classTruckextendsVehicle{privateintpassenger_load;privatefloatpayload;publicTruck(intwheels,floatweight,intpassenger_load,floatpayload){super(wheels,weight);this.passenger_load=passenger_load;this.payload=payload;}publicintgetPassenger_load(){returnpassenger_load;}publicfloatgetPayload(){returnpayload;}publicvoidprint(){System.out.println("卡車(chē):");System.out.println("共有"+this.getWheels()+"個(gè)輪子");System.out.println("重量為"+this.getWeight()+"噸");System.out.println("載人數(shù)為"+this.getPassenger_load()+"人");System.out.println("載重量為"+this.getPayload()+"噸");}}publicclassTest{publicstaticvoidmain(Stringargs[]){Vehiclecar=newCar(4,3,4);Vehicletruck=newTruck(6,6,2,10);System.out.println("*****************************");car.print();System.out.println("*****************************");truck.print();}}3,packagetrival;publicclassTrivalTest{ classTrival { inta; publicTrival(){ } publicTrival(inta){ this.a=a; } publiclongfindArea() { returnMath.round(Math.sqrt(3)/4*Math.pow(a,2)); } } classTriCylinderextendsTrival { intlength; publicTriCylinder() { } publicTriCylinder(inta,intlength) { super.a=a; this.length=length; } publiclongfindArea() { returnMath.round(Math.sqrt(3)/4*Math.pow(a,2)+a*length*3); } publiclongfindVolume() { returnMath.round(Math.sqrt(3)/4*Math.pow(a,2)*length); } } voidTest() { TriCylindert=newTriCylinder(4,3); System.out.println("findArea()="+t.findArea()); System.out.println("findVolume()="+t.findVolume()); } publicstaticvoidmain(Stringargv[]) { newTrivalTest().Test(); }}第五章【基礎(chǔ)】1,c2,c3,a4,c5,throws是用在方法名之后的,聲明該方法會(huì)拋出一個(gè)異常,拋給上級(jí)方法throw是用在catch塊內(nèi)的,表示遇到異常之后要拋出一個(gè)異常?!緫?yīng)用】1,2,StringdateString="2002/02/20";Stringtmp="";booleanflag=true;intindex1=dateString.indexOf("/");if(dateString.length()==10){if(index1==4){tmp=dateString.substring(5);intindex2=tmp.indexOf("/");if(index2==6)flag=true;}}elseflag=false;System.out.println(flag);3,StringgetId(intlength){ //26個(gè)字母和10個(gè)數(shù)字,共36個(gè)符號(hào), //隨機(jī)生成0到35的數(shù)字分別對(duì)應(yīng)到字母和數(shù)字 StringBuffersb=newStringBuffer(); for(inti=0;i<length;i++){ inttmp=(int)(Math.random()*36); if(tmp<10)sb.append((char)('0'+tmp)); elsesb.append((char)('A'+tmp-10)); } returnsb.toString();}第六章【基礎(chǔ)】1,A2,D3,A4,D5,泛型的本質(zhì)是參數(shù)化類(lèi)型,也就是說(shuō)所操作的數(shù)據(jù)類(lèi)型被指定為一個(gè)參數(shù)。這種參數(shù)類(lèi)型可以用在類(lèi)、接口和方法的創(chuàng)建中,分別稱(chēng)為泛型類(lèi)、泛型接口、泛型方法。泛型的好處是在編譯的時(shí)候檢查類(lèi)型安全,并且所有的強(qiáng)制轉(zhuǎn)換都是自動(dòng)和隱式的,提高代碼的重用率【應(yīng)用】1,Stack.javaimportjava.util.concurrent.locks.Condition;importjava.util.concurrent.locks.Lock;importjava.util.concurrent.locks.ReentrantLock;publicclassStack{privateint[]data;privateintindex;privateLocklock;privateConditionmoreSpace;privateConditionmoreEelment;publicStack(intsize){this.data=newint[size];this.index=0;this.lock=newReentrantLock();this.moreSpace=lock.newCondition();this.moreEelment=lock.newCondition();}publicvoidpush(intvalue){lock.lock();try{while(index==data.length){moreSpace.await();}data[index++]=value;moreEelment.signalAll();}catch(InterruptedExceptione){e.printStackTrace();}finally{lock.unlock();}}publicintpopup(){lock.lock();intvalue=0;try{while(index==0){moreEelment.await();}value=data[--index];moreSpace.signalAll();}catch(InterruptedExceptione){e.printStackTrace();}finally{lock.unlock();}returnvalue;}}寫(xiě)入線(xiàn)程WriteStack.javaimportjava.util.Random;publicclassWriteStackimplementsRunnable{privateStackstack;publicWriteStack(Stackstack){this.stack=stack;}@Overridepublicvoidrun(){Randomr=newRandom(System.currentTimeMillis());for(inti=0;i<10;i++){intvalue=r.nextInt(500);stack.push(value);System.out.printf("Write:push%dinstack\n",value);try{Thread.sleep(r.nextInt(500));}catch(InterruptedExceptione){e.printStackTrace();}}}}讀取線(xiàn)程ReadStack.javaimportjava.util.Random;publicclassReadStackimplementsRunnable{privateStackstack;publicReadStack(Stackstack){this.stack=stack;}@Overridepublicvoidrun(){Randomr=newRandom(System.currentTimeMillis());for(inti=0;i<10;i++){intvalue=stack.popup();System.out.printf("Read:popupanelement%d\n",value);try{Thread.sleep(r.nextInt(500));}catch(InterruptedExceptione){e.printStackTrace();}}}}主測(cè)試線(xiàn)程StackExample.javapublicclassStackExample{publicstaticvoidmain(String[]args)throwsInterruptedException{Stackstack=newStack(5);WriteStackwriteStack=newWriteStack(stack);ReadStackreadStack=newReadStack(stack);ThreadwriteThread=newThread(writeStack);ThreadreadThread=newThread(readStack);writeThread.start();readThread.start();}}2,importjava.util.HashMap;publicclassEx15{publicstaticvoidmain(String[]args){HashMapmap=newHashMap();map.put("張三",90);map.put("李四",83);System.out.println("修改前的成績(jī):");System.out.println(map);map.put("李四",100);System.out.println("修改后的成績(jī):");System.out.println(map);}}3,importjava.util.HashMap;importjava.util.Map;publicclassEx15{ publicstaticvoidmain(String[]args){ String[]eng={"Apple","Orange","Green"}; String[]chs={"蘋(píng)果","桔子","綠色"}; Map<String,String>map=newHashMap<String,String>(); for(inti=0;i<eng.length;i++) map.put(eng[i],chs[i]); Stringtest="Orange"; System.out.println(test+"翻譯:"+map.get(test));} }第七章【基礎(chǔ)】1.下列(A)不是所有GUI組件都能產(chǎn)生的事件。A.ActionEventB.MouseEventC.KeyEventD.FocusEvent2.下列()不是定義在MouseListener中(D)。A.mouseEnteredB.mousePressedC.mouseClickedD.mouseMoved3.a(chǎn)ddActionListener(this)方法中的this參數(shù)表示的意思是(A)。A.當(dāng)有事件發(fā)生時(shí),應(yīng)該使用this監(jiān)聽(tīng)器B.this對(duì)象類(lèi)會(huì)處理此事件C.this事件優(yōu)先于其他事件D.只是一種形式4.FlowLayout分布管理器可以使用三個(gè)常量之一來(lái)指定組件的對(duì)齊方式,這三個(gè)常量是FlowLayout.RIGHT,FlowLayout.CENTER和FlowLayout.LEFT。5.類(lèi)_Component_是所有UI組件和容器的根類(lèi)?!緫?yīng)用】編寫(xiě)一個(gè)將華氏溫度轉(zhuǎn)換為攝氏溫度的程序。其中一個(gè)文本框用于輸入華氏溫度,另一個(gè)文本框用于顯示轉(zhuǎn)換后的攝氏溫度,按鈕完成溫度的轉(zhuǎn)換。使用下面的公式進(jìn)行溫度轉(zhuǎn)換:攝氏溫度=5/9x(華氏溫度-32)。package.ccut.test;

importjavax.swing.*;

importjava.awt.*;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

/**

*CreatedbyThinkon2016/6/4.

*/

publicclassTemperatureFrameextendsJFrameimplementsActionListener{

//privateJButtontransformFButton=newJButton("攝氏度");

privateJButtontransformFButton=newJButton("攝氏轉(zhuǎn)華氏");

privateJButtontransformCButton=newJButton("華氏轉(zhuǎn)攝氏");

privateJTextFieldfTextField=newJTextField();

privateJTextFieldcTextField=newJTextField();

floatc,f;

publicTemperatureFrame(){

super("華氏溫度攝氏溫度轉(zhuǎn)換");

try{

init();

}catch(Exceptione){

e.printStackTrace();

}

}

privatevoidinit(){

fTextField.setBounds(10,30,100,25);

cTextField.setBounds(130,30,100,25);

transformCButton.setBounds(10,58,100,25);

transformFButton.setBounds(130,58,100,25);

transformCButton.addActionListener(this);

transformFButton.addActionListener(this);

Containerc=getContentPane();

c.add(fTextField);

c.add(cTextField);

c.add(transformCButton);

c.add(transformFButton);

c.setLayout(null);

this.setSize(250,150);

this.setResizable(false);

this.setLocationRelativeTo(null);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setVisible(true);

}

publicstaticvoidmain(String[]args){

newTemperatureFrame();

}

publicvoidactionPerformed(ActionEvente){

//華氏溫度F與攝氏度C

//F=C*9/5+32

//C=(F-32)*5/9

if(e.getSource()==transformFButton){

try{

c=Float.parseFloat(cTextField.getText());

f=c*9/5+32;

fTextField.setText(String.valueOf(f));

}catch(Exceptionex){

ex.printStackTrace();

}

}

if(e.getSource()==transformCButton){

try{

f=Float.parseFloat(fTextField.getText());

c=(f-32)*5/9;

cTextField.setText(String.valueOf(c));

}catch(Exceptionex){

ex.printStackTrace();

}

}

}

}編寫(xiě)一段程序,當(dāng)點(diǎn)擊“red”按鈕時(shí),矩形區(qū)域顏色為紅色,點(diǎn)擊“green”按鈕時(shí),矩形區(qū)域顏色為綠色,點(diǎn)擊“blue”按鈕時(shí),矩形區(qū)域顏色為藍(lán)色。package.ccut.test;

importjavax.swing.*;

importjava.awt.*;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

/**

*CreatedbyThinkon2016/6/4.

*/

publicclassTestextendsJFrameimplementsActionListener{

privateJPanelpanel0=null,panel2=null;

privateJButtonb1=null,b2=null,b3=null,b4=null;

publicTest(){

Containerc=this.getContentPane();

//邊框布局

c.setLayout(newBorderLayout());

//創(chuàng)建panel

panel0=newJPanel();

panel2=newJPanel();

//為2個(gè)panel設(shè)置底色

panel0.setBackground(Color.red);

panel2.setBackground(Color.BLUE);

//2個(gè)panel都是用流水布局

panel0.setLayout(newFlowLayout());

panel2.setLayout(newFlowLayout());

//創(chuàng)建按鈕

b1=newJButton("red");

b2=newJButton("green");

b3=newJButton("blue");

b4=newJButton("yellow");

/**

*添加按鈕事件

*/

b1.addActionListener(this);

b2.addActionListener(this);

b3.addActionListener(this);

b4.addActionListener(this);

/**

*將按鈕添加相應(yīng)panel上

*/

panel0.add(b1);

panel0.add(newJLabel());

panel0.add(b2);

panel2.add(b3);

panel2.add(b4);

/**

*將panel添加到容器

*/

c.add(panel0,BorderLayout.CENTER);

c.add(panel2,BorderLayout.EAST);

this.setSize(500,500);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setVisible(true);

}

publicstaticvoidmain(String[]args){

newTest();

}

@Override

publicvoidactionPerformed(ActionEvente){

//TODOAuto-generatedmethodstub

if(e.getSource()==b1){

panel2.setBackground(Color.red);

}elseif(e.getSource()==b2){

panel2.setBackground(Color.green);

}elseif(e.getSource()==b3){

panel0.setBackground(Color.blue);

}elseif(e.getSource()==b4){

panel0.setBackground(Color.yellow);

}

}

}編寫(xiě)一段程序,包含“確定”和“取消”兩個(gè)按鈕。當(dāng)點(diǎn)擊“確定”按鈕時(shí),在坐標(biāo)(20,80)處,用綠色顯示點(diǎn)擊“確定”按鈕的次數(shù);當(dāng)點(diǎn)擊“取消”按鈕時(shí),在坐標(biāo)(200,100)處,用紅色顯示點(diǎn)擊“取消”按鈕的次數(shù)(要求“確定”和“取消”的次數(shù)同時(shí)顯示)。importjava.applet.Applet;

importjava.awt.*;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

/**

*CreatedbyThinkon2016/6/4.

*/

publicclassApplet1extendsAppletimplementsActionListener{

intj=0,k=0;

Buttonbtn1,btn2;

publicvoidinit(){

btn1=newButton("YES");

btn2=newButton("NO");

add(btn1);add(btn2);

btn1.addActionListener(this);

btn2.addActionListener(this);

}

publicvoidpaint(Graphicsg){

g.setColor(Color.green);

g.drawString("你點(diǎn)擊了\"確定\"按鈕"+j+"次",20,80);

g.setColor(Color.red);

g.drawString("你點(diǎn)擊了\"取消\"按鈕"+k+"次",20,100);

}

publicvoidactionPerformed(ActionEvente){

if(e.getSource()==btn1)j++;

if(e.getSource()==btn2)k++;

repaint();

}

}第八章【基礎(chǔ)】1.下列(A)是輸入/輸出處理必須引入的。A.java.ioB.java.awtC.java.langD.java.util2.下列說(shuō)法中,錯(cuò)誤的是(B)。A.FileReader類(lèi)提供將字節(jié)轉(zhuǎn)換為Unicode字符的方法。B.InputStreamReader提供將字節(jié)轉(zhuǎn)化為Unicode字符的方法。C.FileReader對(duì)象可以作為BufferedReader類(lèi)的構(gòu)造方法的參數(shù)。D.InputStreamReader對(duì)象可以作為BufferedReader類(lèi)的構(gòu)造方法的參數(shù)。3.下列(B)返回的是文件的絕對(duì)路徑。A.getCanonicalPath()B.getAbsolutePath()C.getCanonicalFile()D.getAbsoluteFile()4.下列說(shuō)法錯(cuò)誤的是()。A.Java的標(biāo)準(zhǔn)輸入對(duì)象為System.in。B.打開(kāi)一個(gè)文件時(shí)不可能產(chǎn)生IOException異常。C.使用File對(duì)象可以判斷一個(gè)文件是否存在。D.使用File對(duì)象可以判斷一個(gè)目錄是否存在。 5.所有字節(jié)流的基類(lèi)是___OutputStream______和___InputStream______。 6.所有字符流的基類(lèi)是____FileReader_____和___FileWriter_____?!緫?yīng)用】1.統(tǒng)計(jì)一個(gè)文件中字母“A”和“a”出現(xiàn)的總次數(shù)。importjava.io.FileInputStream;

/**

*CreatedbyThinkon2016/6/4.

*/

publicclasstimetest{

publicstaticvoidmain(String[]args)throwsException{

FileInputStreamaa=newFileInputStream("aaa.txt");//寫(xiě)文件路徑+文件名

DataInputStreamhc=newDataInputStream(aa);

intcount=0;

bytez;

try{

while(true)

{

z=hc.readByte();

if(z==65||z==97)

count++;

}

}catch(Exceptionee)

{

System.out.print(count);

}

}

}2.利用RandomAccessFile類(lèi)將一個(gè)文件的全部?jī)?nèi)容追加到另一個(gè)文件的末尾。publicclassaddtest{

publicstaticvoidmain(String[]args)throwsException{

Stringwj[]=newString[30];

RandomAccessFilesj1=newRandomAccessFile("addtest.java","r");

inti=0;

Strings="";

while((s=sj1.readLine())!=null)

{

wj[i]=s;;

i++;

}

sj1.close();

RandomAccessFilesj=newRandomAccessFile("aaa.txt","rw");

sj.length();

sj.seek(sj.length());

for(inta=0;a<wj.length;a++)

{

//sj.writeBytes("\r\n");

sj.writeBytes("\r\n"+wj[a]);

}

sj.close();

}

}第九章【基礎(chǔ)】JDBC提供了哪幾種連接數(shù)據(jù)庫(kù)的方法?(1)JDBC-ODBC橋驅(qū)動(dòng)程序#JDBC-ODBC橋接器負(fù)責(zé)將JDBC轉(zhuǎn)換為ODBC,用JdbcOdbc.Class和一個(gè)用于訪(fǎng)問(wèn)ODBC驅(qū)動(dòng)程序的本地庫(kù)實(shí)現(xiàn)的。這類(lèi)驅(qū)動(dòng)程序必須在服務(wù)器端安裝好ODBC驅(qū)動(dòng)程序,然后通過(guò)JDBC-ODBC的調(diào)用方法,進(jìn)而通過(guò)ODBC來(lái)存取數(shù)據(jù)庫(kù)。

(2)Java到本地API這種類(lèi)型的驅(qū)動(dòng)程序是部分使用Java語(yǔ)言編寫(xiě)和部分使用本機(jī)代碼編寫(xiě)的驅(qū)動(dòng)程序,這類(lèi)驅(qū)動(dòng)程序也必須在服務(wù)器端安裝好特定的驅(qū)動(dòng)程序,如ODBC驅(qū)動(dòng)程序,然后通過(guò)橋接器的轉(zhuǎn)換,把JavaAPI調(diào)用轉(zhuǎn)換成特定驅(qū)動(dòng)程序的調(diào)用方法,進(jìn)而操作數(shù)據(jù)庫(kù)。

(3)網(wǎng)絡(luò)協(xié)議搭配的Java驅(qū)動(dòng)程序這種驅(qū)動(dòng)程序?qū)DBC轉(zhuǎn)換為與DBMS無(wú)關(guān)的網(wǎng)絡(luò)協(xié)議,這種協(xié)議又被某個(gè)服務(wù)器轉(zhuǎn)換為一種DBMS協(xié)議。這種網(wǎng)絡(luò)服務(wù)器中間件能夠?qū)⑺募僇ava客戶(hù)機(jī)連接到多種不同的數(shù)據(jù)庫(kù)上。所用的具體協(xié)議取決于提供者。

(4)本地協(xié)議純Java驅(qū)動(dòng)程序這種類(lèi)型的驅(qū)動(dòng)程序?qū)DBC訪(fǎng)問(wèn)請(qǐng)求直接轉(zhuǎn)換為特定數(shù)據(jù)庫(kù)系統(tǒng)協(xié)議。不但無(wú)須在使用者計(jì)算機(jī)上安裝任何額外的驅(qū)動(dòng)程序,也不需要在服務(wù)器端安裝任何中間程序,所有對(duì)數(shù)據(jù)庫(kù)的操作,都直接由驅(qū)動(dòng)程序來(lái)完成SQL語(yǔ)言包括哪幾種基本語(yǔ)句來(lái)完成數(shù)據(jù)庫(kù)的基本操作? Sql用來(lái)操作數(shù)據(jù)命令包括:select、insert、update、deleteStatement接口的作用是什么? Statement用于在已經(jīng)建立的連接的基礎(chǔ)上向數(shù)據(jù)庫(kù)發(fā)送SQL語(yǔ)句的對(duì)象。它只是一個(gè)接口的定義,其中包括了執(zhí)行SQL語(yǔ)句和獲取返回結(jié)果的方法試述DriverManager對(duì)象建立數(shù)據(jù)庫(kù)連接所用的幾種不同的方法。(1)staticConnectiongetConnection(Stringurl):使用指定的數(shù)據(jù)庫(kù)URL創(chuàng)建一個(gè)連接。

(2)staticConnectiongetConnection(Stringurl,Propertiesinfo):使用指定的數(shù)據(jù)庫(kù)URL和相關(guān)信息(用戶(hù)名、用戶(hù)密碼等屬性列表)來(lái)創(chuàng)建一個(gè)連接,使DriverManager從注冊(cè)的JDBC驅(qū)動(dòng)程序中選擇一個(gè)適當(dāng)?shù)尿?qū)動(dòng)程序。

(1)staticConnectiongetConnection(Stringurl,Stringuser,Stringpassword):使用指定的數(shù)據(jù)庫(kù)URL、用戶(hù)名和用戶(hù)密碼創(chuàng)建一個(gè)連接,使DriverManager從注冊(cè)的JDBC驅(qū)動(dòng)程序中選擇一個(gè)適當(dāng)?shù)尿?qū)動(dòng)程序。

(2)staticDrivergetDriver(Stringurl):定位在給定URL下的驅(qū)動(dòng)程序,讓DriverManager從注冊(cè)的JDBC驅(qū)動(dòng)程序中選擇一個(gè)適當(dāng)?shù)尿?qū)動(dòng)程序。簡(jiǎn)述JDBC的工作原理。工作原理流程:裝載驅(qū)動(dòng)程序---->獲得數(shù)據(jù)庫(kù)連接---->使用Statement或PreparedStatement執(zhí)行SQL語(yǔ)句---->返回執(zhí)行的結(jié)果---->關(guān)閉相關(guān)的連接。【應(yīng)用】模擬完成用戶(hù)登錄的基本功能,要求能實(shí)現(xiàn)從鍵盤(pán)輸入用戶(hù)名和密碼后,驗(yàn)證其正確性,單擊“登錄”按鈕,提示“登錄成功”;若用戶(hù)名或密碼錯(cuò)誤,提示“登錄失敗”;若用戶(hù)名或密碼為空,提示“用戶(hù)名或密碼不能為空”。代碼2.模擬完成用戶(hù)注冊(cè)的功能,當(dāng)用戶(hù)輸入用戶(hù)名和密碼后,單擊“注冊(cè)”按鈕,提示“恭喜您,注冊(cè)成功”;當(dāng)輸入的用戶(hù)名已存在時(shí),提示“該用戶(hù)已存在,請(qǐng)重新注冊(cè)”。(第一題,第二題代碼)importjavax.swing.*;

importjava.awt.*;

importjava.awt.event.*;

importjava.io.*;

publicclassLoginextendsJPanel

{

//聲明各個(gè)控件

privateJLabeluser_name_label=null;

privateJLabelpassword_label=null;

privateJTextFielduser_name_text=null;

privateJTextFieldpassword_text=null;

privateJButtonlogin=null;

privateJButtonregist=null;

//聲明文件用以保存注冊(cè)信息

privatefinalStringfile_name="注冊(cè).txt";

publicLogin()

{

//獲得各個(gè)控件并且為之設(shè)置顯示文本

user_name_label=newJLabel();

user_name_label.setText("姓名:");

password_label=newJLabel();

password_label.setText("密碼:");

user_name_text=newJTextField();

password_text=newJTextField();

login=newJButton();

login.setText("登錄");

regist=newJButton();

regist.setText("注冊(cè)");

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論