ImageVerifierCode 换一换
格式:DOCX , 页数:53 ,大小:88.16KB ,
文档编号:5811006      下载积分:30 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-5811006.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(最好的沉淀)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(JAVA语言与面向对象程序设计课后习题答案.docx)为本站会员(最好的沉淀)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

JAVA语言与面向对象程序设计课后习题答案.docx

1、第 1 章面向对象软件开发概述1. 简述面向过程问题求解和面向对象问题求解的异同。试列举出面向对象和面向过程的 编程语言各两种。答:面向过程问题求解,以具体的解题过程为研究和实现的主体,其思维特点更接近于计 算机;面向对象的问题求解,则是以“对象”为主体,“对象”是现实世界的实体或概念在计算机 逻辑中的抽象表示,更接近于人的思维特点。面向过程的编程语言:C,Pascal, Foratn。面向对象的编程语言:C+, Java,C#。2. 简述对象、类和实体及它们之间的相互关系。尝试从日常接触到的人或物中抽象出对 象的概念。答:面向对象技术中的对象就是现实世界中某个具体的物理实体在计算机逻辑中的映

2、射和 体现。类是同种对象的集合与抽象。类是一种抽象的数据类型,它是所有具有一定共性的对象 的抽象,而属于类的某一个对象则被称为是类的一个实例,是类的一次实例化的结果。如果类 是抽象的概念,如“电视机”,那么对象就是某一个具体的电视机,如“我家那台电视机”。3. 对象有哪些属性?什么是状态?什么是行为?二者之间有何关系?设有对象“学生”,试为这个对象设计状态与行为。答:对象都具有状态和行为。对象的状态又称为对象的静态属性,主要指对象内部所包含的各种信息,也就是变量。每 个对象个体都具有自己专有的内部变量,这些变量的值标明了对象所处的状态。行为又称为对象的操作,它主要表述对象的动态属性,操作的作用

3、是设置或改变对象的状态。学生的状态:姓名、性别、年龄、所在学校、所在系别、通讯地址、电话号码、入学成绩等;学生的行为:自我介绍、入学注册、选课、参加比赛等。4. 对象间有哪三种关系?对象“班级”与对象“学生”是什么关系?对象“学生”与对象“大学生”是什么关系?答:对象间可能存在的关系有三种:包含、继承和关联。对象“班级”与对象“学生”是包含关系。对象“学生”与对象“大学生”是继承关系。5. 有人说“父母”和“子女”之间是继承的关系。这种说法是否正确?为什么?答:“父母”和“子女”之间不是面向对象意义上的“继承”关系。因为这里的继承关系是“is a”的关系,“男人”与“人”之间可以说是继承关系。

4、6. 面向对象的软件开发包括哪些过程?OOA模型包括哪三个层次?OOD模型在OOA模型的基础上引入了哪些工作?答:面向对象的软件开发过程可以大体划分为面向对象的分析 (Object Oriented analysis, OOA) 、面向对象的设计 (Object oriented design , OOD) 、面向对象的实现 (Object oriented programming,OOP)三个阶段。面向对象的分析的主要作用是明确用户的需求,并用标准化的面向对象的模型规范地表述 这一需求,最后将形成面向对象的分析模型。面向对象的设计将在 OOA模型的基础上引入界面管理、任务管理和数据管理三部分

5、的内容。7. 面向对象的程序设计方法有哪些优点?答:由于对象的概念能够以更接近实际问题的原貌和实质的方式来表述和处理这些问题,所以面向对象的软件开发方法比以往面向过程的方法有更好的灵活性、可重用性和可扩展性,2Java使得上述“分析设计实现”的开发过程也更加高效、快捷。第章概述1. 简述Java编译和运行的基本方法。答:编译可以使用JDK中的工具javac.exe。例如:javacHelloWorldApp.java运行Java程序则可以使用JDK提供的解释器是java.exe。例如:java HelloWorldApp2. 下载并安装JDK软件包,3尝试查看其中的JDK文档。答: Java编

