java练习题答案 下载本文

答案:假设B类是A类子类或间接子类,当我们用子类B创建一个对象,并把这个对象的引用放到A类的对象中时,称这个A类对象是子类对象的上转型对象。父引用指向子对象。

5.什么叫接口的回调?

答案:可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中。那么该接口变量就可以调用被类实现的接口中的方法。

6.下列叙述哪些是正确的?AD A. final类不可以有子类

B. abstract类中只可以有abstract方法。

C. abstract类中可以有非方法,但该方法不可以用final修饰。 D. 不可以同时用final和abstract修饰一个方法。

9.写一个类A,该类创建的对象可以调用方法f输出英文字母表,然后再编写一个该类的子类B,要求子类B必须继承A类的方法f(不允许重写),子类创建的对象不仅可以调用方法f输出英文字母表,而且可以调用子类新增的方法g输出希腊字母表。

class A { public final void f() { char cStart = 'a', cEnd = 'z'; for (char c = cStart; c <= cEnd; c++) { System.out.print(\ } } }

class B extends A { public void g() { char cStart = 'α', cEnd = 'ω'; for (char c = cStart; c <= cEnd; c++) { System.out.print(\ } } }

public class Xiti9 { public static void main(String args[]) { B b = new B(); b.f(); b.g(); } }

10.写一个类,该类有一个方法public int f(int a,int b),该方法返回a和b的最大公约数。然后再编写一个该类的子类,要求子类重写方法f,而且重写的方法将返回a和b的最小公倍数;要求在重写的方法体中首先调用被隐藏的方法返回a和b的最大公约数m,然后将乘积(a*b)/m返回;要求在应用的程序的主类中分别使用父类和子类创建对象,并分别调用方法f计算两个正整数的最大公约数和最小公倍数。

class A { public int f(int a, int b) { if (b < a) { int temp = 0; temp = a; a = b; b = temp; } int r = b % a; while (r != 0) { b = a; a = r; r = b % a; } return a; } } class B extends A { public int f(int a, int b) { int division = super.f(a, b); return (a * b) / division; } } public class Xiti9 { public static void main(String args[]) { A a = new A(); B b = new B(); System.out.println(\最大公约数 :\ System.out.println(\最小公倍数 :\ } }

第6章内部类与异常类练习题

一、填空题

1、Throwable类有两个子类,分别是Error和Exception.

2、所有异常的根类是Throwable类,throw关键字的作用是引发异常。 3、try关键字负责定义处理异常的程序,再来由catch关键字来捕获异常。 4、补足代码;调用两个函数,要求用匿名内部类

interface Inter {

void show(int a,int b); void func(); }

class Demo {

public static void main(String[] args) { Inter in=new Inter(){

Void show(int a,int b){} Void func(){}}; in.show(4,5); in.func(); } }

5.、下面程序的输出结果是:BCD

class Demo {

public static void func() throws Exception { try{

throw new Exception(); }

finally{

System.out.println(\); } }

public static void main(String[] args){ try{

func();

System.out.println(\); }

catch(Exception e){

System.out.println(\); }

System.out.println(\); } }

6.在java中所有的异常类都继承自java.lang.Throwable类,它有两个直接子类,一个是Error类,另一个是Exception类。

7、Java语言中,可以用throw语句和throws语句抛出异常,其中throws语句的作用是用来改变程序的执行流程,使程序跳到相应的异常处理语句中执行。throw语句把异常向上移交给调用这个方法的方法来处理。

8.下述代码执行后的结果是ACD class X {

public static void main(String [] args) { try {

badMethod();

System.out.print(\); }

catch (Exception ex) { System.out.print(\); }

finally {

System.out.print(\); }

System.out.print(\); }

public static void badMethod() {} }

单选题:

1、下面选项中,C不能用在throw语句中? A. Error B. RuntimeException

C. Object D. Throwable E. Exception

第9章String类练习题答案

一、填空

1、程序执行后的显示结果是abcdefabcDEF。

public class Question {

public static void main (String args[]) { String s1 = \;

String s2 = \;

String s3 = s1.concat(s2.toUpperCase()); System.out.println(s1+s2+s3); } } 2.

String s1 = \; String s2 = \; System.out.print(\\ + (( s1== s2)? \ : \) + \s2\); 这个代码段显示的结果是s1 != s2?

3.下面程序段输出结果的第一行是rtrme,第二行是r。 String s=\; String s2=s.substring(7);

String s3=s2.replace('m','u'); System.out.println(s2);

System.out.println(s3.charAt(2));

System.out.println(s3.toUpperCase()); 第三行输出结果为 RTRUE。

4.第5行的时候foo的值是baseball String foo = \; foo.substring(0,3);

foo.concat(\);//是返回 foo + \但foo本身的值并不必变, foo+=\;//改成foo = foo.concat(\结果就是baseketball了System.out.println(foo);

5、如下这段代码执行后,字符串s的值是hellothere String s=\;

s.concat(\);

s.toUpperCase(); s+=\;

System.out.println(s);

6.下面这段程序执行后,屏幕上显示的是:true。 public class Exam{

public static void main(String[] args){ char char1[]={'t','e','s','t'};

char char2[]={'t','e','s','t','1'}; String s1=new String(char1);

String s2=new String(char2,0,4);//提取字符数组char2[],从索引 0开始,提取个数为4个。

System.out.println(s1.equals(s2));//s1与s2中的实体(即内容)是