java2实用教程第五版耿祥义电子版_Java2实用教程(第5版)答案 耿祥义、张跃平

第1章

一、问答题

1.James Gosling

2.需3个步骤:

1)用文本编辑器编写源文件。

2)使用javac编译源文件,得到字节码文件。

3)使用解释器运行程序。

3.由类所构成,应用程序必须有一个类含有public static void main(String args[])方法,含有该方法的类称为应用程序的主类。不一定,但最多有一个public类。

4.set classpath=D:\jdk\jre\lib\rt.jar;.;

5.java和class

6.java

Bird

7.独行风格(大括号独占行)和行尾风格(左大扩号在上一行行尾,右大括号独占行)

二、选择题

1.B。2.D。

三、阅读程序

1.(a)Person.java。(b)两个字节码,分别是Person.class和Xiti.class。(c)得到“NoSuchMethodError”,得到“NoClassDefFoundError:

Xiti/class”,得到“您好,很高兴认识您nice to meet you”

第2章

一、问答题

1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。标识符由字母、下划线、美元符号和数字组成,第一个字符不能是数字。false不是标识符。

2.关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。不是关键字。class implements interface enum extends abstract。

3.boolean,char,byte,short,int,long,float,double。

4.float常量必须用F或f为后缀。double常量用D或d为后缀,但允许省略后缀。

5.一维数组名.length。二维数组名.length。

二、选择题

1.C。2.ADF。3.B。4.BE。5.【代码2】【代码3】【代码4】【代码5】。6.B。

三、阅读或调试程序

1.属于操作题,解答略。

2.属于操作题,解答略。

3.属于操作题,解答略。

4.【代码1】:4。【代码2】:b[0]=1。

5.【代码1】:40。【代码2】:7

四、编写程序

1.public class E {

public static void main(String

args[]) {

System.out.println((int)'你');

System.out.println((int)'我');

System.out.println((int)'他');

}

}