6、程的基本工具包是JDK(Java Development Kit )。JDK是Sun公司免费提供的开发、运行 Java程序的基本软件,它可以在 Windows及Unix两种平台下使用。常用的版本是JDK1.2.2, JDK1.3.0,JDK1.4等。可以从网站下载较新的版本,如JDK1.5(也称为JDK5.0)。JDK文档也可以从网上下载。3. 编写一个Java Application,利用JDK软件包中的工具编译并运行这个程序,在屏幕上输出“Welcome to Java World!”。答:见程序。public class Ex2_3public static void main(Stri

7、ng args)System.out.println(Welcom to java vorld);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 (Welcome to Java Applet World!,20,20);5. 编写一个HTML文

8、件,将上题中生成的Applet字节码嵌入其中,并用WWW浏览器观看这个HTML文件规定的Web页面。答:与上一题同。 6编写一个程序,能够从键盘上接收两个数字,然后计算这两个数的积。答:见程序。import java.io.*;public class Ex2_6public static void main(String args)String s = ; double c = 0; double d = 0; tryBufferedReader in = new BufferedReader( new InputStreamReader( System.in ) );System.out.

9、print(请输入一个数: ); s = in.readLine();c = Double.parseDouble( s ); System.out.print(请输入另一个数: ); s = in.readLine();d = Double.parseDouble( s );catch(IOException e)System.out.println(这两个数的积为: + (c * d) );7. 编写一个程序,从两个文本框中接收两个数字,然后计算这两个数的积。答:见程序。import java.applet.*;import java.awt.*; import java.awt.even

10、t.*;public classEx2_7 extends AppletTextField 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 BtnAction

11、Adapter() );class BtnActionAdapter implements ActionListenerpublic 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 + X + d2 += + result);8. 常用的

12、集成开发工具有哪些?各有什么特点?答:常用的集成开发工具包括:Borland公司出品的Jbuilder, Sun公司出品的Java Workshop,第 3 章IBM公司的Visual Age for Java,Oracle公司的Java Develop,等等。另外,Symantec公司的Visual Caf 也是著名的Java开发工具。近来,Eclipse也是使用很广的集成开发工具。数据运算、流控制、数组1. 简述Java程序的构成。如何判断主类?下面的程序有几处错误?如何改正,这个程序的 源代码应该保存成什么名字的文件?public class MyJavaClasspublic stat

13、ic void main()System.outprintIn(Am I wrong?);System.outprintIn(程序结束。);答:一个复杂的程序可由一个至多个Java源程序文件构成,每个文件中可以有多个类定义。 一般的Java源程序文件由以下三部分组成:package 语句;(0句1句) import 语句;(0句多句)类定义(1个多个类定义)这里所说的主类是指程序中含有main()方法的类。上面的示例程序中的错误主要在于拼写,如:点及分号应该用西文的; printIn中的大写字母I应改为小写字母l;另外,main()方法应该带参数,改为:public static void m

14、ain(String argvs) import java.applet.*;import java.awt.*; import java.awt.event.*;public classEx2_7 extends AppletTextField in1 = new TextField(10); TextField in2 = new TextField(10);Button btn = new Button(求两个数的积); Label out = new Label(用于显示结果的标签); public void init()setLayout( new FlowLayout() ); a

15、dd( in1 );add( in2 );add( btn );add( out );btn.addActionListener( new BtnActionAdapter() );class BtnActionAdapter implements ActionListenerpublic void actionPerformed( ActionEvent e )String s1 = in1.getText();double d1 = Double.parseDouble( s1 ); String s2 = in2.getText();double d2 = Double.parseDou

16、ble( s2 ); double result = d1 * d2;out.setText( d1 + X + d2 += + result);2. Java有哪些基本数据类型?写出int型所能表达的最大、最小数据。 答:Java中定义了4类/8种基本数据类型:(1) 逻辑型boolean(2) 整数型byte, short, int, long(3) 浮点数型float, double(4) 字符型char其中整型int占4个字节,其范围为 -2147483648-2147483647。3Java的字符采用何种编码方案?有何特点?写出五个常见的转义符。答:char(字符型)是用Unicod

