Java面向对象程序设计习题解答耿祥义文档格式.docx
- 文档编号:22457518
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:51
- 大小:65.35KB
Java面向对象程序设计习题解答耿祥义文档格式.docx
《Java面向对象程序设计习题解答耿祥义文档格式.docx》由会员分享,可在线阅读,更多相关《Java面向对象程序设计习题解答耿祥义文档格式.docx(51页珍藏版)》请在冰豆网上搜索。
3.float型常量后面必须要有后缀“f”或“F”。
对于double常量,后面可以有后缀“d”或“D”,但允许省略该后缀。
4.publicclassXiti4{
publicstaticvoidmain(Stringargs[]){
charch1='
你'
ch2='
我'
ch3='
他'
;
System.out.println("
\"
"
+ch1+"
的位置:
+(int)ch1);
+ch2+"
+(int)ch2);
+ch3+"
+(int)ch3);
}
}
5.数组名字.length
6.数组名字.length
7.
【代码1】A,65
【代码2】-127
【代码3】123456.783,123456.78312
【代码1】false
【代码2】true
【代码3】false
【代码4】3
【代码5】4.4
【代码6】8.8
习题3
1.输出110if-else语句书写的不够规范,复合语句缺少大括号“{}”,代码不够清晰。
2.你好好酷!
!
3.publicclassXiti3_3{
intstartPosition=0,endPosition=0;
charcStart='
а'
cEnd='
я'
startPosition=(int)cStart;
//cStart做int型转换,结果赋给startPosition
endPosition=(int)cEnd;
//cEnd做int型转换运算,结果赋给endPosition
俄文字母表:
);
for(inti=startPosition;
i<
=endPosition;
i++){
charc='
\0'
c=(char)i;
//i做char型转换运算,并将结果赋值给c
System.out.print("
"
+c);
//System.out.print("
+c+"
+Integer.toHexString(c));
if((i–startPosition+1)%10==0){
System.out.println();
2
6
24
120
720
5040
40320
362880
3628800
39916800
479001600
6227020800
87178291200
130********00
20922789888000
355687428096000
6402373705728000
121645*********000
2432902008176640000
-4249290049419214848
sum=2561327494111820313
1!
=1
2!
=2
3!
=6
4!
=24
5!
=120
6!
=720
7!
=5040
8!
=40320
9!
=362880
10!
=3628800
11!
=39916800
12!
=479001600
13!
=6227020800
14!
=87178291200
15!
=130********00
16!
=20922789888000
17!
=355687428096000
18!
=6402373705728000
19!
=121645*********000
20!
=2432902008176640000
}
4.随书给出的解答:
publicclassXiti4{
publicstaticvoidmain(String
args[]){
doublesum=0,a=1;
inti=1;
while(i<
=20){
sum=sum+a;
i++;
a=a*i;
}
System.out.println("
sum="
+sum);
结果:
sum=2.5613274941118203E18如果sum改成long的情况?
?
精确计算的方法:
[书P201有类似操作]
BigIntegersum=newBigInteger("
0"
BigIntegerfactorial=newBigInteger("
1"
for(inti=0;
20;
){
i++;
factorial=factorial.multiply(newBigInteger(String.valueOf(i)));
System.out.println(i+"
="
+factorial);
sum=sum.add(factorial);
System.out.println("
//256-1327-4941-1182-0313
//System.out.println(Long.MAX_VALUE);
922-3372-0368-5477-5807
5.
classXiti5{
publicstaticvoidmain(Stringargs[]){
for(intj=2;
j<
=100;
j++){
inti=0;
for(i=2;
=j/2;
if(j%i==0)
break;
}
if(i>
j/2){
System.out.print("
+j);
6.
classXiti6{
doublesum=0;
doublereciprocalFactorial=1;
for(inti=1;
=20;
reciprocalFactorial=reciprocalFactorial*(1.0/i);
sum=sum+reciprocalFactorial;
使用for循环计算的sum="
sum=0;
reciprocalFactorial=1;
reciprocalFactorial=(1.0/i)*reciprocalFactorial;
使用while循环计算的sum="
7.
classXiti7{
=1000;
intsum=0;
//System.out.print(i+"
因子"
for(intj=1;
i;
if(i%j==0){
//System.out.print("
sum=sum+j;
}
//System.out.println("
因子的和"
if(sum==i){
System.out.println("
完数:
+i);
importjava.util.Scanner;
publicclassXiti8{
method1();
method2();
privatestaticvoidmethod1(){
请输入两个非零正整数,每输入一个数回车确认"
Scannerreader=newScanner(System.in);
intm=0,n=0,temp=0,gy=0,gb=0,a,b;
a=m=reader.nextInt();
b=n=reader.nextInt();
if(m<
n){
temp=m;
m=n;
n=temp;
intr=m%n;
while(r!
=0){
n=m;
m=r;
r=m%n;
gy=n;
gb=a*b/gy;
最大公约数:
+gy);
最小公倍数:
+gb);
privatestaticvoidmethod2(){
intm=0,n=0,t=0,gy=0,gb=0;
m=reader.nextInt();
n=reader.nextInt();
if(m>
t=m;
n=t;
=m;
if(m%i==0&
&
n%i==0){
gy=i;
gb=m*n/gy;
System.out.println(m+"
"
+n+"
的最大公约数为"
的最小公倍数为"
f
(1)=1
f
(2)=3
f(3)=9
f(4)=33
f(5)=153
f(6)=873
f(7)=5913
f(8)=46233
满足条件的最大整数:
7
9.
publicclassXiti9{
intendNumber=9999;
for(inti=1,factorial=1,sum=0;
factorial*=i;
sum=sum+factorial;
System.out.println("
f("
+i+"
)="
if(sum>
endNumber){
+(i-1));
break;
privatestaticvoidmethod2(){//书中提供的方法实现
intn=1;
longsum=0,t=1;
t=n*t;
while(true){
sum=sum+t;
9999)
n++;
t=n*t;
+(n-1));
}//1至7的阶乘和是sum=5913//1至8的阶乘和是sum=46233
习题4
1.用该类创建对象时。
2.所谓方法重载是在一个类中或父子类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。
构造方法可以重载。
3.可以。
不可以。
4.不可以。
5.成员变量又分为实例变量和类变量,用static修饰的变量是类变量。
那么类变量和实例变量有什么区别呢?
一个类通过使用new运算符可以创建多个不同的对象,不同的对象的实例变量将被分配不同的内存空间;
如果类中的成员变量有类变量,那么所有对象的这个类变量都分配给相同的一处内存,改变其中一个对象的这个类变量会影响其它对象的这个类变量。
也就是说对象共享类变量。
6.C,D看类声明在什么地方,顶级类只有public或不加两个修饰,而内部类可以有四个修饰。
7.【代码1】,【代码4】
8.sum=-100
9.27
10.**20##100
习题5
1.
如果子类和父类在同一个包中,那么子类自然地继承了其父类中不是private的成员变量作为自己的成员变量,并且也自然地继承了父类中不是private的方法作为自己的方法。
继承的成员或方法的访问权限保持不变。
如果子类和父类不在同一个包中,那么子类继承了父类的protected、public成员变量做为子类的成员变量,并且继承了父类的protected、public方法为子类的方法,继承的成员或方法的访问权限保持不变。
如果子类和父类不在同一个包里,子类不能继承父类的友好变量和友好方法。
只要子类中声明的成员变量和父类中的成员变量同名时,子类就隐藏了继承的成员变量。
子类中定义一个方法,这个方法的类型和父类的方法的类型一致或者是父类的方法的类型的子类型,并且这个方法的名字、参数个数、参数的类型和父类的方法完全相同,子类如此定义的方法称作子类重写的方法。
子类通过方法的重写可以隐藏继承的方法。
重写的规定不仅仅如此,访问权限、抛出异常、方法类型都有规定。
2.不可以。
3.abstract类。
4.假设B类是A类子类或间接子类,当我们用子类B创建一个对象,并把这个对象的引用放到A类的对象中时,称这个A类对象是子类对象的上转型对象。
父引用指向字对象。
5.可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中。
那么该接口变量就可以调用被类实现的接口中的方法。
6.A,C,D正确答案ADC不正确
7.15.08.0
8.98.012
classA{
publicfinalvoidf(){
a'
z'
for(charc=cStart;
c<
=cEnd;
c++){
System.out.print("
classBextendsA{
publicvoidg(){
α'
ω'
Bb=newB();
b.f();
b.g();
10.
publicintf(inta,intb){
if(b<
a){
inttemp=0;
temp=a;
a=b;
b=temp;
intr=b%a;
b=a;
a=r;
r=b%a;
returna;
intdivision=super.f(a,b);
return(a*b)/division;
publicclassXiti10{
Aa=newA();
+a.f(36,24));
+b.f(36,24));
习题6
1.仍然有效。
2.可以。
3.不可以。
区分情况,静态内部类可以有。
4.大家好,祝工作顺利!
5.96乘数超过99
习题7
1.
(1)Strategy是接口。
(2)Army不是抽象类。
(3)Army和Strategy是关联关系。
(4)StrategyA,StrategyB、StrategyC与Strategy是实现关系。
3.
4.例子13的设计符合开-闭原则。
5.例子17的设计符合开-闭原则。
习题9
1.A,B,D
2.Love:
Game
3.13abc夏日
4.13579
5.9javaHello
publicclassXiti6{
Strings1,s2,s3,t1="
ABCDabcd"
字符串原来是这个样子:
+t1);
s1=t1.toUpperCase();
字符串中的小写字母变成大写是这个样子:
+s1);
s2=t1.toLowerCase();
字符串中的大写字母变成小写是这个样子:
+s2);
s3=s1.concat(s2);
大写字符串连接小写字符串是这个样子:
+s3);
Strings="
中华人民共和国"
chara=s.charAt(0);
charb=s.charAt(6);
第一个字符:
+a);
最后一个字符:
+b);
importjava.util.*;
classXiti8{
intyear,month;
请输入年份和月份,每输入一个数回车确认"
year=reader.nextInt();
month=reader.nextInt();
String[]day=newString[42];
日一二三四五六"
Calendarrili=Calendar.getInstance();
rili.set(year,month-1,1);
//将日历翻到year年month月1日,注意0表示一月...11表示十二月
int星期几=rili.get(Calendar.DAY_OF_WEEK)-1;
intdayAmount=0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 面向 对象 程序设计 习题 解答 耿祥义