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

if(j%i==0) break; } if(i>j/2) {

System.out.print(\ } } } }

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=\ for(sum=0,i=1,a=1;i<=20;i++) { a=a*(1.0/i); sum=sum+a; }

System.out.println(\使用for循环计算的sum=\ } }

4.public class Xiti4 {

public static void main(String args[]) { int sum=0,i,j; for(i=1;i<=1000;i++) { for(j=1,sum=0;j

System.out.println(\完数:\ } } }

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(\满足条件的最大整数:\ } }

习题4(第4章)

一、 问答题

1.面向对象语言有哪三个特性? 2.类名应当遵守怎样的编程风格?

3.变量和方法的名字应当遵守怎样的编程风格?

4.类体内容中声明成员变量是为了体现对象的属性还是行为? 5.类体内容中定义的非构造方法是为了体现对象的属性还是行为? 6.什么时候使用构造方法?构造方法有类型吗? 7.类中的实例变量在什么时候会被分配内存空间? 8.什么叫方法的重载?构造方法可以重载吗?

9.类中的实例方法可以操作类变量(static变量)吗?类方法(static方法)可以操作实例变量吗?可以。不可以。

10.类中的实例方法可以用类名直接调用吗?

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

10.不可以。

11.简述类变量和实例变量的区别。

12.this关键字代表什么?this可以出现在类方法中吗?

1. 封装、继承和多态。

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

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

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

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

11.一个类通过使用new运算符可以创建多个不同的对象,不同的对象的实例变量将被分配不同的内存空间。所有对象的类变量都分配给相同的一处内存,对象共享类变量。 12.代表调用当前方法的对象。不可以。 二、选择题

1.下列哪个叙述是正确的? b

A. Java应用程序由若干个类所构成,这些类必须在一个源文件中。

B. Java应用程序由若干个类所构成,这些类可以在一个源文件中,也可以分布在若

干个源文件中,其中必须有一个源文件含有主类。 C. Java源文件必须含有主类。

D. Java源文件如果含有主类,主类必须是public类。 2.下列哪个叙述是正确的? d

A. 成员变量的名字不可以和局部变量的相同。

B. 方法的参数的名字可以和方法中声明的局部变量的名字相同。 C. 成员变量没有默认值。 D. 局部变量没有默认值。

3.对于下列Hello类,哪个叙述是正确的?d

A. Hello类有2个构造方法。

B. Hello类的int Hello()方法是错误的方法。 C. Hello类没有构造方法。

D. Hello无法通过编译,因为其中的hello方法的方法头是错误的(没有类型)。

class Hello { Hello(int m){ }

int Hello() {

return 20; } hello() { } }

4.对于下列Dog类,哪个叙述是错误的?d

A. Dog(int m)与Dog(double m)互为重载的构造方法。

B. int Dog(int m)与void Dog(double m)互为重载的非构造方法。 C. Dog类只有两个构造方法,而且没有无参数的构造方法。 D. Dog类有3个构造方法。

class Dog { Dog(int m){ }

Dog(double m){ }

int Dog(int m){ return 23; }

void Dog(double m){ } }

构造方法是一种特殊的方法,与一般的方法不同是:

1.构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有。

2.构造方法的调用是在创建一个对象时使用new操作进行的。构造方法的作用是初始化对象。

3.不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承。

5.下列哪些类声明是错误的?cd

A) class A

B) public class A C) protected class A D) private class A

6.下列A类中【代码1】~【代码5】哪些是错误的?1 4

class Tom { private int x = 120;