17、e编码表达的字符,在内存中占两个字节。由于Java的字符类型 采用了一种新的国际标准编码方案Unicode编码,这样便于东方字符和西方字符处理,这样与其他语言相比,Java处理多语种的能力大大加强。常见的转义符,如:单引号字符双引号字符反斜杠字符r回车n换行4. Java对标识符命名有什么规定,下面这些标识符哪些是对的?哪些是错的?错在哪里? (1)MyGame (2)_isHers(3)2JavaProgram (4)Java-Visual-Machine (5)_$abc答:标识符可以由编程者自由指定,但是需要遵循定的语法规定。标识符要满足如下的 规定:(1)标识符可以由字母、数字和下划线

18、(_)、美元符号($)组合而成。 (2)标识符必须以字母、下划线或美元符号开头,不能以数字开头。在实际应用标识符时,应该使标识符能一定程度上反映它所表示的变量、常量、对象或类 的意义,这样程序的可读性会更好。题中的标识符中的(3)不对,因为用数字开头了,(4)也不对,因为其中用了减号。5. 什么是常量?什么是变量?字符变量与字符串常量有何不同?答:常量是在程序运行的整个过程中保持其值不改变的量。变量是在程序的运行过程中数 值可变的数据,通常用来记录运算中间结果或保存数据。字符变量中存放一个字符,字符串常量中存放一串字符。6. 什么是强制类型转换?在什么情况下需要用到强制类型转换?答:强制类型的

19、基本方式是指用以下方式显式地进行数据类型的转换:(类型)表达式一般地说,在赋值运算符两侧的类型不一致的情况下,则需要进行自动或强制类型转换。 变量从占用内存较少的短数据类型转化成占用内存较多的长数据类型时,可以不做显式的类型 转换,Java会自动转换;而将变量从较长的数据类型转换成较短的数据类型时,则必须做强制类型转换。7. Java有哪些算术运算符、关系运算符、逻辑运算符、位运算符和赋值运算符?试列举单目和三目运算符。答:在Java中,按照运算符功能来分,基本的运算符有下面几类: 1算术运算符(+,-,*,/,%,+,-)2关系运算符(,=,&,|,)5. 赋值运算符(=,及其扩展赋值运算符

20、如+=)6. 条件运算符( ?:)7. 其他 (包括分量运算符,下标运算符 ,实例运算符instanceof,内存分配运算符new,强制类型转换运算符 (类型),方法调用运算符 () 等)其中,单目运算符如-,!,而三目运算符只有一个,即条件运算符(?: )。8. 编写一个字符界面的Java Application程序,接受用户输入的一个浮点数,把它的整数部分和小数部分分别输出。答:见程序。/* 原来的程序public class MyJavaClasspublic static void main()System.outprintIn(Am I wrong?);System.outprint

21、In(程序结束。);*/public class Ex3_1public static void main(String args)System.out.println(Am I wrong?); System.out.println(程序结束。);9. 编写一个字符界面的Java Application程序,接受用户输入的10个整数,比较并输出其中的最大值和最小值。答:见程序。import java.io.*; public class Ex3_9public static void main(String args)int N = 10;int a = new intN; /声明数组并分配

22、空间tryBufferedReader in = new BufferedReader( new InputStreamReader( System.in ) );for( int i=0; iN; i+ )System.out.print(请输入第 + (i+1) +个整数: ); String s = in.readLine();ai= Integer.parseInt( s );int max = a0; int min = a0;for( int i=1; iN; i+ )if( max ai ) min = ai;System.out.println( 最大数为: + max );

23、System.out.println( 最小数为: + min );catch(IOException e)10. 编写一个字符界面的Java Application程序,接受用户输入的字符,以“#”标志输入的结束;比较并输出按字典序最小的字符。答:见程序。import java.io.*;public class Ex3_10public static void main(String args)char min = uffff;System.out.print(请输入一串字符,以#结束:); while( true )char c = ; tryc = (char) System.in.r

24、ead();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程序,接受用户输入的一个l-12之间的整数(如果输入的数据不满足这个条件,则要求用户重新输入),利用switch语句

