Java程序设计之网络编程(第2版)各章习题和思考题答案(2)

2020-04-14 18:17

4、要求设计一个矩形类Rectangle,其中含有多个构造方法。利用这些构造方法实例化不同的对象,并输出相应的信息。

答:

import java.io.*;

class Rectangle //矩形类 {

private int width; //矩形的宽度

private int length; //矩形的长度

Rectangle() //矩形的不带参数的构造函数,缺省的给出长(30)和宽(20)

{

length=30;width=20; }

Rectangle(int l,int w) //矩形的带参数的构造函数 {

length=l;width=w; }

Rectangle(Rectangle r) //此构造方法以另一个Rectangle作为参数

{

width=r.width(); //通过对象调用函数并附值给相应变量

length=r.length();

}

int width() //返回宽度 {

return width; }

int length() //返回长度 {

return length; } }

public class CRctngle {

public static void main (String args[ ]) {

Rectangle x1=new Rectangle(); //声明类的对象并实例化

Rectangle x2=new Rectangle(50,40); //声明类的对象并初始化

Rectangle x3=new Rectangle(x1);

System.out.println(x1.length());

System.out.println(x1.width());

System.out.println(x2.length());

System.out.println(x2.width());

System.out.println(x3.length());

System.out.println(x3.width()); } }

运行结果:30 20 50 40 30 20

体会:此程序中共定义了3个构造方法:Rectangle()、Rectangle(int l,int w) 、Rectangle(Rectangle r) ,其中Rectangle()是没有参数的,Rectangle(int l,int w)以常数作为参数,Rectangle(Rectangle r)是以对象最为参数。构造函数调用时在用new运算符创建类对象是由系统自动完成的,构造函数的参数传递和形实结合也是由系统在调用的同时自动完成。

5、计算出Fibinacii 序列的前10项,Fibinacii 序列的前两项是1,后续每项的值都是该项的前两项之和。即

F(n)=F(n-1)+F(n-2)

F(1)=F(2)=1;

答:class Fibi

{ public long fibinacii(int n)

{ long c=0;

if(n==1||n==2)

c=1; else

c=fibinacii(n-1)+fibinacii(n-2);

return c; } }

public class Example4_5

{ public static void main(String args[])

{ Fibi a=new Fibi();

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

{ System.out.print(\ } }

第五章 习题及思考题

1、 什么是继承?什么是父类?什么是子类?继承的特性可给面向对象编程带来

什么好处?什么是单重继承?什么是多重继承?

解:继承是面向对象程序设计中两个类之间的一种关系。当一个类获取另一个类中

所有非私有的数据和操作的定义作为它自己的部分或全部成分时,就称这两个类之间具

有继承关系。被继承的类称为父类或超类,继承了父类或超类的所有数

据和操作的类称

为子类。

面向对象程序设计中的继承,可使得程序结构更加清晰,降低了编码和维护的工作量。

如果一个类只能有一个父类,则这种继承关系称为单重继承;如果一个类可以有多个

父类,则这种继承关系称为多重继承。

2、 “子类的域和方法的数目一定大于等于父类的域和方法的数目”,这种说法是否

正确?为什么?

解:这种说法是错误的,因为子类不一定能继承父类的所有域和方法,它只能继承所

有非私有的域和方法。如果子类在继承之外自己定义的域和方法数目小于父类中私有成

员的数目,则子类的域和方法的数目小于父类的域和方法的数目。

3、什么是方法的覆盖?方法的覆盖与域的隐藏有何不同?与方法的重载有何不同?

解;子类重新定义父类中已经存在的方法,称为方法的覆盖。注意:方法覆盖与域的

隐藏不同。子类重新定义父类已有的域,并不能完全取代它从父类那里继承的同名的域,

这个域仍然占用子类的内存空间,在某些情况下会被使用;而当子类重新定义父类的方法

时,从父类那里继承来的方法将被新方法完全取代,不再在子类的内存空间中占一席


Java程序设计之网络编程(第2版)各章习题和思考题答案(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:南京农业大学关于SURE+项目招收博士生和博士后的通知-2016-12-9

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: