浙江大学远程教育学院
《高级程序设计JAVA》课程作业(选做)
姓名: 年级:
学 号: 学习中心:
第一章
1.简述面向过程问题求解和面向对象问题求解的异同。 两者都是运用计算机来解决一定问题而制作的软件程序。
1)中心思想不同。前者是用计算机能够理解的逻辑来描述和表达待解决的问题及其具体的解决过程。后者是以具体的解题过程为研究和实现的主体。2)核心组成不同。数据结构、算法是面向过程问题求解的核心组成。对象、类与实体是对象问题求解的核心组成。3)解决方法不同。前者将现实世界的问题抽象成计算机可以理解和处理的数据结构,后者是要让计算机逻辑来模拟现实世界的物理存在,让计算机世界向现实世界靠拢。
2.面向对象的程序设计方法有哪些优点?
优点:1)可重用性,一个软件项目中所开发的模块,能够不仅限于在这个项目中使用,而且可以重复地使用在其他项目中,从而在多个不同的系统中发挥作用。2)可扩展性,对现代应用软件提出的又一个重要要求,即要求应用软件能够很方便、容易地进行扩充和修改,这种扩充和修改的范围不但涉及到软件的内容,也涉及到软件的形式和工作机制。可扩展性使得面向对象程序设计法特别适合于在快速原型的软件开发方法中使用,也体现它对模块化技术的更有效的支持。3)可管理性,面向对象的开发方法采用内涵比过程和函数丰富、复杂得多的类作为构建系统的部件,使整个项目的组织更加合理、方便。
第二章
1. 编写一个Java Application,利用JDK软件包中的工具编译并运行这个程序,在屏幕
上输出“Welcome to Java World!”。 public class Ex2_3 { public static void main(String[] args) { System.out.println(\"Welcom to java vorld\"); } }
2. 编写一个Java Applet,使之能够在浏览器中显示“Welcome to Java Applet World!”
的串信息。
import java.applet.*;
public class Ex2_4 extends Applet { //an applet public void paint(Graphics g){ g.drawString (\"Welcome to Java Applet World!\ } }
3. Java 语言有哪些主要特点?
1)平台无关性。其独特的运行机制使得它具有良好的二进制级的可移植性,利用Java,开发人员可编写出与具体平台无关、普遍适用的应用程序,大大降低了开发、维护和管理的开销。2)面向对象。3)安全稳定。特有的“沙箱”机制是其安全性的保障。4)支持多线程。允许同一个程序有两个执行线索,满足一些复杂软件的需求。5)简单易学。去除C++中不容易理解和掌握的部分,同时保证它的基本语法部分与C语言几乎一模一样,降低学习难度。
第三章习题:
1. 编写程序输出用户指定数据的所有素数因子
public class Ex3_15
{ public static void main(String[] args) { try{ BufferedReader in = new BufferedReader( new InputStreamReader( System.in ) ); System.out.print(\"请输入一个正整数: \"); String s = in.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; i2. 编写一个Java程序,接受用户输入的一个1――12之间的整数(如果输入的数据不满足这个 条件,则要求用户重新输入),利用switch语句输出对应的月份的天数。 3. Java对标识符命名有什么规定,下面这些标识符哪些是对的?哪些是错的,错在哪里? (1) MyGame (2)_isHers (3) 2JavaProgram (4) Java-Visual-Machine (5) _$abc 答:标识符可以由编程者自由指定,但是需要遵循—定的语法规定。标识符要满足如下的规定: (1)标识符可以由字母、数字和下划线(_)、美元符号($)组合而成。 (2)标识符必须以字母、下划线或美元符号开头,不能以数字开头。 在实际应用标识符时,应该使标识符能一定程度上反映它所表示的变量、常量、对象 或类的意义,这样程序的可读性会更好。 题中的标识符中的(3)不对,因为用数字开头了,(4)也不对,因为其中用了减号。 第四章 1. 有哪些访问控制符?哪些可用于修饰类,哪些用来修饰域和方法,试述不同访问控制符作用。 答:访问控制符是指public/private/protected等表示访问控制(Access Control)的修饰符,其作用是更好地控制类及其域、方法的存取权限,更好地实现信息的封装与隐藏, 方法的访问控制符包括private, protected, public和“默认访问控制符”。 类中限定为private的成员(域或方法)只能被这个类本身访问,即私有访问控制。 类中的成员缺省访问控制符时,称为缺省访问控制。缺省访问控制的成员可以被这个类本身和同一个包中的类所访问,即包访问控制。 类中限定为protected的成员可以被这个类本身,它的子类(包括同一个包中以及不同包中的子类)以及同一个包中所有其他的类访问。 类中限定为public的成员可以被所有的类访问。 Java中还有一种访问控制符为private proteced,它限定能被本类及其子类可以访问,而包中的其他非子类的类不能访问。 类的访问控制符或者为public,或者缺省。(但内部类可以有private、protected等访问控制符。) 如果类用public修饰,则该类可以被其他类所访问;若类缺省访问控制符,则该类只能被同包中的类访问。 2. 改写本节例子UsePhoneCard成为图形界面的Applet程序,接受用户输入的卡号,密码,金 额和接入号码,创建PhoneCard类的对象并输出这张电话卡的有关信息。 第五章习题: 1. 什么是多态,多态有哪些方式? 答:多态性(Polymorphism来自希腊语,意思是多种形态)是指允许一个接口访问动作的通用类的性质。一般地,多态性的概念常被解释为“一个接口,多种方法”。这意味着可以为一组相关活动设计一个通用接口。多态性允许用相同接口规定一个通用类来减轻问题的复杂度。选择适当的动作(方法)适应不同环境的工作则留给编译器去做。作为编程者,无需手工去做这些事情,只需利用通用接口即可。 多态的特点大大提高了程序的抽象程度和简洁性,更重要的是,它最大限度地降低了类和程序模块之间的耦合性,提高了类模块的封闭性,使得它们不需了解对方的具体细节,就可以很好地共同工作。这个优点对于程序的设计、开发和维护都有很大的好处。 2. 什么是接口? 3. 根据下面的要求编程实现复数类ComplexNumber (1) 复数类ComplexNumber的属性 m_dRealPart: 实部,代表复数的实数部分 m_dImaginPart: 虚部,代表复数的虚数部分 (2) 复数类ComplexNumber的方法 ComplexNumber() 构造函数,将实部,虚部都置为0 ComplexNumber(double r, double I) 构造函数,创建复数对象的同时完成复数的实部,虚部的初始化 GetRealPart() 获取实部 GetImaginaryPart() 获取虚部 SetRealPart(double d) 设置实部 SetImaginaryPart(double d) 设置虚部 ComplexAdd(ComplexNumber c) 复数相加 ComplexMinus(ComplexNumber c) 复数相减 ComplexMulti(ComplexNumber c) 复数相乘 第六章 ComplexAdd(double c) 复数相加 ComplexMinus(double c) 复数相减 ComplexMulti(double c) 复数相乘 ToString() 把当前复数对象的实部,虚部组合成a+bi的字符串形式 1.编写一个程序,要求能完成排序和查找,分别使用链表,数组和二叉树等数据结构,比较各种方法的优缺点。
因篇幅问题不能全部显示,请点此查看更多更全内容