25、输出对应月份的天数。答:见程序。import java.io.*; public class Ex3_12public static void main(String args)tryBufferedReader in = new BufferedReader( new InputStreamReader( System.in ) );int a = 0; doSystem.out.print(请输一个112的整数: ); String s = in.readLine();a = Integer.parseInt( s );while( a 12 );switch( a )case 1: Sy

26、stem.out.println(一月); break; case 2: System.out.println(二月); break; case 3: System.out.println(三月); break; case 4: System.out.println(四月); break; case 5: System.out.println(五月); break; case 6: System.out.println(六月); break; case 7: System.out.println(七月); break;case 8: System.out.println(八月); break;

27、 case 9: System.out.println(九月); break; case 10: System.out.println(十月); break; case 11: System.out.println(十一月); break; case 12: System.out.println(十二月); break; default: break;catch(IOException e)13. 在一个循环中使用break,continue和return语句有什么不同的效果?答:break是结束循环;continue是直接进行下一次循环;return则是结束整个函数的调用。14. 编写图形界

28、面下的Java Applet程序,接受用户输入的两个数据为上、下限,然后10个一行输出上、下限之间的所有素数。import java.applet.*; import java.awt.*; import java.awt.event.*;public classEx3_14 extends AppletTextField in1 = new TextField(10); TextField in2 = new TextField(10);Button btn = new Button(求两个数之间的素数); TextArea out = new TextArea(10,100); /用于输出

29、public void init()setLayout( new FlowLayout() ); add( in1 );add( in2 );add( btn );add( out );btn.addActionListener( new BtnActionAdapter() );class BtnActionAdapter implements ActionListenerpublic void actionPerformed( ActionEvent e )String s1 = in1.getText();int a1 = Integer.parseInt( s1 ); String s

30、2 = in2.getText();double a2 = Integer.parseInt( s2 );String result = ; /结果int cnt = 0; /计算素数的个数for( int i = a1; i=a2; i+ )if( isPrime( i ) )result +=(+i); /如果是素数,则加入cnt +;if( cnt % 10 = 0 ) result += rn; else result += t;out.setText( result);public boolean isPrime( int a )/判断一个数是否是素数if( a = 1 ) retu

31、rn false; for( int i=2; ia; i+ )if( a % i = 0 ) return false; return true;15. 编写程序输出用户指定数据的所有素数因子。答:见程序。import java.io.*;public class Ex3_15public static void main(String args)tryBufferedReader in = new BufferedReader( new InputStreamReader( System.in ) );System.out.print(请输入一个正整数: ); String s = in.

32、readLine();int a= Integer.parseInt( s );System.out.println( a + 的所有素因子包括: ); for( int i=2; i=a; i+ )if( a%i=0 & isPrime(i) ) System.out.println( i );catch(IOException e)public static boolean isPrime( int a )/判断一个数是否是素数if( a = 1 ) return false; for( int i=2; ia; i+ )if( a % i = 0 ) return false; retu

33、rn true;16. 什么是数组?数组有哪些特点?Java中创建数组需要使用哪些步骤?如何访问数组的一个元素?数组元素的下标与数组的长度有什么关系?答:数组是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的 数组名和下标来惟一地确定数组中的元素。数组要进行定义和分配空间后才能使用。一维数组的定义方式为:typearrayName ;或 type arrayName;分配内存空间则要用到运算符new,其格式如下:arrayName = new typearraySize;当定义了一个数组,并用运算符new为它分配了内存空间后,就可以引用数组中的每一个元素了。数组元素的引用方

34、式为:arrayNameindex数组元素的下标从0开始,一直到数组的长度减1。17. 数组元素怎样进行缺省的初始化?答:数组元素可以在定义数组的同时进行初始化。例如:int a = 1,2,3,4,5;用逗号(,)分隔数组的各个元素,系统自动为数组分配一定的空间。18. 编程求一个整数数组的最大值、最小值、平均值和所有数组元素的和。答:见程序。import java.io.*;public class Ex3_18public static void main(String args)int N = 100;int a = new intN; for( int i=0; iN; i+ ) a