2.public class E {

public static void main (String

args[ ]) {

char

cStart='α',cEnd='ω';

for(char

c=cStart;c<=cEnd;c++)

System.out.print("

"+c);

}

}

第3章

一、问答题

1.boolean

2.不可以

3.boolean

4.不是必须的

5.结束while语句的执行

6.可以

二、选择题

1.A。2.C。3.C。

三、阅读程序

1.你,苹,甜

2.Jeep好好

3.x=-5,y=-1

四、编程序题

1.public

class Xiti1 {

public static void

main(String args[]) {

double sum=0,a=1;

int i=1;

while(i<=20)

{

sum=sum+a;

i++;

a=a*i;

}

System.out.println("sum="+sum);

}

}

2.public

class Xiti2 {

public static void main(String

args[]) {

int i,j;

for(j=2;j<=100;j++)

{

for(i=2;i<=j/2;i++)

{

if(j%i==0)

break;

}

if(i>j/2)

{

System.out.print("

"+j);

}

}

}

}

3.class

Xiti3 {

public static void

main(String args[]) {

double

sum=0,a=1,i=1;

do { sum=sum+a;

i++;

a=(1.0/i)*a;

}

while(i<=20);

System.out.println("使用do-while循环计算的sum="+sum);

for(sum=0,i=1,a=1;i<=20;i++) {

a=a*(1.0/i);

sum=sum+a;

}

System.out.println("使用for循环计算的sum="+sum);

}

}

4.publicclass Xiti4 {

public static void main(String

args[]) {

int sum=0,i,j;

for(i=1;i<=1000;i++) {

for(j=1,sum=0;j

if(i%j==0)

sum=sum+j;

}

if(sum==i)

System.out.println("完数:"+i);

}

}

}

5.public

class Xiti5 {

public static void main(String

args[]) {

int m=8,item=m,i=1;

long sum=0;

for(i=1,sum=0,item=m;i<=10;i++) {

sum=sum+item;

item=item*10+m;

}

System.out.println(sum);

}

}

6.public class Xiti6 {

public static void

main(String args[]) {

int n=1;

long sum=0;

while(true) {

sum=sum+n;

n++;

if(sum>=8888)

break;

}

System.out.println("满足条件的最大整数:"+(n-1));

}

}

习题四(第4章)

一、问答题

1.封装、继承和多态。

2.当类名由几个单词复合而成时,每个单词的首字母使用大写。

3.名字的首单词的首字母使用小写,如果变量的名字由多个单词组成,从第2个单词开始的其它单词的首字母使用大写。

4.属性

5.行为

6.用类创建对象时。没有类型

7.用类创建对象时。

8.一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。可以。

9.可以。不可以。

10.不可以。

11.一个类通过使用new运算符可以创建多个不同的对象,不同的对象的实例变量将被分配不同的内存空间。所有对象的类变量都分配给相同的一处内存,对象共享类变量。

12.代表调用当前方法的对象。不可以。

二、选择题

1.B。2.D。3.D。4.D。5.CD。6.【代码1】【代码4】。7.【代码4】。

三、阅读程序

1.【代码1】:1,【代码2】:121,【代码3】:121。

2.sum=-100。

3.27。

4.【代码1】:100,【代码2】:20.0。

5.上机实习题目,解答略。

6.上机实习题目,解答略。

四、编程题

CPU.java

public class CPU {

int speed;

int getSpeed() {

return speed;

}

public void setSpeed(int speed)

{

this.speed =

speed;

}

}

HardDisk.java

public class HardDisk {

int amount;

int getAmount() {

return amount;

}

public void setAmount(int

amount) {

this.amount =

amount;

}

}

PC.java

public class PC {

CPU cpu;

HardDisk HD;

void setCPU(CPU cpu) {

this.cpu = cpu;

}

void

setHardDisk(HardDisk HD) {

this.HD = HD;

}

void show(){

System.out.println("CPU速度:"+cpu.getSpeed());

System.out.println("硬盘容量:"+HD.getAmount());

}

}

Test.java

public class Test {

public static void main(String

args[]) {

CPU cpu

= new CPU();

HardDisk HD=new HardDisk();

cpu.setSpeed(2200);

HD.setAmount(200);

PC pc

=new PC();

pc.setCPU(cpu);

pc.setHardDisk(HD);

pc.show();

}

}

习题五(第5章)

一、问答题

1.不可以。

2.是。

3.不继承。

4.声明与父类同名的成员变量。

5.子类重写的方法类型和父类的方法的类型一致或者是父类的方法的类型的子类型,重写的方法的名字、参数个数、参数的类型和父类的方法完全相同。重写方法的目的是隐藏继承的方法,子类通过方法的重写可以把父类的状态和行为改变为自身的状态和行为。

6.不可以。

7.Abstract类。

8.上转型对象不能操作子类新增的成员变量,不能调用子类新增的方法。上转型对象可以访问子类继承或隐藏的成员变量,可以调用子类继承的方法或子类重写的实例方法。

9.通过重写方法。

10.面向抽象编程目的是为了应对用户需求的变化,核心是让类中每种可能的变化对应地交给抽象类的一个子类类去负责,从而让该类的设计者不去关心具体实现。

二、选择题

1.C。2.D。3.CD。4.D。5.B。6.B。7.D。8.B。9.A。

三、阅读程序

1.【代码1】:15.0。【代码2】:8.0。

2.【代码1】:11。【代码2】:11。

3.【代码1】:98.0。【代码2】:12。【代码3】:98.0。【代码4】:9。

4.【代码1】:120。【代码2】:120。【代码3】:-100。

四、编程题

Animal.java

public abstract class Animal {

public abstract void cry();

public abstract String

getAnimalName();

}

Simulator.java

public class Simulator {

public void playSound(Animal

animal) {

System.out.print("现在播放"+animal.getAnimalName()+"类的声音:");

animal.cry();

}

}

Dog.java

public class Dog extends Animal {

public void cry() {

System.out.println("汪汪...汪汪");

}

public String getAnimalName() {

return "狗";

}

}

Cat.java

public class Cat extends 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());

}

}

习题六(第6章)

一、问答题

1.不能。

2.不能。

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

