Java復(fù)習(xí)題(已完成)_第1頁
Java復(fù)習(xí)題(已完成)_第2頁
Java復(fù)習(xí)題(已完成)_第3頁
Java復(fù)習(xí)題(已完成)_第4頁
Java復(fù)習(xí)題(已完成)_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、一閱讀分析下面程序,將程序中的代碼補(bǔ)充完整,并回答問題。1/ FirstApplet.javaimport java.applet.*; import java.awt.*;public class FirstApplet extends Applet public void paint(Graphics g) 【代碼:g.setColor(Color.blue);】 /將當(dāng)前字體顏色設(shè)置為藍(lán)色 g.drawString("這是一個(gè)Java Applet 程序",10,30); /在Java Applet中繪制一行文字:“這是一個(gè)Java Applet 程序” 【代碼:g.

2、setColor(Color.red);】 /將當(dāng)前字體顏色設(shè)置為紅色 g.setFont(new Font("宋體",Font.BOLD,36); 【代碼:g.drawString(“我改變了字體”,10,100);】/在Java Applet中坐標(biāo)(10,100)處繪制一行文字:“我改變了字體” (1) 將源文件保持為FirstApplet.java,編譯源文件。編譯命令:【代碼javac FirstApplet】(2) 編寫一個(gè)html文件FirstApplet.html,將該文件和源程序保持在同一目錄下。文件內(nèi)容如下: <html> <applet

3、 code="【代碼】" height=300 width=400> </applet> </html>(3) 若用appletviewer打開FirstApplet.html文件。運(yùn)行命令為:【代碼appletviewer FirstApplet】2. 要求:從鍵盤輸入任意兩個(gè)實(shí)數(shù),比較兩個(gè)數(shù)字的大小,將較大的數(shù)輸出。數(shù)據(jù)輸入和輸出用Java的標(biāo)準(zhǔn)輸入流和輸出流來實(shí)現(xiàn)。閱讀分析下面程序,將程序中的代碼補(bǔ)充完整,實(shí)現(xiàn)數(shù)據(jù)比較功能。import java.util.Scanner;public class CompareTwoNumbers do

4、uble number1,number2;Scanner scanner;public CompareTwoNumbers()System.out.println("請(qǐng)輸入兩個(gè)數(shù)字:");scanner=new Scanner( 代碼1:system.in );/實(shí)例化一個(gè)Scanner對(duì)象;number1= 代碼2 :scanner.nextDouble() ;/從鍵盤輸入一個(gè)實(shí)數(shù)賦值給number1;number2= 代碼3 :scanner.nextDouble(); ;/ 從鍵盤輸入一個(gè)實(shí)數(shù)賦值給number2;System.out.println("較大

5、的數(shù)值是:"+ 代碼4 :Math.max(number1,number2) );/將number1和number2中的較大值輸出;public static void main(String args)CompareTwoNumbers ct=new CompareTwoNumbers ();System.exit(0); 3猜數(shù)字游戲閱讀分析下面程序,將程序中的代碼補(bǔ)充完整,編輯運(yùn)行查看結(jié)果。/GuessNumber.javaimport javax.swing.JOptionPane;public class GuessNumber public static void mai

6、n (String args ) System.out.println("給你一個(gè)1至100之間的整數(shù),請(qǐng)猜測(cè)這個(gè)數(shù)"); int realNumber=(int)(Math.random()*100)+1; int yourGuess=0; String str=JOptionPane.showInputDialog("輸入您的猜測(cè):"); yourGuess=Integer.parseInt(str); while(【代碼1 : yourGuess != realNumber】) /循環(huán)條件 if(【代碼2 : yourGuess > real

7、Number】) /條件代碼 str=JOptionPane.showInputDialog("猜大了,再輸入你的猜測(cè):"); yourGuess=Integer.parseInt(str); else if(【代碼3 : yourGuess < realNumber】) /條件代碼 str=JOptionPane.showInputDialog("猜小了,再輸入你的猜測(cè):"); yourGuess=Integer.parseInt(str); System.out.println("猜對(duì)了!"); 4String類的常用方法。

8、閱讀分析下面程序,把程序中的代碼補(bǔ)充完整,并查看結(jié)果。/StringExample.javaclass StringExample public static void main(String args) String s1=new String("you are a student"), s2=new String("how are you"); if(【代碼1 :s1.equals(s2)】) / 使用equals方法判斷s1與s2是否相同 System.out.println("s1與s2相同"); else System.ou

9、t.println("s1與s2不相同"); String s3=new String("22030219851022024"); if(【代碼2 :s3.startWith(“220302”)】) /判斷s3的前綴是否是“220302”。 System.out.println("吉林省的身份證"); String s4=new String("你"), s5=new String("我"); if(【代碼3 :pareTo(s5) > 0】)/按著字典序s4大于s5的表達(dá)式。 Syste

10、m.out.println("按字典序s4大于s5"); else System.out.println("按字典序s4小于s5"); int position=0; String path="c:javajspA.java" String fileName=【代碼4 :path.concat(“A.java”);】/獲取path中“A.java”子字符串。 System.out.println("c:javajspA.java中含有的文件名:"+fileName); String s6=new String(&q

11、uot;100"), s7=new String("123.678"); int n1=【代碼5 :Integer.parseInt(s6);】 /將s6轉(zhuǎn)化成int型數(shù)據(jù)。 double n2=【代碼6 :Double.parseDouble(s7);】 /將s7轉(zhuǎn)化成double型數(shù)據(jù)。 double m=n1+n2; System.out.println(m); String s8=【代碼7 :String.valueOf(m);】 /String調(diào)用valuOf(int n)方法將m轉(zhuǎn)化為字符串對(duì)象 position=s8.indexOf(".&

12、quot;); String temp=s8.substring(position+1); System.out.println("數(shù)字"+m+"有"+temp.length()+"位小數(shù)") ; String s9=new String("ABCDEF"); char a=【代碼8 :s9.toCharArray();】 /將s9存放到數(shù)組a中。 for(int i=a.length-1;i>=0;i-) System.out.print(" "+ai); 5掌握嵌套類和內(nèi)部類的概念和用

13、法編寫一個(gè)程序要求定義一個(gè)外部類Outer,然后在Outer類中定義一個(gè)內(nèi)部類Inner和局部類Local,內(nèi)部類Inner和局部類Local的任務(wù)都是顯示出外部類中的數(shù)組元素,然后求出這些數(shù)組元素的平均值。請(qǐng)按模版要求,將代碼補(bǔ)充完整。class Outer private int data;Outer(int x) data = x;void checkInner() Inner innerObj = new Inner();【補(bǔ)充代碼 : innerObj.show();】 / 調(diào)用Inner對(duì)象的show()方法System.out.println("內(nèi)部類計(jì)算的平均值: &

14、quot; + innerObj.average();void checkLocal() class Local void show() System.out.print("從局部類顯示數(shù)組元素:");for (int i = 0; i < data.length; i+) System.out.print(datai + " ");System.out.println();int average() int sum = 0;for (int i = 1; i < data.length; i+) sum += datai;【補(bǔ)充代碼 ret

15、urn (sum/data.length);】 / 返回data數(shù)組的平均值Local localObj = new Local();localObj.show();System.out.println("局部類計(jì)算的平均值: " + localObj.average();class Inner void show() System.out.print("從內(nèi)部類顯示數(shù)組元素:");for (int i = 0; i < data.length; i+) 【補(bǔ)充代碼 system.out.print(“ “ + datai);】 / 打印data數(shù)

16、組的每個(gè)元素System.out.println();int average() int sum = 0;for (int i = 1; i < data.length; i+) sum += datai;return sum / data.length;public class InnerClassTest public static void main(String args) int a = 6, 8, 9, 22, 34, 7, 2, 1, 15 ;Outer outerObj = new Outer(a);outerObj.checkInner();【補(bǔ)充代碼 outerObj

17、.checkLocal();】 / 調(diào)用outerObj對(duì)象的checkLocal方法6通過一個(gè)簡單的例子理解多態(tài)的概念/* * 人民警察 */public interface IPolice /* * 抓小偷 */ public void catchThief();/* * 一個(gè)警察,執(zhí)行抓小偷任務(wù). */public class PoliceReal implements IPolice public void catchThief() System.out.println("抓住小偷了"); /* * 另一個(gè)警察,也執(zhí)行抓小偷任務(wù). */public class Po

18、liceHyp implements IPolice public void catchThief() System.out.println("大冷天的抓什么小偷啊,不如偷個(gè)菜."); /* * 市民 */public class Citizen private String mName; public Citizen(String name) mName = name; /* * 市民報(bào)案 */ public void report(IPolice police) System.out.println(String.format("市民%s丟失手機(jī),向警察報(bào)案抓

19、小偷.", mName); police.catchThief(); 案情:市民雖然向警察報(bào)了案, 但你不知道能不能把小偷抓住, 甚至你都不知道他們有沒有去抓小偷, 還有可能你在電影里看到的劇情真的發(fā)生了. 事情經(jīng)過可能是這樣:public class Main public static void main(String args) Citizen citizen = new Citizen("張三"); IPolice police = getPolice(); citizen.report(police); private static IPolice ge

20、tPolice() return new PoliceReal(); 事情結(jié)果一:市民張三丟失手機(jī),向警察報(bào)案抓小偷.抓住小偷了事情經(jīng)過也可能是這樣:public class Main public static void main(String args) Citizen citizen = new Citizen("張三"); IPolice police = getPolice(); citizen.report(police); private static IPolice getPolice() return new PoliceHyp(); 事情結(jié)果二:市民張三

21、丟失手機(jī),向警察報(bào)案抓小偷.大冷天的抓什么小偷啊,不如偷個(gè)菜.事情經(jīng)過還可能是這樣:public class Main public static void main(String args) Citizen citizen = new Citizen("張三"); IPolice police = getPolice(); citizen.report(police); private static IPolice getPolice() return new PoliceReal() Override public void catchThief() System.ou

22、t.println("抓小偷?笑話,抓了小偷我哪兒收保護(hù)費(fèi)去啊."); ; 事情結(jié)果三:市民張三丟失手機(jī),向警察報(bào)案抓小偷.抓小偷?笑話,抓了小偷我哪兒收保護(hù)費(fèi)去啊.7閱讀并分析以下程序,將程序中的代碼補(bǔ)充完整。public class CalendarFrame extends Frame implements ActionListener Label labelDay=new Label42; Button titleName=new Button7; String name="日","一","二","

23、;三", "四","五","六" Button nextMonth,previousMonth; int year=2006,month=10; CalendarBean calendar; Label showMessage=new Label("",Label.CENTER); public CalendarFrame() Panel pCenter=new Panel(); 【代碼1 :pCenter.setLayout(new GridLayout(7,7);】 /將pCenter的布局設(shè)置為7行

24、7列的GridLayout 布局。 for(int i=0;i<7;i+) titleNamei=new Button(namei); 【代碼2 : pCenter.add(titleNamei);】/pCenter添加組件titleNamei。 for(int i=0;i<42;i+) labelDayi=new Label("",Label.CENTER); 【代碼3 : pCenter.add(labelDayi);】/pCenter添加組件labelDayi。 calendar=new CalendarBean(); calendar.setYear(y

25、ear); calendar.setMonth(month); String day=calendar.getCalendar(); for(int i=0;i<42;i+) labelDayi.setText(dayi); nextMonth=new Button("下月"); previousMonth=new Button("上月"); nextMonth.addActionListener(this); previousMonth.addActionListener(this); Panel pNorth=new Panel(), pSou

26、th=new Panel(); pNorth.add(previousMonth); pNorth.add(nextMonth); pSouth.add(showMessage); showMessage.setText("日歷:"+calendar.getYear()+"年"+ calendar.getMonth()+"月" ); ScrollPane scrollPane=new ScrollPane(); scrollPane.add(pCenter); 【代碼4 :add(“Center”,scollPane);】/ 窗口添加

27、scrollPane在中心區(qū)域 【代碼5 :add(“North”,pNorth);】/ 窗口添加pNorth 在北面區(qū)域 【代碼6 :add(“South”,pSouth);】/ 窗口添加pSouth 在南區(qū)域。 public void actionPerformed(ActionEvent e) if(e.getSource()=nextMonth) month=month+1; if(month>12) month=1; calendar.setMonth(month); String day=calendar.getCalendar(); for(int i=0;i<42;

28、i+) labelDayi.setText(dayi); else if(e.getSource()=previousMonth) month=month-1; if(month<1) month=12; calendar.setMonth(month); String day=calendar.getCalendar(); for(int i=0;i<42;i+) labelDayi.setText(dayi); showMessage.setText("日歷:"+calendar.getYear()+"年"+calendar.getMon

29、th()+"月" ); 8使用滾動(dòng)條改變背景顏色程序功能:移動(dòng)滾動(dòng)條可以改變背景顏色。閱讀并分析以下程序,將程序中的代碼補(bǔ)充完整。public class KY7_2 extends Applet implements AdjustmentListener Scrollbar r1, r2, r3;int red, green, blue;TextField t;Label a;public void init() setLayout(null);r1 = new Scrollbar(Scrollbar.HORIZONTAL, 0, 1, 0, 255);r2 = new

30、Scrollbar(Scrollbar.HORIZONTAL, 0, 1, 0, 255);r3 = new Scrollbar(Scrollbar.HORIZONTAL, 0, 1, 0, 255);t = new TextField("0", 5);t.setEditable(false);a = new Label("移動(dòng)滾動(dòng)條可改變背景顏色", Label.CENTER);add(a);a.setBounds(120, 10, 150, 15); 代碼1 :add(r1) ; /添加滾動(dòng)條r1r1.setBounds(20, 30, 100, 2

31、0); 代碼2 :add(r2) ; /添加滾動(dòng)條r2r2.setBounds(140, 30, 100, 20); 代碼3 :add(r3) ; /添加滾動(dòng)條r3r3.setBounds(260, 30, 100, 20);add(t);t.setBounds(20, 120, 220, 18);r1.addAdjustmentListener(this); 代碼4 :r2.addAdjustmentListener(this) ; 代碼5 :r3.addAdjustmentListener(this) ;public void adjustmentValueChanged(Adjustme

32、ntEvent e) red = r1.getValue(); 代碼6 :green = r2.getValue() ; 代碼7 :blue = r3.getValue() ; t.setText("red 的值" + String.valueOf(r1.getValue() + ",green 的值"+ String.valueOf(r2.getValue() + ",blue 的值"+ String.valueOf(r3.getValue();Color c = new Color(red, green, blue); 代碼8 :

33、setBackground(c) ; /設(shè)置背景色9創(chuàng)建電閃雷鳴的動(dòng)畫程序功能:本程序可以通過按鈕控制聲音和動(dòng)畫的開始和停止操作。動(dòng)畫顯示了電閃雷鳴的場(chǎng)面。注意:圖像文件要分別表現(xiàn)不同時(shí)間段的電閃場(chǎng)面,這樣才會(huì)有動(dòng)畫效果。閱讀并分析以下程序,將程序中的代碼補(bǔ)充完整。import java.awt.*;import java.applet.*;import java.awt.event.*;public class KY7_3 extends Applet implements Runnable, ActionListener Image iImages; / 圖像數(shù)組Thread aThrea

34、d;int iFrame; / 圖像數(shù)組下標(biāo)AudioClip au; / 定義一個(gè)聲音對(duì)象Button b1, b2;public void init() int i, j;iFrame = 0;aThread = null;iImages = new Image10;for (i = 0; i < 10; i+) iImagesi = getImage(getCodeBase(), "images/" + "tu" + (i + 1)+ ".JPG");au = getAudioClip(getDocumentBase(),

35、 "Wav/receivemedia.au"); 代碼1 :au.play(); / 播放一次聲音文件Panel p1 = new Panel();b1 = new Button("開始");b2 = new Button("停止");p1.add(b1);p1.add(b2);b1.addActionListener(this);b2.addActionListener(this);setLayout(new BorderLayout();add(p1, "South");public void start()

36、if (aThread = null) aThread = new Thread(this); 代碼2 :aThread.star(); / 線程啟動(dòng)b1.setEnabled(false);public void stop() if (aThread != null) 代碼3 :aTerrupt(); / 線程中斷aThread = null; 代碼4 :au.stop(); / 停止播放聲音文件public void run() while (true) iFrame+;iFrame %= (iImages.length); / 下一幅圖像的下標(biāo)repaint();try

37、 Thread.sleep(100); catch (InterruptedException e) / 中斷時(shí)拋出break; / 退出循環(huán)public void update(Graphics g) g.drawImage(iImagesiFrame, 0, 0, this);public void actionPerformed(ActionEvent e) if (e.getSource() = b1) && (aThread = null) / 單擊 Start 按鈕時(shí)觸發(fā)aThread = new Thread(this); 代碼5 :aThread.star();

38、 / 線程啟動(dòng)b1.setEnabled(false);b2.setEnabled(true); 代碼6 :au.loop(); / 循環(huán)播放聲音文件if ( 代碼7 :au.stop(); ) / 單擊 Stop 按鈕時(shí)觸發(fā)aTerrupt(); / 線程中斷aThread = null;b1.setEnabled(true);b2.setEnabled(false);au.stop(); / 停止播放聲音文件10要求設(shè)計(jì)一個(gè)能通過Runnable接口實(shí)現(xiàn)多線程動(dòng)態(tài)地顯示時(shí)間的Applet程序。閱讀并分析以下程序,將程序中的代碼補(bǔ)充完整,編譯并運(yùn)行程序,查看結(jié)果。impor

39、t javax.swing.*; / Jappletimport java.util.*; / Calendarimport java.awt.*; / Graphicspublic class AppletThreaded extends JApplet 代碼1 :implements Runnable Thread appletThread; int hours, mins, secs; Boolean stopFlag;/ applet的start( )方法 public void start() appletThread = new Thread(this); 代碼2 :appletT

40、hread.star(); ; /啟動(dòng)線程 stopFlag=false; / 線程的run( )方法 public void run() while (true) try 代碼3 :Thread.sleep(1000) ; 讓線程休眠時(shí)間為1000 catch(InterruptedException exception) exception.printStackTrace(); /產(chǎn)生一個(gè)代表當(dāng)前時(shí)間的Calendar子類的實(shí)例 Calendar time = Calendar.getInstance(); hours = time.get(Calendar.HOUR); mins = t

41、ime.get(Calendar.MINUTE); secs = time.get(Calendar.SECOND); System.out.println("秒 : " + secs); 代碼4 :repaint(); ; /刷新顯示時(shí)間 if(stopFlag) break; public void stop() stopFlag=true; public void paint(Graphics g) super.paint(g); g.drawString(String.valueOf(hours) + ":" + String.valueOf(m

42、ins) + ":" + String.valueOf(secs), 50 , 50); 11編寫一個(gè)應(yīng)用程序,除了主線程外,還有兩個(gè)線程:first和second。first負(fù)責(zé)模擬一個(gè)紅色的按鈕從坐標(biāo)(10,60)運(yùn)動(dòng)到(100,60);second負(fù)責(zé)模擬一個(gè)綠色的按鈕從坐標(biāo)(100,60)運(yùn)動(dòng)到(200,60)。閱讀并分析以下程序,將程序中的代碼補(bǔ)充完整。/MoveButton.javaimport java.awt.*;import java.awt.event.*;public class MoveButton extends Frame implements

43、Runnable,ActionListener 【代碼1:Thread first,second;】 /用Thread類聲明first,second兩個(gè)線程對(duì)象 Button redButton,greenButton,startButton; int distance=10; MoveButton() 【代碼2 :first = new Thread ();】 /創(chuàng)建first線程,當(dāng)前窗口做為該線程的目標(biāo)對(duì)象 【代碼3 : second = new Thread ();】 /創(chuàng)建second線程,當(dāng)前窗口做為該線程的目標(biāo)對(duì)象 redButton=new Button(); greenBut

44、ton=new Button(); redButton.setBackground(Color.red); greenButton.setBackground(Color.green); startButton=new Button("start"); startButton.addActionListener(this); setLayout(null); add(redButton); redButton.setBounds(10,60,15,15); add(greenButton); greenButton.setBounds(100,60,15,15); add(

45、startButton); startButton.setBounds(10,100,30,30); setBounds(0,0,300,200); setVisible(true); validate(); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); public void actionPerformed(ActionEvent e) try first.start(); second.start(); catch(Exception exp

46、) public void run() while(true) if(【代碼4 :Thead.currentThread() = first】) /判斷當(dāng)前占有CPU資源的線程是否是first moveComponent(redButton); try Thread.sleep(20); catch(Exception exp) if(【代碼5 :Thread.currentThread() = second】) /判斷當(dāng)前占有CPU資源的線程是否是second moveComponent(greenButton); try Thread.sleep(10); catch(Exception exp) public synchronized void moveComponent(Component b) if(Thread.currentThread()=first) while(distance>100&&distance<=200) try wait(); catch(Exception exp) distance=distance+1; b.setLocation(distance,60); if

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論