求java程序设计基础(第4版)课后练习答案(有源代码的)清华大学出版社,陈国君主编

求java程序设计基础(第4版)课后练习答案(有源代码的)清华大学出版社,陈国君主编,第1张

一、程序填空题

1下面是一个java应用程序(Application),它的功能是在屏幕上输出26个英文字母,其中每个字母相隔一个制表符,请完成程序。

public _____ Class1

{

public static void main( String args[] ) {

char c='a';

for (int i=1;i<=26;i++){

Systemoutprint(____________);

}

}

}

2下面程序的功能为计算数组各元素的和,请完成程序。

import javaawtGraphics;

import javaxswingJApplet;

public class SumOfArray _______ JApplet{

public void paint( Graphics g ) {

int a[] = { 1, 3, 5, 7, 9, 10 };

int total=0;

for ( int i = 0; i < alength; i++ )

total+=_____________;

gdrawString( "Total of array elements: " + total, 25, 25 );

}

}

3下面程序的功能是通过调用方法max()求给定的三个数的最大值,请将程序补充完

整。

import javaio;

public class Class1{

public static void main( String args[] ) {

int i1=1234,i2=456,i3=-987;

int MaxValue;

MaxValue=____________;

Systemoutprintln("三个数的最大值:"+MaxValue);

}

public ________ int max(int x,int y,int z) {

int temp1,max_value;

temp1=x>yx:y;

max_value=temp1>ztemp1:z;

return max_value;

}

}

二、简答题

1阅读下面的程序,回答以下问题(6分)问题:

import javaawt;

import javaxswing;

import javaawtevent;

public class Test extends JApplet implements ActionListener {

JLabel aa;

JTextField t1;

int i=0;

public void init(){

thissetLayout(new FlowLayout());

aa=new JLabel("请输入一个整数:");

add(aa);

t1=new JTextField(10);

add(t1);

t1addActionListener(this);

}

public void paint(Graphics g){

gdrawString("a="+( ++i--i),20,60);

gdrawString("i="+( i),20,80);

}

public void actionPerformed(ActionEvent e){

i=IntegerparseInt(t1getText());//转化为整数

repaint();

}

}

1)程序开头的 import javaawtevent ; 的含义是什么

2)ActionListener是类还是接口 程序中哪个方法是ActionListener中的方法,其功能为何

3)若在文本域中输入6并回车,程序输出什么

2阅读程序,回答以下问题(6分)

public class InheritTest1{

public static void main (String[] args){

A aa;

B bb;

aa=new A( );

bb=new B( );

aashow( );

bbshow();

}

}

public class A{ //Ajava

int a=1;

double d=20;

void show( ){

Systemoutprintln("Class A: "+"\ta="+a +"\td="+d);

}

}

public class B extends A{ //Bjava

float a=30f;

String d="Java program";

int b=4;

void show( ){

Systemoutprintln("Class A: "+"\ta="+supera +"\td="+superd);

supershow( );

Systemoutprintln("Class B: "+"\ta="+a +"\td="+d+"\tb="+b);

}

}

问题:

1) 这是哪一类java程序

2) 类A和类B是什么关系?

3) 按程序输出的格式写出程序运行后的结果

三、程序设计题

1 实现java应用程序实现的功能是从文本域中输入你的名字"",回车后在标签中显示",你好!" ,请完成程序。如图

这是答案:

一、程序填空题

1class "\t"+(char)(c+i-1)

2extends a[i]

3max(i1,i2) static

二、简答题

1 1)程序开头的 import javaawtevent ; 的含义是什么

加载javaawtevent包中的所有类。

2)ActionListener是类还是接口 程序中哪个方法是ActionListener中的方法,其功能为何

ActionListener是接口,actionPerformed是ActionListener中的方法,功能是当点击按钮时,将文本域的数据转化为整数。

3)若在文本域中输入6并回车,程序输出什么

A=42

I=6

2阅读程序,回答以下问题(6分)

}问题:

1) 这是哪一类java程序

Java Application

2) 类A和类B是什么关系?

A类是B类的父类

3) 按程序输出的格式写出程序运行后的结果

三、程序设计题

1 实现java应用程序实现的功能是从文本域中输入你的名字"",回车后在标签中显示",你好!" ,请完成程序。如图

import javaawt;

import javaxswing;

import javaawtevent;

public class Test extends JFrame implements ActionListener

{

JLabel aa,bb;

JTextField t1;

String s=" ";

public Test(){

aa=new JLabel("请输入你的名字:");

bb=new JLabel();

Container c=thisgetContentPane();

csetLayout(new FlowLayout());

t1=new JTextField(10);

cadd(aa);

cadd(t1);

cadd(bb);

t1addActionListener(this);

}

public void actionPerformed(ActionEvent e){

if(t1getText()!=null){

bbsetText(t1getText()+",你好!");

repaint();

}

}

public static void main(String[] args){

Test t=new Test();

tpack();

tshow();

}

}

