Java语言程序设计课后习题包括答案.docx
- 文档编号:25346605
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:59
- 大小:49.01KB
Java语言程序设计课后习题包括答案.docx
《Java语言程序设计课后习题包括答案.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计课后习题包括答案.docx(59页珍藏版)》请在冰豆网上搜索。
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类表示在门诊室中的病人。
此类对象应包括na
me(astring)\sex(achar)、age(an
integer)、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)
=b;
{
}
age=c;
publicvoidAdd(Complexp)
}
{
publicvoidsetweight(floatd)
+=;
{
+=;
weight=d;
}
}
publicvoidDecrease(Complexp)
publicvoidsetallergies(booleane)
{
{
=;
allergies=e;
=;
}
}
publicStringgetname(){returnname;}
publicvoidMultiply(Complexp)
publicchargetsex(){returnsex;}
{
publicintgetage(){returnage;}
=*;
publicfloatgetweight(){returnweight;}
=*;
publicbooleangetallergies(){returnallergies;}
}
}
}
publicclassText
publicclassComplexTexter
{
{
publicstaticvoidmain(Stringargs[])
publicstaticvoidmain(Stringargs[])
{
{
Patientapril=newPatient();
Complexa=newComplex(2,4);
("ZhangLi");
Complexb=newComplex(5,8);
('f');
(b);"\n");
(33);
(b);"\n");
(154.72f);
(b);"\n");
(true);
}
"Name:
"+());
}
"sex:
"+());
"age:
"+());
12:
什么是UML它由哪几部分成
"weight:
"+());
答:
"allergies:
"+());
UML是形化()即可化的建模言,成面向象建模
}
的准言。
}
它由四部分成:
(1)
(2)(3)模型元素(4)通用
体系
11:
声明并一个复数,其方法包括toString
()及复数的加、
13.
常用的与之的关系有哪几种。
减、乘运算。
答:
有关、依、流、泛化、、使用。
答:
publicclassComplex
14.
考学院、系及教拥有哪些属性,并画出它之关
{
系的。
privatefloata;
第三章后答案
privatefloatb;
1.N自然数:
publicStringtoString()
n!
=1*2*3*⋯.*n
{if(a!
=0)
称n的乘,并且定0!
=1.程算2!
4!
6!
he
10!
.并将
return(a+"i"+"+"+b);
果出到屏幕上。
elsereturn(""+b);
答:
}
publicclassMul
publicComplex(floata,floatb)
{
{
publicstaticvoidmain(Stringargs[])
=a;
{
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=max>IntArg[2]max:
IntArg[2];
min=IntArg[0] IntArg[1]; min=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;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;i<100;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] { 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(IOExceptione){ return"0"; } } publicstaticfloatgetFloat(){ Strings=""; try{ BufferedReaderin=newBufferedReader(new InputStreamReader); s=(); return(s)); } catch(IOExceptione) { "输入非法! ");return(0.0f); } } } 运行结果: 7.什么是异常讲解抛出、捕获的含义。 答: 异常又称为例外,是特其他运行错误对象,在程序中能够逼迫编译器来办理程序运行中的发生的其实不是由程序自己所造成的错误;抛出异常: 把生成异常对象并提交的过程称为抛出异常; 抛出异常是java中一个程序办理动作,检查异常时要么在方法中声明一个异常抛出,用try-catch语句捕获异常,并进行办理。 8.简述Java的异常办理体系。 答: java中声了然很多异常类,每个异常类都代表了一种运行错 误,类中包括了该运行错误的信息和办理错误的方法等内容。 每当 java程序运行过程中发生一个可识其他运行错误时,即该错误有 一个异常类与之相对应时,系统都会产生一个相应的该异常类的对 象,即产生一个异常。 一旦一个异常对象产生了,系统中就必然有 相应的体系来办理它,保证不会产生死机、死循环或其他对操作系 统的损害,从而保证了整个程序运行的安全性。 9.系统定义的异常与用户自定义的异常有何不相同如何使用这两类异常 答: 系统定义的特定情况出现的问题,而此时用来对可能遇到的问 题进行办理。 用户定义的是自己感觉可能会出现问题时,需要办理的。 这样防备程序中断或是出现未知错误。 系统异常有两种一种是运行时异常,一种是一般异常,一般异常要求用户捕获也许抛出的,不补货也许抛出就会编译不经过。 运行时异常编译能够经过,但是运行时才展现出来。 10.用户如何自定义异常编程实现一个用户自定义异常。 (1)定义mytestimport.*; publicclassmytest{ privatestaticintquotient(intnumber,intdenominator)throws DivideByZeroException{ if(denominator==0) thrownewDivideByZeroException(); return(number/denominator); } publicstaticvoidmain(Stringargs[]){ intnumber1=0,number2=0,result=0; try{ "输入第一个数字: ");number1=()).intValue(); "输入第二个数字: ");number2=()).intValue();result=quotient(number1,number2); } catch(NumberFormatExceptione){ (-1); } "/"+number2+"="+result); } } (2)定义DivideByZeroException publicclassDivideByZeroExceptionextendsArithmeticException{ publicDivideByZeroException(){ super("除数不能以为0! "); } } (3)定义Keyboardimport.*; publicclassKeyboard{ staticBufferedReaderinputStream=newBufferedReader(newInputStreamReader); publicstaticintgetInteger(){ try{ return().trim()).intValue()); }catch(Exceptione){ (); return0; } } publicstaticStringgetString(){ try{ return()); }catch(IOExceptione){return"0";} } } 第四章课后习题答案 1.子类将继承父类全部的属性和方法吗为什么 答: 不,子类不能够直接接见从父类中继承的私有属性及方法,但可 以对公有及保护方法进行接见。 2.方法的覆盖与方法的重载有何不相同 答: 覆盖是运用在子类中实现与父类相同的功能,但采用不相同的算法或公式;在名字相同的方法中,要做比父类更多的事情;在子类 中需要取消从父类继承的方法。 3.声明两个带有无参构造方法的两个类A和B,声明A的子类C, 并且声明B为C的一个成员,不声明C的构造方法。 编写测试代 码,生成类C的实例对象,并观察结果。 明一个基类A,它只有一种非默认构造方法;声明A的子类B,B 拥有默认方法及非默认方法,并在B的构造方法中调用基类A的构 造方法。 明一个类,它拥有一种方法,此方法被重载三次,派生一个新类,并增加一种新的重载方法,编写测试类考据四种方法对于派生类考据四种方法对于派生类都有效。 明一个拥有final方法的类,声明一个派生类,并试图对这个方法 进行重写,会有什么结果。 明一个final类,并试图声明其派生类,会有什么结果。 么是抽象类抽象类中可否必然要包括抽象方法 答: 抽象类是一个不完好的类,不能够使用new方法进行实例化。 抽象类能够包括抽象方法,也能够不包括抽象方法,但有抽象方法的必定是抽象类。 和super分别有哪些特别含义都有哪些种用法答: this表示当前类;super表示调用父类。 在定义类的时候用到,this是当前对象的引用,super是当前对象 的父类对象的引用,一般的都是把super用在构造函数中。 10.达成下面父类及子类的声明: (1)声明Student类属性包括学号、姓名、英语成绩、数学成绩、 计算机成绩和总成绩。 方法包括构造方法、get方法、set方法、 toString方法、equals方法、compare方法(比较两个学生的总成绩,结果分为大于、小于、等于),sum方法(计算总成绩)和 testScore方法(计算评测成绩)。 注: 评测成绩能够取三门课成绩的平均分,其他任何一门课的成绩的改变都需要对总成绩进行重新计算,因此,在每一个set方法中 应调用sum方法计算总成绩。 publicclassStudent{ Stringid; Stringname; floatscoreOfenglish; floatscoreOfmath; floatscoreOfcomputer; floatscoreOfsum; ; publicclasstest4_10{ publicstaticvoidmain(Stringargs[]){ Student su=new Student("001"," 苏 轼 ",56.00f,87.00f,95.00f); Student du=new Student("002"," 杜 甫 ",86.00f,75.00f,80.00f); Student bai=new Student("003","
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 语言程序设计 课后 习题 包括 答案