1、 word 文档 可自由复制编辑 一阅读分析下面程序,将程序中的代码补充完整,并回答问题。1/FirstApplet.java import java.applet.*;import java.awt.*;public class FirstApplet extends Applet public void paint(Graphics g)【代码:g.setColor(Color.blue);】/将当前字体颜色设置为蓝色 g.drawString(这是一个Java Applet 程序,10,30);/在Java Applet中绘制一行文字:“这是一个Java Applet 程序”【代码:g.
2、setColor(Color.red);】/将当前字体颜色设置为红色 g.setFont(new Font(宋体,Font.BOLD,36);【代码:g.drawString(“我改变了字体”,10,100);】/在Java Applet中坐标(10,100)处绘制一行文字:“我改变了字体”(1)将源文件保持为FirstApplet.java,编译源文件。编译命令:【代码javac FirstApplet】(2)编写一个html文件FirstApplet.html,将该文件和源程序保持在同一目录下。文件内容如下:(3)若用appletviewer打开FirstApplet.html文件。运行命
3、令为:【代码appletviewer FirstApplet】2.要求:从键盘输入任意两个实数,比较两个数字的大小,将较大的数输出。数据输入和输出用 Java 的标准输入流和输出流来实现。阅读分析下面程序,将程序中的代码补充完整,实现数据比较功能。import java.util.Scanner;public class CompareTwoNumbers double number1,number2;Scanner scanner;public CompareTwoNumbers()System.out.println(请输入两个数字:);scanner=new Scanner(代码1:sy
4、stem.in );/实例化一个Scanner 对象;number1=代码2:scanner.nextDouble();/从键盘输入一个实数赋值给number1;number2=代码3:scanner.nextDouble();/从键盘输入一个实数赋值给number2;System.out.println(较大的数值是:+代码4:Math.max(number1,number2);word 文档 可自由复制编辑/将number1 和number2 中的较大值输出;public static void main(String args)CompareTwoNumbers ct=new Compa
5、reTwoNumbers();System.exit(0);3猜数字游戏 阅读分析下面程序,将程序中的代码补充完整,编辑运行查看结果。/GuessNumber.java import javax.swing.JOptionPane;public class GuessNumber public static void main(String args)System.out.println(给你一个1至100 之间的整数,请猜测这个数);int realNumber=(int)(Math.random()*100)+1;int yourGuess=0;String str=JOptionPane
6、showInputDialog(输入您的猜测:);yourGuess=Integer.parseInt(str);while(【代码1:yourGuess!=realNumber】)/循环条件 if(【代码2:yourGuess realNumber】)/条件代码 str=JOptionPane.showInputDialog(猜大了,再输入你的猜测:);yourGuess=Integer.parseInt(str);else if(【代码3:yourGuess 0】)/按着字典序s4 大于s5 的表达式。System.out.println(按字典序s4 大于s5);else System
7、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(100),s7=new String(123.678);int n1=【代码5:Integer.parseInt(s6);】/将s6 转化成int 型数据。double n2=【代码
8、6:Double.parseDouble(s7);】/将s7 转化成double型数据。double m=n1+n2;System.out.println(m);String s8=【代码7:String.valueOf(m);】/String调用valuOf(int n)方法将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.t
9、oCharArray();】/将s9 存放到数组a中。for(int i=a.length-1;i=0;i-)word 文档 可自由复制编辑 System.out.print(+ai);5掌握嵌套类和内部类的概念和用法 编写一个程序要求定义一个外部类Outer,然后在Outer类中定义一个内部类Inner和局部类 Local,内部类 Inner 和局部类 Local 的任务都是显示出外部类中的数组元素,然后求出这些数组元素的平均值。请按模版要求,将代码补充完整。class Outer private int data;Outer(int x)data =x;void checkInner()I
10、nner innerObj=new Inner();【补充代码:innerObj.show();】/调用Inner 对象的show()方法 System.out.println(内部类计算的平均值:+innerObj.average();void checkLocal()class Local void show()System.out.print(从局部类显示数组元素:);for(int i=0;i data.length;i+)System.out.print(data i+);System.out.println();int average()int sum=0;for(int i=1;
11、i data.length;i+)sum+=data i;【补充代码 return(sum/data.length);】/返回data数组的平均值 Local localObj=new Local();word 文档 可自由复制编辑 localObj.show();System.out.println(局部类计算的平均值:+localObj.average();class Inner void show()System.out.print(从内部类显示数组元素:);for(int i=0;i data.length;i+)【补充代码 system.out.print(“+datai);】/打印
12、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 main(String args)int a=6,8,9,22,34,7,2,1,15;Outer outerObj=new Outer(a);outerObj.checkInner();【补充代码 outerObj.checkLocal();】/调用outerO
13、bj 对象的checkLocal 方法 6通过一个简单的例子理解多态的概念/*人民警察 */public interface IPolice /*抓小偷 */public void catchThief();word 文档 可自由复制编辑 /*一个警察,执行抓小偷任务.*/public class PoliceReal implements IPolice public void catchThief()System.out.println(抓住小偷了);/*另一个警察,也执行抓小偷任务.*/public class PoliceHyp implements IPolice public vo
14、id catchThief()System.out.println(大冷天的抓什么小偷啊,不如偷个菜.);/*市民 */public class Citizen private String mName;public Citizen(String name)mName =name;/*市民报案 */public void report(IPolice police)System.out.println(String.format(市民%s丢失手机,向警察报案抓小偷.,mName);police.catchThief();案情:市民虽然向警察报了案,但你不知道能不能把小偷抓住,甚至你都不知道他们
15、有没有去抓小偷,还有可能你在电影里看到的剧情真的发生了.事情经过可能是这样:public class Main public static void main(String args)word 文档 可自由复制编辑 Citizen citizen=new Citizen(张三);IPolice police=getPolice();citizen.report(police);private static IPolice getPolice()return new PoliceReal();事情结果一:市民张三丢失手机,向警察报案抓小偷.抓住小偷了 事情经过也可能是这样:public clas
16、s Main public static void main(String args)Citizen citizen=new Citizen(张三);IPolice police=getPolice();citizen.report(police);private static IPolice getPolice()return new PoliceHyp();事情结果二:市民张三丢失手机,向警察报案抓小偷.大冷天的抓什么小偷啊,不如偷个菜.事情经过还可能是这样:public class Main public static void main(String args)Citizen citi
17、zen=new Citizen(张三);IPolice police=getPolice();citizen.report(police);private static IPolice getPolice()return new PoliceReal()Override public void catchThief()System.out.println(抓小偷?笑话,抓了小偷我哪儿收保护费去啊.);word 文档 可自由复制编辑 事情结果三:市民张三丢失手机,向警察报案抓小偷.抓小偷?笑话,抓了小偷我哪儿收保护费去啊.7阅读并分析以下程序,将程序中的代码补充完整。public class C
18、alendarFrame extends Frame implements ActionListener Label labelDay=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 CalendarFrame()Panel pCenter=new Panel(
19、);【代码 1:pCenter.setLayout(new GridLayout(7,7);】/将 pCenter的布局设置为 7行 7 列的 GridLayout 布局。for(int i=0;i7;i+)titleNamei=new Button(namei);【代码 2:pCenter.add(titleNamei);】/pCenter 添加组件 titleNamei。for(int i=0;i42;i+)labelDayi=new Label(,Label.CENTER);【代码 3:pCenter.add(labelDayi);】/pCenter 添加组件 labelDayi。cal
20、endar=new CalendarBean();calendar.setYear(year);calendar.setMonth(month);String day=calendar.getCalendar();for(int i=0;i12)month=1;calendar.setMonth(month);String day=calendar.getCalendar();for(int i=0;i42;i+)labelDayi.setText(dayi);else if(e.getSource()=previousMonth)month=month-1;if(month1)month=1
21、2;calendar.setMonth(month);String day=calendar.getCalendar();for(int i=0;i42;i+)labelDayi.setText(dayi);showMessage.setText(日历:+calendar.getYear()+年+calendar.getMonth()+月);8使用滚动条改变背景颜色 程序功能:移动滚动条可以改变背景颜色。阅读并分析以下程序,将程序中的代码补充完整。public class KY7_2 extends Applet implements AdjustmentListener Scrollbar
22、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 Scrollbar(Scrollbar.HORIZONTAL,0,1,0,255);word 文档 可自由复制编辑 r3 =new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,255);t=new TextField(0,5);t.setEditable(false);a=new Labe
23、l(移动滚动条可改变背景颜色,Label.CENTER);add(a);a.setBounds(120,10,150,15);代码1:add(r1);/添加滚动条r1 r1.setBounds(20,30,100,20);代码2:add(r2);/添加滚动条r2 r2.setBounds(140,30,100,20);代码3:add(r3);/添加滚动条r3 r3.setBounds(260,30,100,20);add(t);t.setBounds(20,120,220,18);r1.addAdjustmentListener(this);代码4:r2.addAdjustmentListen
24、er(this);代码5:r3.addAdjustmentListener(this);public void adjustmentValueChanged(AdjustmentEvent 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 C
25、olor(red,green,blue);代码8:setBackground(c);/设置背景色 9创建电闪雷鸣的动画 程序功能:本程序可以通过按钮控制声音和动画的开始和停止操作。动画显示了电闪雷鸣的场面。注意:图像文件要分别表现不同时间段的电闪场面,这样才会有动画效果。阅读并分析以下程序,将程序中的代码补充完整。import java.awt.*;import java.applet.*;import java.awt.event.*;public class KY7_3 extends Applet implements Runnable,ActionListener Image iIma
26、ges;/图像数组 Thread aThread;int iFrame;/图像数组下标 AudioClip au;/定义一个声音对象 Button b1,b2;public void init()word 文档 可自由复制编辑 int i,j;iFrame =0;aThread =null;iImages =new Image10;for (i=0;i 100&distance=100)b.setLocation(10,60);notifyAll();if(Thread.currentThread()=second)while(distance=10&distance200)distance=
27、10;b.setLocation(100,60);notifyAll();/MoveButtonMainClass.java MoveButtonMainClass.java public class MoveButtonMainClass public static void main(String args)MoveButton mb=new MoveButton();12读写基本数据类型数据 编写一个 Java应用程序,将若干基本数据写入到一个文件,然后在按顺序读出。阅读下面程序,将程序中的代码补充完整。word 文档 可自由复制编辑 import java.io.*;public cl
28、ass NumberExample public 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文件输出流 DataOutputStream out_data
29、代码3:new DataOutputStream(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.writeFloat(x2);】/out_data将数据x2 写入到文件【代码9:out_
30、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:new FileInputStream(f);】/创建指向f文件输入流 DataInputStre
31、am in_data=【代码14:new DataInputStream(fis);】/创建指向fis 的数据输入流 System.out.println(【代码15:in_data.readInt()】);/in_data读取int 整数 System.out.println(【代码16:in_data.readInt()】);/in_data读取int 整数 System.out.println(【代码17:in_data.readLong()】);/in_data读取long 整数 word 文档 可自由复制编辑 System.out.println(【代码18 :in_data.rea
32、dFloat()】);/in_data读取float 数 System.out.println(【代码19:in_data.readFloat()】);/in_data读取float 数 System.out.println(【代码20:in_data.readDouble()】);/in_data读取double 数 System.out.println(【代码21:in_data.readBoolean()】);/in_data读取boolean 数 System.out.println(【代码22:in_data.readBoolen()】);/in_data读取boolean 数 Sy
33、stem.out.println(【代码23:in_data.readChar()】);/in_data读取char 数据 Catch(IOException e)13练习使用 InetAddress类。对程序进行分析,写出分析结果。import .*;public class GetIP public static void main(String args)try InetAddress address_1=InetAddress.getLocalHost();/获得本地主机的计算机名和IP 地址 System.out.println(address_1.toString();InetAd
34、dress address_2=InetAddress.getByName();/获得主机地址的域名和IP 地址 System.out.println(address_2.toString();InetAddress address_3=InetAddress.getByName(61.183.20.30);System.out.println(address_3.toString();catch (UnknownHostException e)System.out.println(无法找到.);14.阅读下面的程序并补充完整,掌握获取 URL信息的一些方法。import .*;import
35、java.io.*;public class URLTest public static void main(String args)URL url=null;InputStream is;try word 文档 可自由复制编辑 url=new URL(http:/:8080/eas/index.html);is=url.openStream();int c;try while (c=is.read()!=-1)System.out.print(char)c);catch (IOException e)finally is.close();catch (MalformedURLExceptio
36、n e)e.printStackTrace();catch (IOException e)e.printStackTrace();System.out.println(文件名:+【代码1:url.getFile()】);/获取url对象的文件名 System.out.println(主机名:+【代码2:url.getHost()】);/获取主机名 System.out.println(端口号:+【代码3:url.getPort()】);/获取端口号 System.out.println(协议名:+【代码4:url.getProtcol()】);/获取协议名称 15.练习使用 Socket和 S
37、erverSocket进行套接字编程 下面是一个简单的字符界面的聊天程序。服务器端程序如下:import java.io.*;import .*;public class ServerDemo public static void main(String args)try ServerSocket server=new ServerSocket(4566);Socket socket=server.accept();String line;BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStre
38、am();PrintWriter os=new PrintWriter(socket.getOutputStream();BufferedReader sin=new BufferedReader(new InputStreamReader(System.in);word 文档 可自由复制编辑 System.out.println(Client:+is.readLine();System.out.print(Server:);line=sin.readLine();while(!line.equals(bye)os.println(line);os.flush();System.out.pri
39、ntln(Client:+is.readLine();System.out.print(Server:);line=sin.readLine();sin.close();os.close();is.close();socket.close();server.close();catch(Exception e)System.out.println(Error:+e);客户端程序如下:import java.io.*;import .*;public class ClientDemo public static void main(String args)try Socket socket=new
40、 Socket(127.0.0.1,4566);BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream();PrintWriter os=new PrintWriter(socket.getOutputStream();BufferedReader sin=new BufferedReader(new InputStreamReader(System.in);String readline;System.out.print(Client:);readline=sin.readLine();
41、while(!readline.equals(bye)os.println(readline);os.flush();System.out.println(Server:+is.readLine();System.out.println(Client:);readline=sin.readLine();word 文档 可自由复制编辑 sin.close();os.close();is.close();socket.close();catch(Exception e)System.out.println(Error:+e);16.要求:编写带图形界面的聊天程序,实现让客户可以持续地发送消息给服务
42、器,服务器也可以即时看到客户端发送的消息,并回消息给客户端。程序运行界面如下:/服务器端程序如下:public class MyServer extends JFrame implements ActionListener JTextArea jta;JTextField jtf;JButton jb;JPanel jp;ServerSocket ss;Socket socket;DataOutputStream out;DataInputStream in;public MyServer()jta=new JTextArea();jtf=new JTextField(15);jb=new J
43、Button(发送);jp=new JPanel();jp.add(jtf);word 文档 可自由复制编辑 jp.add(jb);JScrollPane jsp=new JScrollPane(jta);this.add(jsp,BorderLayout.CENTER);this.add(jp,BorderLayout.SOUTH);jb.addActionListener(this);jtf.addActionListener(this);/展现 this.setTitle(服务器);this.setSize(300,200);this.setDefaultCloseOperation(J
44、Frame.EXIT_ON_CLOSE);this.setVisible(true);/开放端口 try ss=new ServerSocket(9000);System.out.println(等待连接);socket=ss.accept();System.out.println(已连接);out=new DataOutputStream(socket.getOutputStream();in=new DataInputStream(socket.getInputStream();while(true)/接受客户端发送数据 String str=in.readUTF();/显示多行文本框中
45、jta.append(客户端说:+str+rn);catch(IOException e)e.printStackTrace();public static void main(String args)new MyServer();public void actionPerformed(ActionEvent e)if(e.getSource()=jb|e.getSource()=jtf)/向客户端发送数据 try out.writeUTF(jtf.getText();word 文档 可自由复制编辑 catch(IOException e1)e1.printStackTrace();/向多行文
46、本框输入历史聊天记录信息 jta.append(服务器说:+jtf.getText()+rn);/清空单行文本框内容 jtf.setText();/客户端程序如下:public class MyClient extends JFrame implements ActionListener JButton jb;JTextArea jta;JTextField jtf;JPanel jp;Socket socket;DataOutputStream out;DataInputStream in;public MyClient()jta=new JTextArea();jtf=new JTextF
47、ield(15);jb=new JButton(发送);jp=new JPanel();jp.add(jtf);jp.add(jb);JScrollPane jsp=new JScrollPane(jta);this.add(jsp,BorderLayout.CENTER);this.add(jp,BorderLayout.SOUTH);jb.addActionListener(this);jtf.addActionListener(this);/展现 this.setTitle(客户端);this.setSize(300,200);this.setDefaultCloseOperation(
48、JFrame.EXIT_ON_CLOSE);this.setVisible(true);word 文档 可自由复制编辑 try /建立连接 socket=new Socket(127.0.0.1,9000);out=new DataOutputStream(socket.getOutputStream();in=new DataInputStream(socket.getInputStream();while(true)/接受服务器发送数据 String str=in.readUTF();/显示在多行文本框 jta.append(服务器说:+str+rn);catch(UnknownHostE
49、xception e)e.printStackTrace();catch(IOException e)e.printStackTrace();public static void main(String args)new MyClient();public void actionPerformed(ActionEvent e)if(e.getSource()=jb|e.getSource()=jtf)/向服务器发送数据 try out.writeUTF(jtf.getText();catch(IOException e1)e1.printStackTrace();/显示在多行文本框 jta.a
50、ppend(客户端说:+jtf.getText()+rn);/清空单行文本框 jtf.setText();二阅读并分析下面程序,给出程序的运行结果。1.public class abc public static void main(String args)int i,s=0;word 文档 可自由复制编辑 int a=11,22,33,44,55,66,77,88,99;for(i=0;i a.length;i+)if(ai%2=0)s+=ai;System.out.println(s=+s);答案:s=22 s=66 s=132 s=220 2.public class abc publi






