Java复习题(已完成)_第1页
Java复习题(已完成)_第2页
Java复习题(已完成)_第3页
Java复习题(已完成)_第4页
Java复习题(已完成)_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一.阅读分析下面程序,将程序中的代码补充完整,并回答问题。1. / FirstApplet.javaimport java.applet.*;import java.awt.*;public class FirstApplet extends Appletpublic void paint(Graphics g)【代码:g.setC010r(Color.blue);】/ 将当前字体颜色设置为蓝色g.drawString("这是一个 Java Applet 程序",10,30);/在Java Applet中绘制一行文字:"这是一个 Java Applet 程序”【代

2、码:g.setC010r(Color.red);】/将当前字体颜色设置为红色g.setFont(new Font("宋体",Font.BOLD,36);【代码:g.drawString( " 我改变了字体”,10,100);】/在Java Applet 中坐标(10,100)处绘制一行文字:“我改变了字体”(1)将源文件保持为FirstApplet.java ,编译源文件。编译命令:【代码javacFirstApplet 】(2)编写一个html文件FirstApplet.html ,将该文件和源程序保持在同一目录下。文件内容如 下:<html><

3、;applet code="【代码】"height=300 width=400></applet></html>(3)若用 appletviewer打开 FirstApplet.html 文件。运行命令为: 【代码appletviewer FirstApplet】2 .要求:从键盘输入任意两个实数,比较两个数字的大小,将较大的数输出。数据输入和 输出用Java的标准输入流和输出流来实现。阅读分析下面程序,将程序中的代码补充完整, 实现数据比较功能。import java.util.Scanner;public class CompareTwoN

4、umbers double number1 , number2 ;Scanner scanner ;public CompareTwoNumbers()System. out .println( "请输入两个数字:");scanner =new Scanner( 代码 1: system.in );/ 实例化个 Scanner 对象;number1 =代码 2 : scanner.nextDouble();/ 从键盘输入一个实数赋值给number1;number2 =代码 3 : scanner.nextDouble();/从键盘输入一个实数赋值给 number2;Syst

5、em. out .println( "较大的数值是:"+代码4j Math.max(number1,number2);/将numberl和number2 中的较大值输出;public static void main(String args口)CompareTwoNumbers ct= new CompareTwoNumbers ();System. exit (0);3 .猜数字游戏阅读分析下面程序,将程序中的代码补充完整,编辑运行查看结果。/GuessNumber.javaimport javax.swing.JOptionPane;public class Guess

6、Numberpublic static void main (String args)System.out.println("给你一个1至100之间的整数,请猜测这个数");int realNumber=(int)(Math.random()*100)+1;int yourGuess=0;String str=JOptionPane.showInputDialog(" yourGuess=Integer.parseInt(str);while(【代码 1 : yourGuess != realNumberif(【代码 2 : yourGuess > real

7、Numberstr=JOptionPane.showInputDialog("yourGuess=Integer.parseInt(str);else if(【代码 3 : yourGuess < realNumberstr=JOptionPane.showInputDialog("yourGuess=Integer.parseInt(str);System.out.println("猜对了 !");输入您的猜测:");】)/ 循环条件】)/ 条件代码猜大了,再输入你的猜测】)/ 条件代码猜小了,再输入你的猜测:");:&quo

8、t;);4 . String类的常用方法。阅读分析下面程序,把程序中的代码补充完整,并查看结果。/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("

9、;s1与s2 相同");elseSystem.out.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 : par

10、eTo(s5) > 0】 )/ 按着字典序s4 大于 s5 的表达式。System.out.println("按字典序 s4 大于 s5");elseSystem.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:ja

11、vajspA.java 中含有的文件 名 :"+fileName); String s6=new String("100"),s7=new String("123.678");int n1=【代码 5 : Integer.parseInt(s6);】/ 将s6 转化成 int 型数据。double n2=【代码 6 : Double.parseDouble(s7);】/ 将s7 转化成 double型数据。double m=n1+n2;System.out.println(m);String s8= 【代码 7 : String.valueOf

12、(m);】 /String 调用 valuOf(intn)方法将m转化为字符串对象position=s8.indexOf(".");String temp=s8.substring(position+1);System.out.println("数字"+m+"有"+temp.length()+"位小数");String s9=new String("ABCDEF");char a=8 : s9.toCharArray();/ 将s9存放到数组a中。for(int i=a.length-1;i&g

13、t;=0;i-)System.out.print(" "+ai);5掌握嵌套类和内部类的概念和用法编写一个程序要求定义一个外部类Outer , 然后在 Outer 类中定义一个内部类 Inner和局部类 Local , 内部类 Inner 和局部类 Local 的任务都是显示出外部类中的数组 元素,然后求出这些数组元素的平均值。请按模版要求,将代码补充完整。class Outer private int data ;Outer( int x) data = x;void checkInner() Inner innerObj = new Inner();【补充代码: inn

14、erObj.show(); 】 / 调用 Inner 对象的 show()方法System. out .println( " 内部类计算的平均值: " +innerObj.average();void checkLocal() class Local void show() System. out .print(for ( int i = 0; i <" 从局部类显示数组元素 :" );System. out .print( System. out .println();int average() data . length data i +; i

15、+) " " );intforsum = 0;( int i = 1; i < sum += data i;data . length; i+) 】 / 返回【补充代码return (sum/data.length);data 数组的平均值Local localObj = new Local();localObj.show();System. out .println( " 局部类计算的平均值: " +localObj.average();class Inner void show() System. out .print( " 从内部类

16、显示数组元素 :" );for ( int i = 0; i < data . length ; i+) 【补充代码system.out.print( “ “ + datai); 】/ 打印 data 数组的每个元素System. out .println();int average() int sum = 0;for ( int i = 1; i < data . length ; i+) sum += data i; return sum / data . length ; public class InnerClassTest public static void

17、main(String args) int a = 6, 8, 9, 22, 34, 7, 2, 1, 15 ; Outer outerObj = new Outer(a); outerObj.checkInner();】 / 调用 outerObj 对【补充代码outerObj.checkLocal();象的 checkLocal 方法6通过一个简单的例子理解多态的概念/* 人民警察*/public interface IPolice /*抓小偷*/public void catchThief(); /* 一个警察 , 执行抓小偷任务.*/publicclass PoliceRealimpl

18、ementsIPolice public void catchThief() System.out .println( " 抓住小偷了 " );/* 另一个警察*/public class, 也执行抓小偷任务.PoliceHyp implements IPolice public void catchThief() System.out .println( " 大冷天的抓什么小偷啊, 不如偷个菜." );/* 市民*/public class Citizen private String mName;public Citizen(String name)

19、 mName= name;/* 市民报案*/public void report(IPolice police) System.out .println(String.format ("市民送失手机,向警察报案抓小偷." , mName);police.catchThief();案情:市民虽然向警察报了案,但你不知道能不能把小偷抓住,甚至你都不知道他们有没有去抓小偷,还有可能你在电影里看到的剧情真的发生了事情经过可能是这样:public class Main public static void main(String args) Citizen citizen =new

20、Citizen( " 张三 " );IPolice police =getPolice ();citizen.report(police);private static IPolice getPolice() return new PoliceReal();事情结果一:市民张三丢失手机,向警察报案抓小偷 .抓住小偷了事情经过也可能是这样:public class Main public static void main(String args) Citizen citizen =new Citizen( " 张三 " );IPolice police =

21、getPolice ();citizen.report(police);private static IPolice getPolice() return new PoliceHyp();事情结果二:市民张三丢失手机,向警察报案抓小偷 .大冷天的抓什么小偷啊,不如偷个菜.事情经过还可能是这样:public class Main public static void main(String args) Citizen citizen =new Citizen( " 张三 " );IPolice police =getPolice ();citizen.report(polic

22、e);private static IPolice getPolice() return new PoliceReal() Overridepublic void catchThief() System.out .println( " 抓小偷?笑话, 抓了小偷我哪儿收保护费去啊." );事情结果三:市民张三丢失手机,向警察报案抓小偷.抓小偷?笑话,抓了小偷我哪儿收保护费去啊.7阅读并分析以下程序,将程序中的代码补充完整。public class CalendarFrame extends Frame implements ActionListener Label label

23、Day=new Label42;Button titleName=new Button7;String name=" 日 ","一","二","三", "四","五","六"Button nextMonth,previousMonth;int year=2006,month=10;CalendarBean calendar;Label showMessage=new Label("",Label.CENTER);public Calen

24、darFrame() Panel pCenter=new Panel();【代码 1 :pCenter.setLayout(new GridLayout(7,7); 】 /将 pCenter 的布局设置为7 行 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.

25、CENTER);【代码 3 : pCenter.add(labelDayi); 】 /pCenter 添加组件 labelDayi 。calendar=new CalendarBean();calendar.setYear(year);calendar.setMonth(month);String day=calendar.getCalendar();for(int i=0;i<42;i+) labelDayi.setText(dayi);nextMonth=new Button(" 下月 ");previousMonth=new Button(" 上月 &

26、quot;);nextMonth.addActionListener(this);previousMonth.addActionListener(this);Panel pNorth=new Panel(),pSouth=new Panel();pNorth.add(previousMonth);pNorth.add(nextMonth);pSouth.add(showMessage);showMessage.setText(" 日历:"+calendar.getYear()+" 年"+ calendar.getMonth()+" 月"

27、; );ScrollPane scrollPane=new ScrollPane();scrollPane.add(pCenter);【代码 4 :add( "Center ” ,scollPan/e);窗口添加 scrollPane在中心区域【代码 5 :add( “ North ” ,pNo】rth/)/; 窗口添加 pNorth 在北面区域【代码 6 :add( “ South ” ,pSo】uth/); 窗口添加 pSouth 在南区域。public void actionPerformed(ActionEvent e) if(e.getSource()=nextMonth)

28、 month=month+1;if(month>12)month=1;calendar.setMonth(month);String day=calendar.getCalendar();for(int i=0;i<42;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+

29、) labelDayi.setText(dayi);showMessage.setText("日历:"+calendar.getYear()+"年"+calendar.getMonth()+"月 " ); 8使用滚动条改变背景颜色程序功能:移动滚动条可以改变背景颜色。阅读并分析以下程序,将程序中的代码补充完整。publicclassScrollbar int redTextFieldKY7_2 extends r1 , r2 , r3 ; green , blue ;t;Appletimplements AdjustmentListe

30、ner Label a;public void init() setLayout( null );HORIZONTAL , 0,1,0, 255);HORIZONTAL , 0,1,0, 255);HORIZONTAL , 0,1,0, 255);ri=newScrollbar(Scrollbar.r2=newScrollbar(Scrollbar.r3=newScrollbar(Scrollbar.t = new TextField( "0" , 5);t .setEditable( false );a = new Label("移动滚动条可改变背景颜色&quo

31、t;,Label. CENTER);add( a);a.setBounds(120, 10, 150, 15);/添加滚动条r1/添加滚动条r2/添加滚动条r3代码 1 : add(r1);r1 .setBounds(20, 30, 100, 20);代码 2 : add(r2);r2 .setBounds(140, 30, 100, 20);代码 3 : add(r3) ;r3 .setBounds(260, 30, 100, 20);add( t);t .setBounds(20, 120, 220, 18);r1 .addAdjustmentListener(this );代码 4 :

32、r2.addAdjustmentListener(this)代码 5 :r3.addAdjustmentListener(this)public void adjustmentValueChanged(AdjustmentEvent e) red = r1 .getValue();代码 6 : green = r2.getValue();代码 7 : blue = r3.getValue();,greent .setText( "red 的值"+ String. valueOf (r1 .getValue() + 的值"+ String. valueOf ( r2

33、 .getValue() +",blue 的值"+ String. valueOf ( r3 .getValue();Color c = new Color( red , green , blue );代码 8 : setBackground(c);/ 设置背景色 9.创建电闪雷鸣的动画程序功能:本程序可以通过按钮控制声音和动画的开始和停止操作。动画显示了电闪 雷鸣的场面。注意:图像文件要分别表现不同时间段的电闪场面,这样才会有动画效果。 阅读并分析以下程序,将程序中的代码补充完整。import java.awt.*;import java.applet.*;import

34、java.awt.event.*;public class KY7_3 extends Applet implements Runnable, ActionListener Image ilmages ;/图像数组Thread aThread ;int iFrame ; / 图像数组下标 AudioClip au ; /定义一个声音对象Button bl , b2 ; public void init() int i, j; iFrame = 0; aThread= null ;iImages= new Image10;for (i = 0; i < 10; i+) iImages i

35、= getImage(getCodeBase(),"images/" + "tu" + (i + 1)+".JPG"); au = getAudioClip(getDocumentBase(),"Wav/receivemedia.au" );代码1 : au.play(); /播放一次声音文件Panel p1 = new Panel(); b1 = new Button("开始");b2 = new Button("停止");p1.add( b1 ); p1.add( b2)

36、; b1 .addActionListener(this );b2 .addActionListener(this );setLayout( new BorderLayout(); add(p1, "South"); public void start() if ( aThread = null ) aThread = new Thread( this ); 代码 2 : aThread.star(); /线程启动b1 .setEnabled( false ); public void stop() if ( aThread != null ) 代码 3 : aThread

37、.interrupt(); / 线程中断 aThread = null ;代码4 : au.stop(); /停止播放声音文件 public void run() while ( true ) iFrame +; iFrame %= ( iImages . length );/ 下一幅图像的下标repaint();try Thread. sleep (100); catch (InterruptedException e) /中断时抛出break ; / 退出循环public void update(Graphics g) g.drawImage( iImages iFrame , 0, 0,

38、 this );public void actionPerformed(ActionEvent e) if (e.getSource() =b1 ) && ( aThread = null ) / 单击 Start按钮时触发aThread = new Thread( this );代码 5 : aThread.star(); / 线程启动b1 .setEnabled(false );b2 .setEnabled(true );代码6 : au.loop(); / 循环播放声音文件 if ( 代码7 : au.stop();) / 单击 Stop按钮时触发aThread .int

39、errupt。;/线程中断aThread = null;b1 .setEnabled(true);b2 .setEnabled(false);au .stop();/停止播放声音文件10 .要求设计一个能通过Runnable接口实现多线程动态地显示时间的Applet程阅读并分析以下程序,将程序中的代码补充完整,编译并运行程序,查看结果。import javax.swing.*;/ Jappletimportjava.util.*;/ Calendarimportjava.awt.*;/ Graphicspublic class AppletThreaded extends JApplet 代码

40、 1 : implements RunnableThread appletThread ;int hours , mins , secs ;Boolean stopFlag ;/ applet 的 start()方法publicvoid start() appletThread = new Thread( this );代码 2 : appletThread.star();/ 启动线程stopFlag =false/线程的run() 方法publicvoid run() while( true ) try 代码3 : Thread.sleep(1000);让线程休眠时间为 1000catch

41、(InterruptedException exception)exception.printStackTrace();Calendar 子类的实例Calendar time = Calendar.getInstancehours = time.get(Calendar.HOUF);mins = time.get(Calendar.MINUTE);secs = time.get(Calendar.SECOND);System.out .println("秒:"代码 4 : repaint();+ secs );/产生一个代表当前时间的if (stopFlag ) break

42、();刷新显示时间 public void stop()stopFlag =true ;public void paint(Graphics g) super .paint(g);valueOf ( hours ) +":" +valueOf (mins ) +":" +valueOf ( secs ), 50 , 50);g.drawString(String.String.String.11 .编写一个应用程序,除了主线程外,还有两个线程:first和second。巾rst 负责模拟一个红色的按钮从坐标(10, 60)运动到(100, 60); se

43、cond负责模拟 一个绿色的按钮从坐标(100, 60)运动到( 200, 60)。阅读并分析以下程序,将程 序中的代码补充完整。/MoveButton.javaimport java.awt.*;import java.awt.event.*;public class MoveButton extends Frame implementsRunnable,ActionListener 【代码 1 : Thread first,second;】/ 用 Thread 类声明 first,second 两个线程对 象Button redButton,greenButton,startButton;

44、int distance=10;MoveButton()】 / 创建 first 线程,当前窗口做为该线程 【代码 2 : first = new Thread ();的目标对象【代码 3 : second = new Thread ();】 / 创建 second 线程,当前窗口做为该线程的目标对象redButton=new Button();greenButton=new Button();redButton.setBackground(Color.red);greenButton.setBackground(Color.green);startButton=new Button(&quo

45、t;start");startButton.addActionListener(this);setLayout(null);add(redButton);redButton.setBounds(10,60,15,15);add(greenButton);greenButton.setBounds(100,60,15,15);add(startButton);startButton.setBounds(10,100,30,30);setBounds(0,0,300,200);setVisible(true);validate();addWindowListener(new Window

46、Adapter() public void windowClosing(WindowEvent e) System.exit(0););public void actionPerformed(ActionEvent e) try first.start();second.start();catch(Exception exp)public void run() while(true) if(【代码 4 : Thead.currentThread() = first】)/ 判断当前占有 CPU资源的线程是否是first moveComponent(redButton);try Thread.sl

47、eep(20);catch(Exception exp)】 ) / 判断当前占有CPUif( 【代码 5 : Thread.currentThread() = second资源的线程是否是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

48、)try wait();catch(Exception exp)distance=distance+1;b.setLocation(distance,60);if(distance>=100) b.setLocation(10,60);notifyAll();if(Thread.currentThread()=second) while(distance>=10&&distance<100)try wait();catch(Exception exp)distance=distance+1;b.setLocation(distance,60);if(dista

49、nce>200) distance=10;b.setLocation(100,60);notifyAll();/ MoveButtonMainClass.javaMoveButtonMainClass.javapublic class MoveButtonMainClass public static void main(String args) MoveButton mb =new MoveButton();12读写基本数据类型数据编写一个 Java 应用程序, 将若干基本数据写入到一个文件, 然后在按顺序读出。 阅读 下面程序,将程序中的代码补充完整。import java.io.*

50、;public class NumberExamplepublic static void main(String args)int a1=12, a2=1180;long b=808080;float x1=3.14F,x2=12.456F;double d=1234.9876;Boolean boo1=true,boo2=false;char c= 我 ;File f= 【代码 1 : new File( “ E:/1.txt” );】 / 创建文件tryFileOutputStream fos= 【代码 2 : new FileOutputStream(f);】/ 创建指向 f 文件输出

51、流DataOutputStream out_data= 【代码 3 : newDataOutputStream(fos);】 / 创建指向 fos 的数据输出流【代码4 : out_data.writeInt(a1);】/out_data将数据a1 写入到文件【代码5 :out_data.writeInt(a2);】/out_data将数据a2 写入到文件【代码6 :out_data.writeLong(b);】/out_data 将数据b写入到文件【代码7 :out_data.writeFloat(x1);】/out_data将数据x1 写入到文件【代码8 :out_data.writeFl

52、oat(x2);】/out_data将数据x2 写入到文件【代码9 :out_data.writeDouble(d);】/out_data将数据d 写入到文件【代码10 :out_data.writeBoolean(boo1);】/out_data将数据boo1 写入到文件【代码11 :out_data.writeBoolean(boo2);】/out_data将数据boo2 写入到文件【代码 12 : out_data.writeChar(c);】/out_data将数据c 写入到文件Catch(IOException e) try FileInputStream fis= 【代码 13 :

53、 new FileInputStream(f);】/ 创建指向 f 文件输入流14 : newDataInputStream in_data=DataInputStream(fis);】 / 创建指向 fis 的数据输入流System.out.println(15 :/in_data 读取 int 整数System.out.println( 【代码 16 :/in_data 读取 int 整数System.out.println(17 :/in_data 读取 long 整数System.out.println(18/in_dataSystem.out.println(/in_dataSyst

54、em.out.println(/in_dataSystem.out.println(/in_dataSystem.out.println(/in_dataSystem.out.println(/in_dataCatch(IOException e) 读取 float 数【代码19 :读取 float 数【代码20 :读取 double 数【代码21:读取boolean 数【代码22:读取boolean 数【代码23:读取 char 数据in_data.readInt()in_data.readInt()in_data.readLong()in_data.readFloat()in_data.r

55、eadFloat()in_data.readDouble()in_data.readBoolean()in_data.readBoolen()in_data.readChar()】 );】 );】 );】 );】 );】 );】 );】 );】 );13练习使用 InetAddress 类。对程序进行分析,写出分析结果。import .*;public class GetIP public static void main(String args) try InetAddress address_1 = InetAddress.getLocalHost ();/ 获得本地主机的计算机名和 IP 地址System. o

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论