- Java程序设计与应用开发(第3版)
- 吴敏 於东军 李千目主编 成维莉 邵杰 姜小花副主编
- 614字
- 2025-03-22 04:39:50
习题
3.1 选择题
(1)程序TestSketch.java的代码如下,4个选项中正确的描述是( )。
class A{ } class B extends A{ } public class TestSketch{ public static void main(String args[]){ A a=new A(); B B=(B)a; } }
A. 通过编译并正常运行
B. 编译时出现异常
C. 编译通过,运行时出现异常
D. 编译器报告找不到TestSketch.java
(2)下面有关类Demo的描述正确的有( )。
public class Demo extends Base{ private int count; public Demo(){ System.out.println("A Demo object has been created"); } protected void addOne(){ count++; } }
A. 当创建一个Demo类的实例对象时,count的值为0
B. 当创建一个Demo类的实例对象时,count的值是不确定的
C. Base类型的对象中可以包含改变count值的方法
D. Demo的子类对象可以访问count
(3)阅读下面的程序,正确的选项为( )。
class Person{ String name; String nickName; public Person(String s,String t){ name=s; nickName=t; } public String toString(){ return name+" nickname="+nickName; } } public class Teacher extends Person{ String rank; public Teacher(String s,String t,String r){ super(s,t); rank=r; } public String toString(){ return name+" nickname="+nickName+" rank="+rank; } public static void main(String args[]){ Person a= new Person("Tom","Tiger"); Person b= new Teacher("Jack","Horse","Professor"); Teacher c= new Teacher("Bobby","Elephant","Lecturer"); System.out.println("a is "+a.toString()); System.out.println("b is "+b.toString()); System.out.println("c is "+c.toString()); } }
A. 编译时会出现错误
B. 运行时会出现错误
C. 运行结果为:
a is Tom nickname=Tiger b is Jack nickname=Horse rank=Professor c is Bobby nickname=Elephant rank=Lecturer
D. 运行结果为:
a is Tom nickname=Tiger b is Jack nickname=Horse c is Bobby nickname=Elephant rank=Lecturer
3.2 阅读程序ShapeTest.java,写出其运行结果。
class Shape{ public void draw(){ System.out.println("draw Shape"); } } class Circle extends Shape{ public void draw(){ System.out.println("draw Circle"); } } class Rectangle extends Shape{ public void draw(){ System.out.println("draw Rectangle"); } } public class ShapeTest{ public static void main(String[] args){ Shape []shapes=new Shape[3]; shapes[0]=new Shape(); shapes[1]=new Rectangle(); shapes[2]=new Circle(); for(int i=0;i<shapes.length;i++) shapes[i].draw(); } }
3.3 定义一个自己的数学类MyMath。类中提供静态方法max,该方法接收3个同类型的参数(例如整型),返回其中的最大值。
3.4 下面程序的运行结果是什么?并请读者阅读附录A中关于参数传递的内容。
public class Util{ public static void swap(int a,int b){ int temp=a; a=b; b=temp; } public static void swap(String a,String b){ String temp=a; a=b; b=temp; } public static void swapArray(Object []a,int i,int j){ if(i!=j){ Object temp=a[i]; a[i]=a[j]; a[j]=temp; } } public static void main(String []args){ int a=100; int b=200; System.out.println("---before swap---"); System.out.println("a="+a+" b="+b); Util.swap(a,b); System.out.println("---after swap---"); System.out.println("a="+a+" b="+b); String aStr="Hello"; String bStr="World"; System.out.println("---before swap---"); System.out.println("aStr="+aStr+" bStr="+bStr); Util.swap(aStr,bStr); System.out.println("---after swap---"); System.out.println("aStr="+aStr+" bStr="+bStr); String []strArray={"Hello","World"}; System.out.println("---before swap---"); System.out.println("strArray[0]="+strArray[0]+ " strArray[1]="+strArray[1]); Util.swapArray(strArray,0,1); System.out.println("---after swap---"); System.out.println("strArray[0]="+strArray[0]+ " strArray[1]="+strArray[1]); } }