Java语言程序设计(郑莉)课后习题答案2-5章 下载本文

内容发布更新时间 : 2024/5/28 7:59:05星期一 下面是文章的全部内容请认真阅读。

Java语言程序设计(郑莉)

第二章习题答案

1.什么是对象、类,它们之间的联系?

答:1)对象是包含现实世界物体特征的抽象实体,它反映系统为之保存信息和与它交互的能力。对象是一些属性及服务的封装体,在程序设计领域,可以用“对象=数据+作用于这些数据上的操作”来表示。现实生活中对象是指客观世界的实体;在程序中对象是指一组变量和相关方法的集合。

2)类是既有相同操作功能和相同的数据格式的对象的集合与抽象! 法? (1) 构造方法的方法名与类名相同;

(2) 构造方法没有返回类型(修饰符void也不能有); (3) 构造方法通常被声明为公有的(public); (4) 构造方法可以有任意多个参数;

(5) 构造方法的主要作用是完成对象的初始化工作; (6) 构造方法不能在程序中显式的调用;

(7) 在生成一个对象时,系统会自动调用该类的构造方法为

新生成的对象初始化。

9如果在类声明中声明了构造方法,系统是否还提供默认的构造方

3) 两者的关系:对象是类的具体实例.。

2.什么是面向对象的程序设计方法?它有那些基本特征? 答:面向对象程序设计从所处理的数据入手,以数据为中心而不是以服务为中心来描述系统。它把编程问题视为一个数据集合,数据相对于功能而言,具有更强的稳定性。 它的特征:抽象,封装,继承,多态。 3(无用)

4.请解释类属性、实例属性及其区别。

答:实例属性,由一个个的实例用来存储所有实例都需要的属性信息,不同实例的属性值可能会不同。 5.请解释类方法、实例属性及其区别。

答:实例方法表示特定对象的行为,在声明时前面不加static修饰符,在使用时需要发送给一个类实例。 类方法也称为静态方法,在方法声明时前面需加static修饰符,类方法表示具体实例中类对象的共有行为。

区别:实例方法可以直接访问实例变量,调用实例方法,实例方法可以直接访问类变量,调用类方法;类方法可以直接调用类变量和类方法,类方法不能直接调用实例变量和实例方法; 6.类的访问控制符有哪几种?具体含义及其区别。

答:类的访问控制符只有public(公共类)及无修饰符(默认类)两种。

区别:当使用public修饰符时表示所有其他的类都可以使用此类;当没有修饰符时,则只有与此类处于同一包中的其他类可以使用类。

7类成员的访问控制符有哪几种?他们对类成员分别有哪些访问限制的作用?

答:类成员的访问控制符有 public,private,protecte及无修饰符. public(公有的):用public修饰的成分表示公有的,也就是它可以被其他任何对象访问(前提是对累成员所在的类访问有访问权限). Private(保护的):类中限定为private的成员只能被这个类本身 访问,在类外不可见。

proteced(保护的)用该关键字修饰的成分是受保护的,只可以 被同一类及其子类的实例对象访问。

无修饰符(默认的):public,private,protected这个三个限定符不是必须写的。如果不写,则表明是“friendly”,相应的成分可以被所在保重的各类访问。 8简述构造方法的特点? 答:构造方法主要有以下特点:

答:

用户在进行类声明时,如果没有声明任何构造方法,系统会赋给此类一个默认(无参)的构造方法。但是,只要用户声明了构造方法,即使没有声明无参的构造方法,系统也不会再赋默认的构造方法。

10:声明Patient类表示在门诊室中的病人。此类对象应包括name(a string)\sex(a char)、age(an integer)、weight(a float0、allergies(a boolean).

声明存取及修改方法。在一个单独的累中,声明测试方法,并生成两个patient的例子:

Atient april=new Patient(); April.setname(“zhangli”)

April.setSex(‘f’);; April.setage(330; April.setweigeht(154.72); April.setalolergies(true);

System.out.println(“那么: ”+april.getname()); System.out.println(“sex: ”+april.getsex()); System.out.println(“age: ”+april.getage()); System.outprintln(“weught: ”+april.getweight());\\ System.out.println(“allergies: ”+april.getallergies());

声明并测试toString()方法显示一个病人的aga、sex、name及allergies属性。 答:

public class Patient {

private String name; private char sex; private int age; private float weight; private boolean allergies; public void setname(String a) { name=a; }

public void setsex(char b) { sex=b;

}

public void setage(int c) { age=c; }

public void setweight(float d) { weight=d; }

public void setallergies(boolean e) {

allergies=e; }

public String getname(){return name;} public char getsex(){return sex;} public int getage(){return age;} public float getweight(){return weight;} public boolean getallergies(){return allergies;} }

public class Text {

public static void main(String args[]) {

Patient april=new Patient(); april.setname(\april.setsex('f'); april.setage(33); april.setweight(154.72f); april.setallergies(true);

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

减、乘运算。

答:public class Complex {

private float a; private float b; public String toString() {if(a!=0)

return(a+\else return(\}

public Complex(float a,float b) { this.a=a; this.b=b; }

public void Add(Complex p) {

this.a+=p.a; this.b+=p.b; }

public void Decrease(Complex p) {

this.a-=p.a; this.b-=p.b; }

public void Multiply(Complex p) {

this.a=this.a*p.a; this.b=this.b*p.b; } }

public class ComplexTexter {

public static void main(String args[]) {

Complex a=new Complex(2,4); Complex b=new Complex(5,8);

a.Add(b);System.out.println(a.toString()+\a.Decrease(b);System.out.println(a.toString()+\a.Multiply(b);System.out.println(a.toString()+\} }

11:声明并测试一个复数类,其方法包括toString()及复数的加、

s=s*i;

System.out.println(n+\} } } }

12:什么是UML?它由哪几部分组成? 答:

UML是图形化()即可视化的建模语言,成为面向对象建模的标准语言。

它由四部分组成:(1)视图(2)图(3)模型元素(4)通用机制

13. 常用的类与类之间的关系有哪几种。

答:有关联、依赖、流、泛化、实现、使用。

14. 考虑学院、系及教员应该具有哪些属性,并画出它们之间关系的类图。

第三章课后习题答案 1.设N为自然数: n!=1*2*3*….*n

称为n的阶乘,并且规定0!=1.试编程计算2!,4!,6!he 10!.并将结果输出到屏幕上。 答:

public class Mul {

public static void main(String args[]) { int i,n; float s;

for(n=0;n<=10;n=n+2) { if(n==0)

System.out.println(\else {s=1;

for(i=1;i<=n;i++)

2.编写程序,接收用户从键键盘上输入的三个整数x,y,z..从中选出最大和最小者,并编程实现。 答:public class Math{

public static void main(String args[]){ int[] IntArg = new int[args.length]; for(int i=0;i

IntArg[i] = Integer.parseInt(args[i]); }

int max,min;

max=IntArg[0]>IntArg[1]?IntArg[0]:IntArg[1]; max=max>IntArg[2]?max:IntArg[2]; min=IntArg[0]