(完整word版)Java-2实用教程(第5版)习题解答 下载本文

public class E {

public static void main(String args[]) { B b = new B(); Com com = b;

System.out.println(com.add(12,6)); //【代码1】 A a = b;

System.out.println(a.add(10,5)); //【代码2】 } }

2.【代码1】:18。【代码2】:15。 四、编程题

该题目和第5章习题5的编程题类似,只不过这里要求使用接口而已。

设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声。要求如下: ? 编写接口Animal

Animal接口有2个抽象方法cry()和getAnimaName(),即要求实现该接口的各种具体动物类给出自己的叫声和种类名称。

? 编写模拟器类Simulator

该类有一个playSound(Animal animal)方法,该方法的参数是Animal类型。即参数animal可以调用实现Animal接口类重写的cry()方法播放具体动物的声音、调用重写的getAnimalName()方法显示动物种类的名称。

? 编写实现Animal接口的Dog类和Cat类

图6.14是Simulator、Animal、Dog、Cat的UML图。 ? 编写主类Application(用户程序)

在主类Application的main方法中至少包含如下代码:

Simulator simulator = new Simulator(); simulator.playSound(new Dog()); simulator.playSound(new Cat()); Simulator playSound(Animal):void <> Animal cry():void getAnimalName():String Dog cry():void Cat cry():void e 图6.14 UML类图

Animal.java

public interface Animal { public abstract void cry();

public abstract String getAnimalName(); }

Simulator.java

public class Simulator {

public void playSound(Animal animal) {

System.out.print(\现在播放\类的声音:\ animal.cry(); } }

Dog.java

public class Dog implements Animal { public void cry() {

System.out.println(\汪汪...汪汪\ }

public String getAnimalName() { return \狗\ } }

Cat.java

public class Cat implements Animal { public void cry() {

System.out.println(\喵喵...喵喵\ }

public String getAnimalName() { return \猫\ } }

Application.java

public class Example5_13 {

public static void main(String args[]) { Simulator simulator = new Simulator(); simulator.playSound(new Dog()); simulator.playSound(new Cat()); }

}

习题7(第7章)

一、问答题

1. 内部类的外嵌类的成员变量在内部类中仍然有效吗? 2. 内部类中的方法也可以调用外嵌类中的方法吗?

3. 内部类的类体中可以声明类变量和类方法吗?不可以 4. 匿名类一定是内部类吗?

1.有效。 2.可以。 3.不可以。 4.一定是。 二、选择题

1.下列代码标注的(A,B,C,D)中哪一个是错误的?c class OutClass { int m = 1;

static float x; //A class InnerClass {

int m =12; //B static float n =20.89f; //C InnerClass(){ }

void f() { m = 100; } }

void cry() {

InnerClass tom = new InnerClass(); //D } }

2.下列哪一个叙述是正确的?c

A.和接口有关的匿名类可以是抽象类。

B.和类有关的匿名类还可以额外地实现某个指定的接口。 C.和类有关的匿名类一定是该类的一个非抽象子类。

D.和接口有关的匿名类的类体中可以有static成员变量。 1.C。2.C。 三、阅读程序

1.大家好,祝工作顺利! 2.p是接口变量。 3.你好 fine thanks。

4.属于上机实习程序,解答略。 四、编程题

第3章例子9的程序允许用户在键盘依次输入若干个数字(每输入一个数字都需要按回车键确认),程序将计算出这些数的和以及平均值。请在第3章的例子9中增加断言语句,当用户输入的数字大于100或小于0时,程序立刻终止执行,并提示这是一个非法的成绩数据。

import java.util.*; public class E {

public static void main (String args[ ]){ Scanner reader = new Scanner(System.in); double sum = 0; int m = 0;

while(reader.hasNextDouble()){ double x = reader.nextDouble(); assert x< 100:\数据不合理\ m = m+1; sum = sum+x; }

System.out.printf(\个数的和为%f\\n\ System.out.printf(\个数的平均值是%f\\n\ } }

习题8(第8章)

一、问答题

1.\是正确的字符串常量吗?

2.\你好KU\和\的值分别是多少?

3.\和\的值分别是多少? 4.\的值是正数还是负数?

负数。String对象调用compareTo(String s)方法,按字典序与指定的String对象s的字符序列比较大小。如果当前String对象的字符序列与s的相同,该方法返回0;如果大于s的字符序列,该方法返回正值,如果小于s的字符序列,该方法返回负值。