1、Java 语言程序设计第 2 版(郑莉)第二章习题答案1.什么是对象、类,它们之间的联系?答:1)对象是包含现实世界物体特征的抽象实体,它反映系统为之保存信息和与它交互的能力。对象是一些属性及服务的封装体,在程序设计领域,可以用“对象=数据+作用于这些数据上的操作”来表示。现实生活中对象是指客观世界的实体;在程序中对象是指一组变量和相关方法的集合。2)类是既有相同操作功能和相同的数据格式的对象的集合与抽象!3) 两者的关系:对象是类的具体实例.。2.什么是面向对象的程序设计方法?它有那些基本特征?答:面向对象程序设计从所处理的数据入手,以数据为中心而不是以服务为中心来描述系统。它把编程问题视为
2、一个数据集合,数据相对于功能而言,具有更强的稳定性。它的特征:抽象,封装,继承,多态。3(无用)4请解释类属性、实例属性及其区别。答:实例属性,由一个个的实例用来存储所有实例都需要的属性信息,不同实例的属性值可能会不同。5请解释类方法、实例属性及其区别。答:实例方法表示特定对象的行为,在声明时前面不加 static 修饰符,在使用时需要发送给一个类实例。类方法也称为静态方法,在方法声明时前面需加 static 修饰符,类方法表示具体实例中类对象的共有行为。区别:实例方法可以直接访问实例变量,调用实例方法,实例方法可以直接访问类变量,调用类方法;类方法可以直接调用类变量和类方法,类方法不能直接调
3、用实例变量和实例方法;6类的访问控制符有哪几种?具体含义及其区别。答:类的访问控制符只有 public(公共类)及无修饰符(默认类)两种。区别:当使用 public 修饰符时表示所有其他的类都可以使用此类;当没有修饰符时,则只有与此类处于同一包中的其他类可以使用类。7 类成员的访问控制符有哪几种?他们对类成员分别有哪些访问限制的作用?答:类成员的访问控制符有 public,private,protecte 及无修饰符.public(公有的): 用 public 修饰的成分表示公有的,也就是它可以被其他任何对象访问( 前提是对累成员所在的类访问有访问权限).Private(保护的):类中限定为
4、private 的成员只能被这个类本身访问,在类外不可见。proteced(保护的)用该关键字修饰的成分是受保护的,只可以被同一类及其子类的实例对象访问。无修饰符(默认的):public,private, protected 这个三个限定符不是必须写的。如果不写,则表明是“friendly” ,相应的成分可以被所在保重的各类访问。8 简述构造方法的特点 ?答:构造方法主要有以下特点:(1) 构造方法的方法名与类名相同;(2) 构造方法没有返回类型(修饰符 void 也不能有) ;(3) 构造方法通常被声明为公有的(public) ;(4) 构造方法可以有任意多个参数;(5) 构造方法的主要作用
5、是完成对象的初始化工作;(6) 构造方法不能在程序中显式的调用;(7) 在生成一个对象时,系统会自动调用该类的构造方法为新生成的对象初始化。9 如果在类声明中声明了构造方法, 系统是否还提供默认的构造方法?答:用户在进行类声明时,如果没有声明任何构造方法,系统会赋给此类一个默认(无参)的构造方法。但是,只要用户声明了构造方法,即使没有声明无参的构造方法,系统也不会再赋默认的构造方法。10:声明 Patient 类表示在门诊室中的病人。此类对象应包括( )( ) 、age(an integer)、weight(a float0、allergies(a boolean).声明存取及修改方法。在一个
6、单独的累中,声明测试方法,并生成两个 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.o
7、utprintln(“weught: ”+april.getweight();System.out.println(“allergies: ”+april.getallergies();声明并测试 toString()方法显示一个病人的 aga、sex、name 及 allergies 属性。答:public class Patientprivate String name;private char sex;private int age;private float weight;private boolean allergies;public void setname(String a)na
8、me=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 boole
9、an getallergies()return allergies;public class Textpublic static void main(String args)Patient april=new Patient();april.setname(“ZhangLi“);april.setsex(f);april.setage(33);april.setweight(154.72f);april.setallergies(true);System.out.println(“Name: “+april.getname();System.out.println(“sex: “+april.
10、getsex();System.out.println(“age: “+april.getage();System.out.println(“weight: “+april.getweight();System.out.println(“allergies: “+april.getallergies();11:声明并测试一个复数类,其方法包括 toString()及复数的加、减、乘运算。答:public class Complexprivate float a;private float b;public String toString()if(a!=0)return(a+“i“+“+“+b)
11、;else return(“+b);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 ComplexTexterpublic static void main(String args
12、)Complex a=new Complex(2,4);Complex b=new Complex(5,8);a.Add(b);System.out.println(a.toString()+“n“);a.Decrease(b);System.out.println(a.toString()+“n“);a.Multiply(b);System.out.println(a.toString()+“n“);12:什么是 UML?它由哪几部分组成?答:UML 是图形化()即可视化的建模语言,成为面向对象建模的标准语言。它由四部分组成:(1)视图(2 )图(3)模型元素(4)通用机制13. 常用的类与
13、类之间的关系有哪几种。答:有关联、依赖、流、泛化、实现、使用。14. 考虑学院、系及教员应该具有哪些属性,并画出它们之间关系的类图。第三章课后习题答案1.设 N 为自然数:n!=1*2*3*.*n称为 n 的阶乘,并且规定 0!=1.试编程计算 2!,4!,6!he 10!.并将结果输出到屏幕上。答:public class Mulpublic static void main(String args)int i,n;float s;for(n=0;nIntArg1?IntArg0:IntArg1;max=maxIntArg2?max:IntArg2;min=IntArg0IntArg1?IntArg0:IntArg1;min=minIntArg2?min:IntArg2;System.out.println(“max=“+max);System.out.println(“min=“+min);