35、i=(int) (Math.random()*100); /为了简单,这里赋随机值int sum = 0; int max = a0; int min = a0;for( int i=0; iN; i+ ) sum += ai;if( max ai ) min = ai;System.out.println( 最 大 值 : + max ); System.out.println( 最 小 值 : + min ); System.out.println( 总 和 : + sum ); System.out.println( 平均值: + (double)sum/N) );19. 求解“约瑟夫问

36、题”:12个人排成一圈,从1号报数,凡是数到5的人就出队列(出局),然后继续报数,试问最后一人出局的是谁。答:import java.io.*; public class Ex3_19public static void main(String args)int N = 12;boolean a = new booleanN; /队列状态for( int i=0; iN; i+ ) ai=true;int i =0; /当前报数的人的下标int s = 0; /当前报的数字int cnt = 0; /已有多少人出局while(true)if( ai ) s+; /如果在队列中,则报数if( s

37、 = 5 )/如果数到5System.out.println( (i+1) ); /显示该人的序号ai = false; /该人出局s = 0; /报的数归0 cnt +;if( cnt = N )break; /全部的人都出局,结束i+; /到下一个人if( i=N) i=0; /因为队伍是一个圆圈20. 用“埃氏筛法”求2-100以内的素数。2-100以内的数,先去掉2的倍数,再去掉3的倍数, 再去掉4的倍数,以此类推最后剩下的就是素数。答:见程序。import java.io.*; public class Ex3_20public static void main(String arg

38、s)int N = 100;boolean a = new booleanN+1; for( int i=0; i=N; i+ ) ai=true;for( int i=2; i=N; i+ )for( int j=2*i; j=N; j += i ) aj = false;for( int i=2; i=N; i+ )if( ai ) System.out.println( i );第4 章类、包和接口1. 使用抽象和封装有哪些好处?答:抽象可以提供事物的本质特征。封装(Encapsulation)是这样一种编程机制,它把代码和 其操作的数据捆绑在一起,从而防止了外部对数据和代码的干扰和滥用

39、,保证了数据和代码的 安全性。2. 编写一个Java程序片断定义一个表示学生的类student,包括域“学号”、”班号”、“姓名”、“性别”、“年龄”;方法“获得学号”、“获得班号”、“获得性别”、“获得年龄”、“修改年龄”。class public class exercise7 public static void main(String args)Student stu = new Student(Student,200345,18,2班); System.out.println(stu.toString();class StudentprivateString stuNumber; p

40、rivateString stuClass; privateString stuName; privateint stuAge;Student(String name,String number, int age, String cls)stuName = name; stuNumber = number; stuClass = cls; stuAge = age;public StringgetStuNumber()return stuNumber;publicString getStuClass()return stuClass;publicString getStuName()retur

41、n stuName;publicint getStuAge()return stuAge;publicvoid setStuAge(int age)stuAge = age;public String toString()String infor = 学生姓名:+ getStuName()+n+学生年龄:+ getStuAge()+n+ 学生班级:+getStuClass()+n+学生学号:+getStuNumber()+n;return infor;3. 为student类定义构造方法初始化所有的域,增加一个方法public String toString()把Sttldent类对象的所有域

42、信息组合成一个字符串。编写Application程序检验新增的功能。答:见程序。class Ex4_3public static void main(String args)Student s = new Student( 09918076, 软件专业班, 李明, true, 18 );System.out.println( s );class Student/学号、班号、姓名、性别、年龄 String id;String classId; String name; boolean sex; int age;public String getId() return id; public Str

43、ing getClassId() return classId; public String getName() return name; public boolean getSex() return sex; public int getAge() return age; public void setAge(int age) this.age = age; public Student( String id, String classId, String name, boolean sex, int age )this.id = id; this.classId = classId; this.name = name;public String toString() this.age = age; this.sex = sex;return name + id + classId + age + 岁, +(sex ? 男 : 女 ) ;4. 什么是最终类,如何定义最终类?试列举最终类的例子。答:最终类是指类被final修饰符所修饰和限定的类,最终类不能被继承,即不可能有子类。如Java中的String类就是最终类。5. 如何定义静态域?静态域有什么特点?如何访问和修改静态域的数据?答:对域使用static修饰,则定义了静态域。静态域最本

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|