4.不可以。

5.可以。

二、选择题

1.D。2.AB。3.B。

三、阅读程序

1.【代码1】:15.0。【代码2】:8。

2.【代码1】:18。【代码2】:15。

四、编程题

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.getAnimalName()+"类的声音:");

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章)

一、问答题

1.有效。

2.可以。

3.不可以。

4.一定是。

二、选择题

1.C。2.C。

三、阅读程序

1.大家好,祝工作顺利!

2.p是接口变量。

3.你好fine

thanks。

4.属于上机实习程序,解答略。

四、编程题

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("%d个数的和为%f\n",m,sum);

System.out.printf("%d个数的平均值是%f\n",m,sum/m);

}

}

习题八(第8章)

一、问答题

1.不是。"\\hello"是。

2.4和3。

3.false和true。

4.负数。

5.是true。

6.3和-1。

7.会发生NumberFormatException异常。

二、选择题

1.A。2.C。3.B。4.D。5.C。

三、阅读程序

1.【代码】:苹果。

2.【代码】:Love:Game。

3.【代码1】:15。【代码2】:abc我们。

4.【代码】:13579。

5.【代码】:9javaHello。

6.属于上机实习程序,解答略。

7.属于上机实习程序,解答略。

四、编程题

1.public

class E {

public static void main (String args[ ]) {

String s1,s2,t1="ABCDabcd";

s1=t1.toUpperCase();

s2=t1.toLowerCase();

System.out.println(s1);

System.out.println(s2);

String s3=s1.concat(s2);

System.out.println(s3);

}

}

2.public class E {

public static void main (String args[

]) {

String

s="ABCDabcd";

char

cStart=s.charAt(0);

char cEnd = s.charAt(s.length()-1);

System.out.println(cStart);

System.out.println(cEnd);

}

}

3.import java.util.*;

public class E {

public static void main (String args[

]) {

int

year1,month1,day1,year2,month2,day2;

try{

year1=Integer.parseInt(args[0]);

month1=Integer.parseInt(args[1]);

day1=Integer.parseInt(args[2]);

year2=Integer.parseInt(args[3]);

month2=Integer.parseInt(args[4]);

day2=Integer.parseInt(args[5]);

}

catch(NumberFormatExcep

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 面向对象编程的特点: - 封装:将数据和方法组合成一个类,并对外提供接口,隐藏内部实现细节,保证数据安全性和代码的可维护性。 - 继承:通过子类继承父类的属性和方法,实现代码的复用和扩展。 - 多态:同一种行为在不同情境下的不同表现形式,可以通过重载、重写和接口实现。 2. 类和对象: - 类是一种抽象的概念,是描述对象具有的属性和方法的模板。 - 对象是类的一个实例,具有这个类所描述的属性和方法。 3. 成员变量和成员方法: - 成员变量是描述对象状态的数据,可以是基本类型、对象类型或数组类型。 - 成员方法是描述对象行为的操作,可以是构造方法、普通方法、静态方法和抽象方法。 4. 构造方法和析构方法: - 构造方法是创建对象时调用的特殊方法,用于初始化对象的成员变量。 - 析构方法是销毁对象时调用的特殊方法,用于释放对象占用的资源。Java中不需要显式地调用析构方法,由垃圾回收器自动回收。 5. 访问控制: - 访问控制可以限制类的成员变量和成员方法的访问范围,保证数据的安全性和代码的可维护性。 - Java中有四种访问控制修饰符:public、protected、default、private。 6. 静态变量和静态方法: - 静态变量属于类,不属于对象,被所有对象共享。 - 静态方法可以通过类名调用,不需要创建对象。 7. final关键字: - final可以修饰类、成员变量和成员方法。 - final修饰的类不能被继承,修饰的变量是常量,修饰的方法不能被重写。 8. 抽象类和接口: - 抽象类是一种不能被实例化的类,只能作为父类被继承,可以包含抽象方法和普通方法。 - 接口是一种完全抽象的类型,只包含抽象方法和常量,用于定义规范和约束。类可以实现多个接口。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值