Java语言程序设计课后习题答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Java语言程序设计(郑莉)第二章习题答案1.什么是对象、类,它们之间的联系答:1)对象是包含现实世界物体特征的抽象实体,它反映系统为之保存信息和与它交互的能力。对象是一些属性及服务的封装体,在程序设计领域,可以用“对象=数据+作用于这些数据上的操作”来表示。现实生活中对象是指客观世界的实体;在程序中对象是指一组变量和相关方法的集合。2)类是既有相同操作功能和相同的数据格式的对象的集合与抽象!3)两者的关系:对象是类的具体实例.。2.什么是面向对象的程序设计方法它有那些基本特征答:面向对象程序设计从所处理的数据入手,以数据为中心而不是以服务为中心来描述系统。它把编程问题视为一个数据集合,数据相对于功能而言,具有更强的稳定性。它的特征:抽象,封装,继承,多态。3(无用)4.请解释类属性、实例属性及其区别。答:实例属性,由一个个的实例用来存储所有实例都需要的属性信息,不同实例的属性值可能会不同。5.请解释类方法、实例属性及其区别。答:实例方法表示特定对象的行为,在声明时前面不加static修饰符,在使用时需要发送给一个类实例。类方法也称为静态方法,在方法声明时前面需加static修饰符,类方法表示具体实例中类对象的共有行为。区别:实例方法可以直接访问实例变量,调用实例方法,实例方法可以直接访问类变量,调用类方法;类方法可以直接调用类变量和类方法,类方法不能直接调用实例变量和实例方法;6.类的访问控制符有哪几种具体含义及其区别。答:类的访问控制符只有public(公共类)及无修饰符(默认类)两种。区别:当使用public修饰符时表示所有其他的类都可以使用此类;当没有修饰符时,则只有与此类处于同一包中的其他类可以使用类。7类成员的访问控制符有哪几种他们对类成员分别有哪些访问限制的作用答:类成员的访问控制符有public,private,protecte及无修饰符.public(公有的):用public修饰的成分表示公有的,也就是它可以被其他任何对象访问(前提是对累成员所在的类访问有访问权限).Private(保护的):类中限定为private的成员只能被这个类本身访问,在类外不可见。proteced(保护的)用该关键字修饰的成分是受保护的,只可以被同一类及其子类的实例对象访问。无修饰符(默认的):public,private,protected这个三个限定符不是必须写的。如果不写,则表明是“friendly”,相应的成分可以被所在保重的各类访问。8简述构造方法的特点答:构造方法主要有以下特点:(1)构造方法的方法名与类名相同;(2)构造方法没有返回类型(修饰符void也不能有);(3)构造方法通常被声明为公有的(public);(4)构造方法可以有任意多个参数;(5)构造方法的主要作用是完成对象的初始化工作;(6)构造方法不能在程序中显式的调用;(7)在生成一个对象时,系统会自动调用该类的构造方法为新生成的对象初始化。9如果在类声明中声明了构造方法,系统是否还提供默认的构造方法答:用户在进行类声明时,如果没有声明任何构造方法,系统会赋给此类一个默认(无参)的构造方法。但是,只要用户声明了构造方法,即使没有声明无参的构造方法,系统也不会再赋默认的构造方法。10:声明Patient类表示在门诊室中的病人。此类对象应包括name(astring)\sex(achar)、age(aninteger)、weight(afloat0、allergies(aboolean).声明存取及修改方法。在一个单独的累中,声明测试方法,并生成两个patient的例子:Atientapril=newPatient();(“zhangli”)(‘f’);;(330;;(true);那么:”+());”+());”+());(“weught:”+());\”+());声明并测试toString()方法显示一个病人的aga、sex、name及allergies属性。答:publicclassPatient{privateStringname;privatecharsex;privateintage;privatefloatweight;privatebooleanallergies;publicvoidsetname(Stringa){name=a;}publicvoidsetsex(charb){sex=b;}publicvoidsetage(intc){age=c;}publicvoidsetweight(floatd){weight=d;}publicvoidsetallergies(booleane){allergies=e;}publicStringgetname(){returnname;}publicchargetsex(){returnsex;}publicintgetage(){returnage;}publicfloatgetweight(){returnweight;}publicbooleangetallergies(){returnallergies;}}publicclassText{publicstaticvoidmain(Stringargs[]){Patientapril=newPatient();(ZhangLi);('f');(33);(154.72f);(true);Name:+());sex:+());age:+());weight:+());allergies:+());}}11:声明并测试一个复数类,其方法包括toString()及复数的加、减、乘运算。答:publicclassComplex{privatefloata;privatefloatb;publicStringtoString(){if(a!=0)return(a+i+++b);elsereturn(+b);}publicComplex(floata,floatb){=a;=b;}publicvoidAdd(Complexp){+=;+=;}publicvoidDecrease(Complexp){=;=;}publicvoidMultiply(Complexp){=*;=*;}}publicclassComplexTexter{publicstaticvoidmain(Stringargs[]){Complexa=newComplex(2,4);Complexb=newComplex(5,8);(b);\n);(b);\n);(b);\n);}}12:什么是UML它由哪几部分组成答:UML是图形化()即可视化的建模语言,成为面向对象建模的标准语言。它由四部分组成:(1)视图(2)图(3)模型元素(4)通用机制13.常用的类与类之间的关系有哪几种。答:有关联、依赖、流、泛化、实现、使用。14.考虑学院、系及教员应该具有哪些属性,并画出它们之间关系的类图。第三章课后习题答案1.设N为自然数:n!=1*2*3*….*n称为n的阶乘,并且规定0!=1.试编程计算2!,4!,6!he10!.并将结果输出到屏幕上。答:publicclassMul{publicstaticvoidmain(Stringargs[]){inti,n;floats;for(n=0;n=10;n=n+2){if(n==0)0!=1\n);else{s=1;for(i=1;i=n;i++)s=s*i;!=+s+\n);}}}}2.编写程序,接收用户从键键盘上输入的三个整数x,y,z..从中选出最大和最小者,并编程实现。答:publicclassMath{publicstaticvoidmain(Stringargs[]){int[]IntArg=newint[];for(inti=0;i;i++){IntArg[i]=(args[i]);}intmax,min;max=IntArg[0]IntArg[1]IntArg[0]:IntArg[1];max=maxIntArg[2]max:IntArg[2];min=IntArg[0]IntArg[1]IntArg[0]:IntArg[1];min=minIntArg[2]min:IntArg[2];max=+max);min=+min);}}3.求出100一枚的宿舍,并将这些数在屏幕上5个乙杭地显示出来。答:publicclassSu{publicstaticvoidmain(Stringargs[]){intn,i,k=0,y;for(n=2;n=100;n++){y=1;for(i=2;in;i++)if(n%i==0){y=0;break;}if(y==1){k++;);if(k%5==0)\n);}}}}4.使用类,生成100个0---99之间的随机整数,找出他们之中的最大值和最小值,并统计大于50的整数个数。publicclassRandom{publicstaticvoidmain(String[]args){intMinNum,MaxNum,n=0;int[]array=newint[100];array[0]=(int)()*100);MinNum=array[0];MaxNum=array[0];数列为:););for(inti=0;i100;i++){array[i]=(int)()*100);if(array[i]50)n++;if(array[i]=MaxNum)MaxNum=array[i];if(array[i]=MinNum)MinNum=array[i];);}MinNum=+MinNum);MaxNum=+MaxNum);大于50的整数个数有:+n);}}5.接收用户从键盘上输入的两个整数,求两个数的最大公约数和最小公倍数,并输出。publicclassTest2{publicstaticvoidmain(String[]args){int[]I=newint[];for(inti=0;i;i++){I[i]=(args[i]);}intm,n,temp,t;if(I[0]I[1]){temp=I[0];I[0]=I[1];I[1]=temp;}m=I[0];n=I[1];t=m%n;while(t!=0){m=t;n=m;t=m%n;}两个数的最大公约数为:+n);两个数的最小公倍数为:+I[0]*I[1]/n);}}6.从键盘上输入一件物品的价格(范围在~元.),假设用户支付了一张5元纸币,请列出一种找零的方案,使得纸币及硬币的个数最少。如元,应为两元一张、一元一张、五角一个、一角一个、五分一个、二分一个、一分一个。;publicclassPrice{publicstaticvoidmain(Stringargs[]){enteranumber);floata=();intc=(int)(a*100);intb=500-c;找零如下:);if(b/200!=0){张2元);b-=(b/200)*200;}if(b/100!=0){张1元);b-=(b/100)*100;}if(b/50!=0){张5角);b-=(b/50)*50;}if(b/20!=0){张2角);b-=(b/20)*20;}if(b/10!=0){张1角);b-=(b/10)*10;}if(b/5!=0){个5分);b-=(b/5)*5;}if(b/2!=0){个2分);b-=(b/2)*2;}if(b!=0)个1分);}};publicclassKeyboard{staticBufferedReaderinputStream=newBufferedReader(newInputStreamReader);publicstaticintgetInteger(){try{return().trim()).intValue());}catch(Exceptione){();return0;}}publicstaticStringgetString(){try{return());}catch(IOE

1 / 13
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功