JAVA语言与面向对象程序设计课后习题答案资料 下载本文

第1章 面向对象软件开发概述

1.简述面向过程问题求解和面向对象问题求解的异同。试列举出面向对象和面向过程的编程语言各两种。

答:面向过程问题求解,以具体的解题过程为研究和实现的主体,其思维特点更接近于计算机;面向对象的问题求解,则是以“对象”为主体,“对象”是现实世界的实体或概念在计算机逻辑中的抽象表示,更接近于人的思维特点。

面向过程的编程语言:C,Pascal, Foratn。 面向对象的编程语言:C++, Java,C#。

2.简述对象、类和实体及它们之间的相互关系。尝试从日常接触到的人或物中抽象出对象的概念。

答:面向对象技术中的对象就是现实世界中某个具体的物理实体在计算机逻辑中的映射和体现。类是同种对象的集合与抽象。类是一种抽象的数据类型,它是所有具有一定共性的对象的抽象,而属于类的某一个对象则被称为是类的一个实例,是类的一次实例化的结果。如果类是抽象的概念,如“电视机”,那么对象就是某一个具体的电视机,如“我家那台电视机”。

3.对象有哪些属性?什么是状态?什么是行为?二者之间有何关系?设有对象“学生”,试为这个对象设计状态与行为。

答:对象都具有状态和行为。

对象的状态又称为对象的静态属性,主要指对象内部所包含的各种信息,也就是变量。每个对象个体都具有自己专有的内部变量,这些变量的值标明了对象所处的状态。

行为又称为对象的操作,它主要表述对象的动态属性,操作的作用是设置或改变对象的状态。

学生的状态:姓名、性别、年龄、所在学校、所在系别、通讯地址、电话号码、入学成绩等;

学生的行为:自我介绍、入学注册、选课、参加比赛等。

4.对象间有哪三种关系?对象“班级”与对象“学生”是什么关系?对象“学生”与对象“大学生”是什么关系?

答:对象间可能存在的关系有三种:包含、继承和关联。 对象“班级”与对象“学生”是包含关系。 对象“学生”与对象“大学生”是继承关系。

5.有人说“父母”和“子女”之间是继承的关系。这种说法是否正确?为什么?

答:“父母”和“子女”之间不是面向对象意义上的“继承”关系。因为这里的继承关系是“is a”的关系,“男人”与“人”之间可以说是继承关系。

6.面向对象的软件开发包括哪些过程?OOA模型包括哪三个层次?OOD模型在OOA模型的基础上引入了哪些工作?

答:面向对象的软件开发过程可以大体划分为面向对象的分析(Object Oriented analysis,OOA)、面向对象的设计(Object oriented design,OOD)、面向对象的实现(Object oriented programming,OOP)三个阶段。

面向对象的分析的主要作用是明确用户的需求,并用标准化的面向对象的模型规范地表述这一需求,最后将形成面向对象的分析模型。

面向对象的设计将在OOA模型的基础上引入界面管理、任务管理和数据管理三部分的内容。

7.面向对象的程序设计方法有哪些优点?

答:由于对象的概念能够以更接近实际问题的原貌和实质的方式来表述和处理这些问题,所以面向对象的软件开发方法比以往面向过程的方法有更好的灵活性、可重用性和可扩展性,

使得上述“分析—设计—实现”的开发过程也更加高效、快捷。

第2章 Java概述

1. 简述Java编译和运行的基本方法。

答:编译可以使用JDK中的工具javac.exe。例如:

javac HelloWorldApp.java

运行Java程序则可以使用JDK提供的解释器是java.exe。例如:

java HelloWorldApp

2. 下载并安装JDK软件包,3. 尝试查看其中的JDK文档。 答: Java编程的基本工具包是JDK(Java Development Kit)。JDK是Sun公司免费提供的开发、运行Java程序的基本软件,它可以在Windows及Unix两种平台下使用。常用的版本是JDK1.2.2, JDK1.3.0,JDK1.4等。可以从http://java.sun.com网站下载较新的版本,如JDK1.5(也称为JDK5.0)。

JDK文档也可以从网上下载。

3.编写一个Java Application,利用JDK软件包中的工具编译并运行这个程序,在屏幕上输出“Welcome to Java World!”。

答:见程序。 public class Ex2_3 { public static void main(String[] args) { System.out.println(\ } } 4.编写一个Java Applet,使之能够在浏览器中显示“Welcome to Java Applet World!”的字符串信息。

答:见程序。import java.awt.*; import java.applet.*;

public class Ex2_4 extends Applet { //an applet public void paint(Graphics g){ g.drawString (\ World!\ } }

5.编写一个HTML文件,将上题中生成的Applet字节码嵌入其中,并用WWW浏览器观看这个HTML文件规定的Web页面。

答:与上一题同。

6.编写一个程序,能够从键盘上接收两个数字,然后计算这两个数的积。 答:见程序。import java.io.*; public class Ex2_6 { public static void main(String[] args) { String s = \ double c = 0; double d = 0; try{ BufferedReader in = new BufferedReader( new InputStreamReader( System.in ) ); System.out.print(\请输入一个数: \ s = in.readLine();

c = Double.parseDouble( s ); System.out.print(\请输入另一个数: \ s = in.readLine(); d = Double.parseDouble( s ); }catch(IOException e){} System.out.println(\这两个数的积为: \ } }

7.编写一个程序,从两个文本框中接收两个数字,然后计算这两个数的积。 答:见程序。import java.applet.*; import java.awt.*;

import java.awt.event.*;

public class Ex2_7 extends Applet { TextField in1 = new TextField(10); TextField in2 = new TextField(10); Button btn = new Button(\求两个数的积\ Label out = new Label(\用于显示结果的标签\ public void init() { setLayout( new FlowLayout() ); add( in1 ); add( in2 ); add( btn ); add( out ); btn.addActionListener( new BtnActionAdapter() ); } class BtnActionAdapter implements ActionListener { public void actionPerformed( ActionEvent e ) { String s1 = in1.getText(); double d1 = Double.parseDouble( s1 ); String s2 = in2.getText(); double d2 = Double.parseDouble( s2 ); double result = d1 * d2; out.setText( d1 + \ } } }

8.常用的集成开发工具有哪些?各有什么特点?

答:常用的集成开发工具包括:Borland公司出品的Jbuilder, Sun公司出品的Java Workshop, IBM公司的Visual Age for Java,Oracle公司的Java Develop,等等。另外,Symantec公司的Visual Café 也是著名的Java开发工具。近来,Eclipse也是使用很广的集成开发工具。

第3章 数据运算、流控制、数组

1.简述Java程序的构成。如何判断主类?下面的程序有几处错误?如何改正,这个程序的源代码应该保存成什么名字的文件? public class MyJavaClass