SubClss( ) //子类的构造方法 {
super( ) ; //调用父类的构造方法
x =100; }
void doClss( ) {
System.out.println(\ }
void doDemo( ) { int x; x=1000;
super.doClss( ); doClss( ); System.out.println(\ System.out.println(\ System.out.println(\ } }
public class SuperDemo {
public static void main(String args[ ]) {
//重写父类的doClss方法 //演示super和this的方法 //调用父类的doClss方法 //调用本类的doClss方法 //父类的x //本类的x //本方法的x //主方法 SubClss s = new SubClss(); s.doDemo(); } }
运行结果: SuperClss.doClass() SubClss.doClss() super.x=10 this.x=100 x=1000
9、编译并运行下面的程序,分析运行结果,体会其中方法重载的用法,进一步理解方法重载的概念。
class Father //本类中的speak方法重载了两次 {
void speak( ) //无参数的speak方法 {
System.out.println(″I am Father! ″); }
void speak(String s) //有参数的speak方法 {
System.out.println(″I like″+″″+s+″. ″); }
}
public class OverLoadingDemo {
public static void main (String args[ ]) {
Father x = new Father( );
x.speak(); //调用无参的speak方法 x.speak(″music″) //调用有参的speak方法 } }
运行结果: I am Father! I like music.
第五章 习题及思考题
1、 什么是继承?什么是父类?什么是子类?继承的特性可给面向对象编程带来 什么好处?什么是单重继承?什么是多重继承?
2、 “子类的域和方法的数目一定大于等于父类的域和方法的数目”,这种说法是否 正确?为什么?
3、什么是方法的覆盖?方法的覆盖与域的隐藏有何不同?与方法的重载有何不同?
4、 什么是多态?面向对象程序设计为什么要引人多态的特性?使用多态有什么优点?
5、 父类对象与子类对象相互转化的条件是什么?如何实现它们的相互转化?
6、什么是包?它的作用是什么?
7、 CLASSPATH是有关什么的环境变量?它如何影响程序的运行?如何设置 和修改这个环境变量?
8、 一个类如何实现接口?实现某接口的类是否一定要重载该接口中的所有抽象方法?
9、 为某研究所编写一个通用程序,用来计算每一种交通工具运行1000公里所需的时间,已知每种交通工具的参数都是3个整数A、B、C的表达式。现有两种工具:Car007 和Plane,其中Car007 的速度运算公式为:A*B/C,Plane 的速度运算公式为:A+B+C。需要编写三类:ComputeTime.java,Plane.java,Car007.java和接口Common.java,要求在未来如果增加第3种交通工具的时候,不必修改以前的任何程序,只需要编写新的交通工具的程序。其运行过程如下,从命令行输入ComputeTime的四个参数,第一个是交通工具的类型,第二、三、四个参数分别时整数A、B、C,举例如下:
计算Plane的时间:\ 计算Car007的时间:\ 如果第3种交通工具为Ship,则只需要编写Ship.java,运行时输入:\ComputeTime Ship 22 33 44\
提示:充分利用接口的概念,接口对象充当参数。
实例化一个对象的另外一种办法:Class.forName(str).newInstance();例如需要实
例化一个Plane对象的话,则只要调用Class.forName(\便可。 10、编写求解几何图形(如直线、三角形,矩型,圆,多边型)的周长,面积的应用程序,要求用到继承和接口等技术。
第六章 习题及思考题
a) 找出以下有问题的代码
pulic int searchAccount(int[25] number){
number =new int[15];
for(int i=0;i number[i]=number[i-1]+number[i+1]; return number; } 2、将一个字符串中的小写字母变成大写字母,并将大写字母变成小写字母. 3、求若干个数的平均数,若干个数从键盘输入. 4、将一个字符串数组按字典序重新排列. 5、编写应用程序,分析字符串,分别输出字符串的单词,并统计出单词个数. 6、使用java.lang 包中System 类的静态方法arraycopy 可以实现数组的快速拷贝 7、运行下面程序,给出结果 public class Example4{ public static void main(String args[]){ byte d[]=\你我他\ System.out.println(\数组d的长度是(一个汉字占两个字节):\String s=new String(d,0,2); System.out.println(s); } } 第七章 习题及思考题 1、 编写判断某年是否是闰年的Java程序。 2、 已知f(n)公式如下: f(1)=f(2)=1 当n=1,2 f(n)=f(n-1)+f(n-2) 当n>=3 计算f(28)的结果,并测试计算该公式所花的时间数。(提示:可以用System类的静态方法public long currentTimeMillis()获取系统当前时间,也可以根据currentTimeMillis()方法得到的数字,用Date 的构造方法) 解: 3、 利用Vector类,实现一个先进先出队列。 4、将从小到大的素数30个放入数组中。 5、编写生成100个1-6之间的随机数,统计1—6每个出现的概率。 6、 在所有的Java系统类中,Object类有什么特殊之处?它在什么情况下使用? 7、 试列举你使用过的数据类型类,数据类型类与基本数据类型有什么关系? 8 Math类用来实现什么功能?设x,y是整型变量,d是双精度型变量,试书写表 达式完成下面的操作: (1)求x的y次方。 (2)求x和y的最小值。 (3)求d取整后的结果。 (4)求d四舍五人后的结果。 (5)求atan(d)的数值。 9、向量与数组有何不同?它们分别适合于什么场合? 10、什么是排序?你了解几种排序算法?它们各自有什么优缺点?分别适合在什么情况下使用? 第八章 习题及思考题 1. 什么是异常?简述Java的异常处理机制。 2. 系统定义的异常与用户自定义的异常有何不同?如何使用这两类异常? 3.输入并运行下面的程序: 4.编写从键盘读入10个字符放入一个字符数组,并在屏幕上显示它们的程序。请处理数组越界异常. 第九章 习题及思考题 1、编一个应用程序,按行顺序地读取一个可读文件的内容。 2、把Hashtable存放的信息输出到磁盘文件中,并再从中读进Hashtable. 3、利用StringBuffer类编写从键盘读入字符串、整数、实型数,并在屏幕上输出。 4、什么叫流?简述流的分类? 5、编写一个测试文件一般属性(如显示文件的路径、绝对路径、显示文件是否可写、显示文件是否可读、显示文件的大小等属性)的程序。 6、利用RandomAccessFile类编写应用程序,要求输入10组数据到文件中,每组数据为1个整形数和一个双精度数,然后随机修改文件的某组数,并显示修改的结果。 7、将如下三组不同类型的数据利用DataInputStream和DataOutputStream写入文件,然后从文件中读出。 三组数据如下 { 19.99, 9.99, 15.99,3.99, 4.99 }; { 12, 8, 13, 29, 50 }; { \ 8、利用BufferedReader和BufferedWriter在文件中实现输入输出字符串。 9、什么是过滤流,并举例 10、什么是串行化,并举例 第十章 习题及思考题 1.什么是线程?它产生的背景是什么?线程有几种状态?说明状态变化调用的方法。 2、 实现两个定时线程,一个线程每隔1秒显示一次,一个线程每隔3秒显示一次。 3、创建两个线程,每个线程打印出线程名字后再睡眠,给其它线程以执行的机会,主线程也要打印出线程名字后再睡眠,每个线程前后共睡眠5次。要求分别采用从Thread中继承和实现Runnable接口两种方式来实现程序。(即写两个程序) 第十一章 习题及思考题 1、什么是AWT,什么是Swing? 2、AWT中包含了那些常用的组件,有什么用途? 3、什么是事件?什么是委托事件处理模型? 4、编程包含一个标签和一个按钮,单击按钮时,标签的内容在\你好\和\再见\之间切换。 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库第一章习题及思考题(2)在线全文阅读。
相关推荐: