Java2实用教程(第三版)课后答案 - 耿祥义主编 联系客服

发布时间 : 星期日 文章Java2实用教程(第三版)课后答案 - 耿祥义主编更新完毕开始阅读65b0f7637e21af45b207a806

{

fact=1;

for(int j=1;j<=i;j++) fact*=j; sum+=fact; }

System.out.println(\到10的阶乘之和是:\} }

4. 编写一个应用程序,求100以内的全部素数。 答:

class Primes {

public static void main(String args[]) {

int w=1;

for(int i=2;i<=100;i++) {

for(int j=2;j

w=i%j; if(w==0) break; }

if(w!=0)

System.out.println(i+\是素数\} } }

5. 分别用do―while和for循环计算1+1/2!+1/3!+1/4!+?的前20项和。 答: ①for循环 class Sum {

public static void main(String args[]) {

int fact;

double sum=0;

for(int i=1;i<=20;i++) {

fact=1;

for(int j=1;j<=i;j++) fact*=j;

sum+=1.0/fact; }

5

System.out.println(sum); } }

②do―while循环 class Sum {

public static void main(String args[]) {

int i=1; int fact;

double sum=0; do {

fact=1; int j=0;

while(++j<=i) fact*=j;

sum+=1.0/fact; }

while(++i<=20);

System.out.println(sum); } }

6. 一个数如果恰好等于它的因子之和,这个数就称为“完数”。编写应用程序,求1000之内的所有完数。 答:

class Wanshu {

public static void main(String args[]) {

int x,i,sum;

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

sum=0;

for(i=1;i

if(x%i==0) sum+=i; }

if(x==sum)

System.out.println(x+\是完数\} } }

6

7. 编写应用程序,分别使用while和for循环计算8+88+888+?前10项之和。 答: ①for循环 class TheSum {

public static void main(String args[]) {

long sum=0,data=8;

for(int i=1;i<=10;i++) {

sum=sum+data; data=data*10+8; }

System.out.println(sum); } }

②while循环 class TheSum {

public static void main(String args[]) {

long sum=0,data=8,i=0; while(++i<=10) {

sum=sum+data; data=data*10+8; }

System.out.println(sum); } }

8. 编写应用程序,输出满足1+2+3+?+n<8888的最大正整数n。 答:

class Maxn {

public static void main(String args[]) {

int k=1,sum=0;

while((sum+=k)<8888) k++; k--;

System.out.println(\最大能取到:\} }

第4章 类、对象和接口

7

1. 类中的实例变量在什么时候会被分配内存空间?

答: 当该类创建对象之后,实例变量才会被分配相应的内存空间。 2. 什么叫方法的重载?构造方法可以重载吗?

答:①一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同(方法的重载体现了多态性,即功能多态性)。

②构造方法可以重载。

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

答:①类中的实例方法可以操作类变量。 ②类方法不可以操作实例变量

4. 类中的实例方法可以用类名直接调用吗? 答: 类中的实例方法不可以用类名直接调用。 5. 举例说明protected方法和友好方法的区别。

答: 当子类与父类不在同一个包中时,子类可以继承父类的protected方法;而友好方法此时则不能被子类继承。

6. 举例说明类变量和实例变量的区别。

答:⑴书写: 定义成员变量时,类变量有static修饰;实例变量没有static修饰。 例: class A {

int x; //实例变量

static int y; //类变量 }

⑵内存: 不创建对象,类的实例变量不会被分配内存空间;类变量被分配相应的内存空间。

不同对象的实例变量被分配不同的内存空间;不同对象的类变量被分配相同的内存空间。

任何一个对象改变类变量,其他对象的相应类变量也发生相应变化。 一个对象的实例变量发生改变,不影响其他对象的相应实例变量。 例: 执行语句: A1.x=10; A1.y=20;

这时A2.x的值也是10;而A2.y的值保持原来的初值。

⑶使用: 类变量可以被类方法操作;而实例变量不能被类方法操作。 例: class A {

int x;

static int y;

static void func() {

b=10; //合法 a=20; //非法 } }

类变量可以通过类名访问;实例变量不能通过类名访问。

8