是否允许子类再声明如下一个方法? public float f(double x, double y){ return 23; }
9、父类的final方法可以被子类重写吗? 10、什么类中可以有abstract(抽象)方法。 11、什么叫上转型对象? 12、什么叫接口会掉? 13、与类有关的匿名类一定是该类的一个子类吗?与接口有关的匿名类一定是实现该接口的一个类吗?
14、怎样声明一个泛型类?怎样评价SDK1.5新推出的泛型? 15、阅读下列程序,说出程序的输出结果。 class NegativeIntegerException extends Exception {
String message;
public NegativeIntegerException() {
message=\方法的参数值不是正整数\ }
public String toString() {
return message; } }
class MaxCommonDivisor {
public int getMaxCommonDivisor(int a,int b) throws NegativeIntegerException {
if(a<0||b<0)
throw new NegativeIntegerException(); int r=0; if(b>a) {
int t=a;a=b;b=t; }
r=a%b; while(r!=0) {
a=b; b=r; r=a%b; }
return b; }
}
class MinCommonMultiple extends MaxCommonDivisor {
public int getMinCommonMultiple(int a,int b) throws NegativeIntegerException {
if(a<0||b<0)
throw new NegativeIntegerException(); int y=0;
int x=getMaxCommonDivisor(a,b); y=(a*b)/x; return y; } }
public class Example {
public static void main (String args[]) {
int maxCommonDivisor,minCommonMultiple;
MaxCommonDivisor max=new MaxCommonDivisor(); MinCommonMultiple min=new MinCommonMultiple(); try {
maxCommonDivisor=max.getMaxCommonDivisor(18,12); System.out.println(\最大公约数:\ minCommonMultiple=min.getMinCommonMultiple(18,12); System.out.println(\最小公倍数:\ maxCommonDivisor=max.getMaxCommonDivisor(-64,48); System.out.println(\最大公约数:\ }
catch(NegativeIntegerException e) {
System.out.println(e.toString()); } } }
第5章 作业题
1、编写一个类,该类有一个方法 Public int f(int a, int b) {
//要求该方法返回a和b的最大公约数 }
然后编写一个该类的子类,要求子类重写方法f(),而且重写的方法将返回两个整数的最小公倍数。要求:在重写的方法体中首先调用被隐藏的方法返回a和b的最大公约数m,然后将(a*b)/m返回;在应用的程序的主类中分别使用父类和子类创建对象,并分别调用方法f()计算两个正整数的最大公约数和最小公倍数。
2、首先编写一个抽象类,要求该类有如下3个抽象方法: public abstract void f(int x);
public abstract void g(int x, int y); public abstract double h(double x); 然后分别给出该类的3个子类。要求:在应用程序的主类中使用这些子类创建对象,然后让它们的上传型调用方法:f(),g()和h()。
3、编写一个类,要求该类实现一个接口,该接口有如下3个抽象方法: public abstract void f(int x);
public abstract void g(int x, int y); public abstract double h(double x); 要求:在应用程序的主类中使用该类创建对象,并使用接口回调来调用方法:f(),g()和h()。
4、举例说明匿名类的用法。
5、编写一个异常类,并具体给出一个产生该异常的方法。在一个应用程序中测试该异常类。
第6章 问答题及作业题
第6章 问答题
1、对于字符串
String s1=new String(“ok”); String s2=new String(“ok”); 说出下列表达式的值。 s1==s2
s1.equals(s2)
2、对于字符串
String s1=new String(“I love you zhht”); String s2=s1.replaceAll(“love”,”hate”);
说出System.out.printf(“%s,%s”,s1,s2)的结果
3、Stirng类和StringBuffer类有何不同?
4、对于StirngBuffer串
StirngBuffer str=new StringBuffer(“abcdefg”); str=str.delete(2,4);
说出System.out.println(str)的结果。
5、StringTokennizer类的主要用途是什么?该类有哪几个重要的方法?
6、下列System.out.printf语句的输出结构是什么?
String s=new String(“we,go,to,school”);
StringTokenizer token=new StingTokenizer(s,”,”); String word=token.nextToken(); int n=token.countTokens();
System.out.printf(“%s,%d”,word,n);
7、请说明Matcher对象的find()方法和LookingAt()方法有什么不同? 8、正则表达式中的元字符[123]代表什么意思? 9、说明与模式”A[135]{2}”匹配的4个字符串。 10、下列哪些字符串匹配模式”boy\\\\w{3}”?
A. boy111 B. boy!@# C. boyweo D. boyboyboyboy
补充问答题:
1、子类在什么情况下可以继承父类的友好成员? 2、子类通过怎样的办法可以隐藏继承的成员变量? 3、子类重写继承的方法的规则是什么? 4、子类的构造方法的第一条语句是什么?
5、子类对象一旦重写了继承的方法,就会隐藏继承的方法,是这样吗? 6、子类重写继承的方法时,可以降低方法的访问权限吗? 7、关键字super的用法? 8、假设父类有一个方法?
public double f(double x, double y){ return x+y; }
是否允许子类再声明如下一个方法? public float f(double x, double y){ return 23; }
9、父类的final方法可以被子类重写吗? 10、什么类中可以有abstract(抽象)方法。 11、什么叫上转型对象?
12、什么叫接口回调? 13、与类有关的匿名类一定是该类的一个子类吗?与接口有关的匿名类一定是实现该接口的一个类吗?
第6章 作业题
1、编写一个应用程序,用户从键盘输入一行字符串,程序输出该字符串中与模式”[24680]A[1357]{2}”匹配的子字符串。
2、编写一个应用程序,用户从键盘输入一行含有数字字符的字符串,程序仅仅输入字符串中的全部数字字符。
第8章 问答题及作业题
第8章 问答题
1、线程和进程是什么关系? 2、线程有几种状态?
3、引起线程中断的常见原因是什么?
4、一个线程执行完run()方法后,进入了什么状态?该线程还能再调用start()方法吗? 5、线程处于什么状态时,调用isAlive()方法返回的值是false? 6、线程调用interrupt()的作用是什么?
7、将例8-9中Bank类中的saveOrTake()方法前的synchronized修饰去掉。然后重新编译、运行例8-9,注意观察运行结果。
8、wait()、notify()和notifyAll()的作用分别是什么? 9、将例子10中的TicketSeller类中出现的循环条件:
while(fiveNumber<1) 改写成:
if(fiveNumber<1)
是否合理,说明你的理由。
10、将例8-10中的TicketSeller类中出现的: wait(); 改写成:
thread.sleep(2000)
然后重新编译、运行例8-10,注意观察运行结果。 11、什么叫守护线程?
第8章 作业题
1、上机调试例8-1,反复运行,观察每次运行的结果是否相同。 2、模仿例8-2,编写3个线程,分别在命令行窗口输出信息。 3、模仿例8-3,编写3个线程,使它们有更多的共享单元。
4、模仿例8-10,设计5个人排队买票,并规定买票规则和排队顺序。
第9章 问答题及作业题
第9章 问答题
1、如果准备读取一个文件的内容,应当使用FileInputStream流还是FileOutputStream流? 2、FileInputStream流的read()方法和FileReader()流的read()方法有何不同? 3、BufferedReader流能直接指向一个文件对象吗?
4、ByteArrayOutputStream流怎样获取缓冲区中的内容?
5、DataInputStream类和DataOutputStream类的主要用途是什么?
6、使用ObjecInputStream类和ObjectOutputStream类有哪些注意事项?
7、怎样使用输入/输入对流技术克隆对象?
8、使用RandomAccessFile类读写文件的好处是什么?
第9章 作业题
1、编写一个应用程序,读取一个文本文件的内容。
2、编写一个应用程序,将用户从键盘输入的10行文字存入文件。 3、使用数组字符将俄文字母写入内存,然后再从内存读出。
4、编写一个应用程序,将用户从键盘输入的10个整数存入文件,然后顺序读出。
5、编写一个应用程序,要求将LinkedList