我这还有 。。。如果还要的话 到我空间留言

2百度百科搜索很详细

3附件中的代码仅供参考

TcpSocketServerDemojava

package yaoshunInetAddress;

import javaioDataInputStream;

import javaioDataOutputStream;

import javaioIOException;

import javanetServerSocket;

import javanetSocket;

import javautilArrayList;

import javautilList;

import javautilRandom;

/

  客户端:TCP服务器端

 /

public class TcpSocketServerDemo {

private ServerSocket serverSocket;// 服务器连接

private int port; // 服务器监听端口

private List<Socket> sockets;

private int ranNumber;

/

  服务器结束的标志

 /

public boolean ISEND;

public TcpSocketServerDemo(int port) {

thisport = port;

serverSocket = null;

sockets = new ArrayList<Socket>();

ranNumber = new Random()nextInt(50);

}

/

  启动服务器

 /

public void starServer() {

try {

// 第一步:建立服务器连接(绑定监听端口)

serverSocket = new ServerSocket(port);

Systemoutprintln("姚舜的服务器已经启动");

Socket socket;// 客户端连接(如果建立连接时,本机网络不容或服务器程序未启动则会抛出异常)

ServerThread serverThread;

Thread t2;

while (!ISEND) {

// 第二步:监听端口(获取客户端连接)

socket = serverSocketaccept();

if (ISEND) {

while (!socketisClosed()) {

socketclose();

Threadsleep(100);

}

} else {

socketsadd(socket);

serverThread = new ServerThread(this, socket);

t2 = new Thread(serverThread);

t2start();

}

}

for (Socket s : sockets) {

sclose();

}

serverSocketclose();

} catch (Exception e) {

eprintStackTrace();

}

}

public static void main(String[] args) {

TcpSocketServerDemo tDemo = new TcpSocketServerDemo(1000);

tDemostarServer();

}

/

  校验

  

  @param i

  @return

 /

public int check(int i) {

if (i < ranNumber) {

return -1;

} else if (i > ranNumber) {

return 1;

}

return 0;

}

}

/

  服务端处理线程

 

 /

class ServerThread implements Runnable {

private TcpSocketServerDemo tDemo;

private Socket socket;

private DataInputStream dis;// 输入流(读取数据)

private DataOutputStream dos;// 输出流(发送数据)

public ServerThread(TcpSocketServerDemo tDemo, Socket socket) {

super();

thistDemo = tDemo;

thissocket = socket;

try {

dis = new DataInputStream(socketgetInputStream());

dos = new DataOutputStream(socketgetOutputStream());

} catch (IOException e) {

eprintStackTrace();

}

}

public void run() {

String message = "";

int i;

int index = 0;

int result = 0;

while (!messageequals("Quit") && index < 5) {

try {

message = disreadUTF();

} catch (IOException e) {

eprintStackTrace();

}

try {

i = IntegerparseInt(message);

result = tDemocheck(i);

if (result == 1) {

doswriteUTF("数字大了");

} else if (result == -1) {

doswriteUTF("数字小了");

}

if (result == 0) {

doswriteUTF("猜中了");

break;

}

} catch (NumberFormatException | IOException e) {

continue;

}

index++;

}

try {

disclose();

dosclose();

socketclose();

} catch (IOException e) {

eprintStackTrace();

}

}

}

TcpSocketClientDemojava

package yaoshunInetAddress;

import javaioDataInputStream;

import javaioDataOutputStream;

import javaioIOException;

import javanetSocket;

import javanetUnknownHostException;

import javautilScanner;

/

  演示类:TCP客户端

 /

public class TcpSocketClientDemo {

private Socket socket;// 客户端连接(如果建立连接时,本机网络不容或服务器程序未启动则会抛出异常)

private DataInputStream dis;// 输入流(读取数据)

private DataOutputStream dos;// 输出流(发送数据)

// private String serverIP;// 服务器IP地址

// private int serverPort;// 服务器监听端口

private String sendData;// 发送的数据

public TcpSocketClientDemo(String serverIP, int serverPort) throws UnknownHostException, IOException {

// thisserverIP = serverIP;

// thisserverPort = serverPort;

socket = new Socket(serverIP, serverPort);

dis = new DataInputStream(socketgetInputStream());

dos = new DataOutputStream(socketgetOutputStream());

sendData = null;

startClient();

}

public void startClient() {

try {

// 第一步:创建客户端连接

Systemoutprintln("===我的客户端界面===");

// 第二步:客户端向服务器发送数据

int i = 0;

Scanner input = new Scanner(Systemin);

while (i < 5) {

Systemoutprintln("请输入你的内容(客户端的):");

sendData = inputnextLine();

if (sendDataequals("quit")) {

break;

}

doswriteUTF(sendData);

sendData = disreadUTF();

Systemoutprintln("接收到服务器内容:" + sendData);

if (i == 5) {

Systemoutprintln("超过允许次数,请重新连接服务器");

}

if (sendDataequals("猜中了")) {

i = 5;

}

i++;

}

inputclose();

} catch (Exception e) {

eprintStackTrace();

} finally {

// 第四步:关闭输入流、输出流和客户端连接

try {

disclose();

dosclose();

socketclose();

} catch (Exception e) {

eprintStackTrace();

}

}

}

public static void main(String[] args) {

try {

new TcpSocketClientDemo("127001", 1000);

} catch (IOException e) {

eprintStackTrace();

}

}

}

异常的抛出,就是将异常抛给异常处理器,暂时不去处理它。

摘要:《Java程序员面试指南》第7章异常处理及内存管理,本章讲述的是要想成功地成为一名合格的Java程序员,掌握好异常处理机制是编写大型程序必不可少的基本功。本节为大家介绍异常的处理方式之三:throw。

标签:throw Java 程序员 Java程序员面试指南

Oracle帮您准确洞察各个物流环节

74 异常的处理方式之三:throw(1)

异常的抛出,就是将异常抛给异常处理器,暂时不去处理它。本节主要讲解用throw抛出异常的方式,以及如何由try-catch来接收所抛出的异常。

当一个方法发生异常时可以通过throw关键字来抛出异常,把异常抛给它上一级的调用者,抛出的可以是异常引用,也可以是异常对象,它的语法格式如下:

throw 异常对象名; 或者

throw new 异常类名(); 一条throw语句一旦被执行,程序立即转入相应的异常处理程序段,它后面的语句就不再执行了(这一点类似于return语句),而且它所在的方法也不再返回有意义的值。在一个方法中,throw语句可以有多条,但每一次最多只能执行其中的一条。在一般情况下,throw语句都会写在判断语句块中,以避免每次都执行该语句。

代码剖析下面来看一个例子,也许从中你会明白点什么。具体代码如下:

public class catchThows { static int x; public static void main(String argv[]) { double a = Mathrandom() 10; if (x > 0) Systemoutprintln(a / x); else throw new Exception(); // 抛出异常 } public void setX(int x) { thisx = x; } } 运行结果如图71所示。

(大图)图71 运行结果

从上面的运行结果中可以看出,一个方法中如果使用throw来抛出异常,要么自己捕获它,要么声明抛出了一个异常。要声明抛出了异常,需要用throws关键字在方法的头部声明。如果我们将上面的代码修改成下面的代码,那么结果又会怎样呢?

public class catchThows_1 { static int x; public static void main(String argv[]) { new catchThows()setX(0); double a = Mathrandom() 10; if (x > 0) Systemoutprintln(a / x); else try { throw new Exception();// 抛出异常 } catch (Exception e) { Systemoutprintln("出现异常的原因是:"+egetMessage()); } } public void setX(int x) { thisx = x; } } 运行结果如下:

出现异常的原因是:null 还有一种抛出异常的方法是让被调用的方法表示它将不处理异常,该异常将被抛出到它的调用方法中。这点是和throws声明异常很相似的,但它们的位置是完全不同的。具体代码如下:

public class catchThows_2 { void findThows() { try { //抛出方法 throw new ArithmeticException(); } catch(ArithmeticException ae) { throw ae; } } public static void main(String args[]) { catchThows ct=new catchThows(); //对方法进行异常处理 try { ctfindThows(); } catch(ArithmeticException ae) { Systemoutprintln("出现异常的原因是:"+ae); } } } 运行结果如下:

出现异常的原因是:javalangArithmeticException

责任编辑:云霞 TEL:(010)68476606

回书目 上一节 下一节

上一篇: 73 异常的处理方式之二:throws(2) 下一篇: 74 异常的处理方式之三:throw(2)

相关文章

·75 内存的管理(2)

·74 异常的处理方式之三:throw(2)

·173 Java高级编程试题(1)

·171 Java基础编程试题(6)

·171 Java基础编程试题(5)

频道热门

·自己动手写搜索引擎

·112 编写代码(15分钟)

·111 准备工作环境(10分钟)

·软件调试的艺术

·WCF编程(第2版)

以上就是关于求java程序设计基础(第4版)课后练习答案(有源代码的)清华大学出版社,陈国君主编全部的内容,包括:求java程序设计基础(第4版)课后练习答案(有源代码的)清华大学出版社,陈国君主编、杭州达内java课程在线考试题、java求练习题集等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10623388.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-10
下一篇2023-05-10

发表评论

登录后才能评论

评论列表(0条)

    保存