JAVA语言与面向对象程序设计课后习题答案.pdf
《JAVA语言与面向对象程序设计课后习题答案.pdf》由会员分享,可在线阅读,更多相关《JAVA语言与面向对象程序设计课后习题答案.pdf(53页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第1章 面向对象软件开发概述1.简述面向过程问题求解和方向对象问题求解的异同。试列举出面向对象和面向过程的编程语言各两种。答:面向过程问题求解,以具体的解题过程为研究和实现的主体,其思维特点更接近于计算机;面向对象的问题求解,则是以“对象”为主体,“对象”是现实世界的实体或概念在计算机逻辑中的抽象表示,更接近于人的思维特点。面向过程的编程语言:C,Pascal,Foratn面向对象的编程语言:C+,Java,C#o2.简述对象、类和实体及它们之间的相互关系。尝试从日常接触到的人或物中抽象出对象的概念。答:面向对象技术中的对象就是现实世界中某个具体的物理实体在计算机逻辑中的映射和体现。类是同种对
2、象的集合与抽象。类是一种抽象的数据类型,它是所有具有一定共性的对象的抽象,而属于类的某一个对象则被称为是类的一个实例,是类的次实例化的结果。如果类是抽象的概念,如“电视机”,那么对象就是某一个具体的电视机,如“我家那台电视机3.对象有哪些属性?什么是状态?什么是行为?二者之间有何关系?设有对象“学生”,试为这个对象设计状态与行为。答:对象都具有状态和行为。对象的状态又称为对象的静态属性,主要指对象内部所包含的各种信息,也就是变量。每个对象个体都具有自己专有的内部变量,这些变量的值标明了对象所处的状态。行为又称为对象的操作,它主要表述对象的动态属性,操作的作用是设置或改变对象的状态。学生的状态:
3、姓名、性别、年龄、所在学校、所在系别、通讯地址、电话号码、入学成绩等;学生的行为:自我介绍、入学注册、选课、参加比赛等。4.对象间有哪三种关系?对象“班级”与对象“学生”是什么关系?对象“学生”与对象“大学生”是什么关系?答:对象间可能存在的关系有三种:包含、继承和关联。对象“班级”与对象“学生”是包含关系。对象“学生”与对象“大学生”是继承关系。5.有人说“父母”和 子女”之间是继承的关系。这种说法是否正确?为什么?答:“父母”和“子女之间不是面向对象意义上的“继承”关系。因为这里的继承关系是“is a”的关系,“男人”与 人 之间可以说是继承关系。6.面向对象的软件开发包括哪些过程?OOA
4、模型包括哪三个层次?OOD模型在00A模型的基础上引入了哪些工作?答:面向对象的软件开发过程可以大体划分为面向对象的分析(Object Oriented analysis.00A)、面 向对象的设计(Object oriented design,OOD)、面 向对象的实现(Object orientedprogramming,OOP)三个阶段。面向对象的分析的主要作用是明确用户的需求,并用标准化的面向对象的模型规范地表述这一需求,最后将形成面向对象的分析模型。面向对象的设计将在00A模型的基础上引入界面管理、任务管理和数据管理三部分的内容。7.面向对象的程序设计方法有哪些优点?答:由于对象的概
5、念能够以更接近实际问题的原貌和实质的方式来表述和处理这些问题,所以面向对象的软件开发方法比以往面向过程的方法有更好的灵活性、可重用性和可扩展性,使得上述“分析一设计一实现”的开发过程也更加高效、快捷。第 2 章 Java概述1.简述Java编译和运行的基本方法。答:编译可以使用JDK中的工具javac.exe。例如:javac HelloWorldApp.java运行Java程序则可以使用JDK提供的解释器是java.exe。例如:java HelloWorldApp2.下载并安装JDK软件包,3.尝试查看其中的JDK文档。答:Java编程的基本工具包是JDK(Java Development
6、 Kit)o JDK是Sun公司免费提供的开发、运行Java程序的基本软件,它可以在Windows及Unix两种平台下使用。常用的版本是JDK1.2.2,JDK1.3.0,JDK1.4等。可以从http:网站下载较新的版本,如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.print
7、lWelcom to java vorldH);4.编写一个Java Applet,使之能够在浏览器中显示“Welcome to Java Applet World!”的字符串信息。答:见程序。import java.awt.*;import java.applet.*;public class Ex2_4 extends Applet /an appletpublic void paint(Graphics g)g.drawString(Welcome to Java Applet World!,20,20);5.编写一个HTML文件,将上题中生成的Applet字节码嵌入其中,并用WWW浏览
8、器观看这个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=DoubIe.pa
9、rseDouble(s);System.out.print(请输入另个数:);s=in.readLine();d=Double.parseDouble(s);catch(IOException e)System.out.printing这两个数的积为:”+(c*d);)7.编写一个程序,从两个文本框中接收两个数字,然后计算这两个数的积。答:见程序。import java.applet.*;import java.awt.*;import java.awt.event.*;public class Ex2_7 extends Applet(TextField ini=new TextField(
10、lO);TextField in2=new TextField(lO);Button btn=new Button(”求两个数的积”);Label out=new Label(用于显示结果的标签)public void init()(setLayout(new FlowLayout();add(ini);add(in2);add(btn);add(out);btn.addActionListener(new BtnActionAdapter();class BtnActionAdapter implements ActionListener(public void actionPerfonne
11、d(ActionEvent e)(String si=inl.getText();double dl=Double.parseDouble(si);String s2=in2.getText();double d2=Double.parseDouble(s2);double result=dl*d2;out.setText(dl+X+d2+result);8.常用的集成开发工具有哪些?各有什么特点?答:常用的集成开发工具包括:Borland公司出品的Jbuilder,Sun公司出品的Java Workshop,IBM公司的Visual Age for Java,Oracle公司的Java De
12、velop,等等。另外,Symantec公司的VisualC afe也是著名的Java开发工具。近来,氏lipse也是使用很广的集成开发工具。第3章 数 据 运 算、流控制、数组1.简述Java程序的构成。如何判断主类?下面的程序有几处错误?如何改正,这个程序的源代码应该保存成什么名字的文件?public class MyJavaClasspublic static void main()System,out.printin A m I wrong?);)System.out.p rin tin(程序结束。);答:一个复杂的程序可由一个至多个Java源程序文件构成,每个文件中可以有多个类定义。
13、一般的Java源程序文件由以下三部分组成:package 语句;(0句一1句)im port语句;(0句一多句)类定义(1个一多个类定义)这里所说的主类是指程序中含有main()方法的类。上面的示例程序中的错误主要在于拼写,如:点及分号应该用西文的;printin中的大写字母I应改为小写字母1;另外,main。方法应该带参数,改为:public static void main(String argvs)import java.applet.*;import java.awt.*;import java.awt.event.*;public class Ex2_7 extends Applet
14、(TextField ini=new TextField(lO);TextField in2=new TextField(lO);Button btn=new Button(”求两个数的积”);Label out=new Label(用于显示结果的标签)public void init()(setLayout(new FlowLayout();add(ini);add(in2);add(btn);add(out);btn.addActionListener(new BtnActionAdapter();)class BtnActionAdapter implements ActionListe
15、ner(public void actionPerformed(ActionEvent e)(String si=inl.getText();double dl=Double.parseDouble(si);String s2=in2.getText();double d2=Double.parseDouble(s2);double result=dl*d2;out.setText(dl+X+d2+”=+result);2.Java有哪些基本数据类型?写出int型所能表达的最大、最小数据。答:Java中定义了4类/8种基本数据类型:(1)逻辑型-boolean(2)整数型-byte,short
16、,int,long(3)浮点数型-float,double(4)字符型char其中整型int占4个字节,其范围为-2147483648-2147483647。3.Java的字符采用何种编码方案?有何特点?写出五个常见的转义符。答:char(字符型)是用Unicode编码表达的字符,在内存中占两个字节。由于Java的字符类型采用了一种新的国际标准编码方案Unicode编码,这样便于东方字符和西方字符处理,这样与其他语言相比,Java处理多语种的能力大大加强。常见的转义符,如:,单引号字符双引号字符W 反斜杠字符r 回车 n换行4.Java对标识符命名有什么规定,下面这些标识符哪些是对的?哪些是错
17、的?错在哪里?(l)MyGame(2)_isHers(3)2JavaProgram(4)Java-Visual-Machine(5)_$abc答:标识符可以由编短者自由指定,但是需要遵循一定的语法规定。标识符要满足如下的规定:(1)标识符可以由字母、数字和下划线(_)、美元符号($)组合而成。(2)标识符必须以字母、下划线或美元符号开头,不能以数字开头。在实际应用标识符时,应该使标识符能一定程度上反映它所表示的变量、常量、对象或类的意义,这样程序的可读性会更好。题中的标识符中的(3)不对,因为用数字开头了,(4)也不对,因为其中用了减号。5.什么是常量?什么是变量?字符变量与字符串常量有何不同
18、?答:常量是在程序运行的整个过程中保持其值不改变的量。变量是在程序的运行过程中数值可变的数据,通常用来记录运算中间结果或保存数据。字符变量中存放一个字符,字符串常量中存放一串字符。6.什么是强制类型转换?在什么情况下需要用到强制类型转换?答:强制类型的基本方式是指用以下方式显式地进行数据类型的转换:(类型)表达式一般地说,在赚值运算符两侧的类型不一致的情况下,则需要进行自动或强制类型转换。变量从占用内存较少的短数据类型转化成占用内存较多的长数据类型时,可以不做显式的类型转换,Java会自动转换;而将变量从较长的数据类型转换成较短的数据类型时,则必须做强制类型转换。7.Java有哪些算术运算符、
19、关系运算符、逻辑运算符、位运算符和赋值运算符?试列举单目和三目运算符。答:在Java中,按照运算符功能来分,基本的运算符有下面几类:1.算术运算符(+,*,/,%,+,一)2.关系运算符(,=,)5.赋值运算符(=,及其扩展赋值运算符如+=)6.条件运算符(?:)7.其他(包括分量运算符,下标运算符口,实例运算符instanceof,内存分配运算符new,强制类型转换运算符(类型),方法调用运算符()等)其中,单目运算符如而三目运算符只有一个,即条件运算符(?:)。8.编写一个字符界面的Java Application程序,接受用户输入的一个浮点数,把它的整数部分和小数部分分别输出。答:见程序
20、。/*原来的程序public class MyJavaClass(public static void main()(Sy stem.out.printing Am I wrong?1);)Sy stem.out.printing程序结束。”);*/public class Ex3_l(public static void main(String args)(System.out.println(uAm I wrong?);System.out.printin(程序结束 ”);)9.编写一个字符界面的Java Application程序,接受用户输入的10个整数,比较并输出其中的最大值和最小值
21、。答:见程序。import java.io.*;public class Ex3_9(public static void main(String args)(intN=10;int a=new intN;声明数组并分配空间try(BufferedReader in=new BufferedReader(new InputStreamReader(System.in);for(int i=0;iN;i+)System.out.print(请输入第”+(i+l)+”个整数:String s=in.readLine();ai=Integer.parselnt(s);)int max=a0;int
22、min=a0;for(int i=l;iN;i+)if(max ai)min=ai;)System.out.println(最大数为:“+max);System.out.println(最小数为:+min);catch(lOException e)1 0.编写个字符界面的Java Application程序,接受用户输入的字符,以“铲 标志输入的结束;比较并输出按字典序最小的字符。答:见程序。import java.io.*;public class Ex3_10public static void main(String args)(char min=Auffff;System.out.pr
23、int(请输入一串字符,以#结束:);while(true)(char c=*;try(c=(char)System.in.read();catch(IOException e)if(c=#)break;if(min c)min=c;)System.out.println(n其中最小的字符是:+min);)11.结构化程序设计有哪三种基本流程?分别对应Java中的哪些语句?答:任何程序都可以且只能由三种基本流程结构构成,即顺序结构、分支结构和循环结构。顺序结构直接书写,分支结构用if及switch语句书写,循环结构用for、while及do语句来书写。12.编写一个Java程序,接受用户输入的
24、一个1-12之间的整数(如果输入的数据不满足这个条件,则要求用户重新输入),利用switch语句输出对应月份的天数。答:见程序。importjava.io.*;public class Ex3_12(public static void main(String args)(lryBufferedReader in=new BufferedReader(new InputStreamReader(System.in);int a=0;doSystem.out.print(请输一个 1 12的整数:*);String s=in.readLine();a=Integer.parselnt(s);wh
25、ile(a 12);switch(a)case 1:System.out.println(一 月)break;case 2:System.out.println(二月)break;case 3:Syslem.oul.println(“三月 );break;case 4:System.out.println(四月)break;case 5:System.out.println(“五月)break;case 6:System.oul.println(六月)break;case 7:System.out.println(七月)break;case 8:System.out.println(八 月)b
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 语言 面向 对象 程序设计 课后 习题 答案
限制150内