10-16周总结
作者:互联网
在这段时间里,我学会了如何利用多态、抽象类和接口。与之前相比,我的能力提升较大。题目的难度适中,但是我仍需要花一些时间来完成。
一、pta大作业六 7-2 多态测试
(1)设计与分析
本题要求计算正方体和圆柱的表面积和体积,并要求cube类和cylinder类实现container接口。从图中可以得知,代码的结构并不复杂。这说明多态能简化代码,是代码的可观性提高。我使用了题目中提供的函数,思路比较清晰,很快就写出来了,测试时没有发现问题。因此,代码结构设计的好,就容易得到想要的结果。
(2)采坑心得
class Cube implements Container{
double a;
@Override
public double area() {
return 6*this.a*this.a;
}
@Override
public double volume() {
return this.a*this.a*this.a;
}
}
class Cylinder implements Container{
double radius,height;
@Override
public double area(){
return 2*height*radius*pi+2*pi*this.radius*this.radius;
}
@Override
public double volume() {
return this.radius*this.radius*pi*this.height;
}
}
在cube类和cylinder类中将Container接口中的area()方法和volume方法重写,实现多态。
(3)改进建议
测试时没有发现问题,无需修改。
二、pta作业七 7-1 电信计费系列2-手机+座机计费
(1)设计与分析
本题要求计算座机和手机打电话的费用,并分成多种情况计算。因为考虑到多种情况,所以我将代码设计的很长,结果变得很复杂。用户开户,分为座机和手机,市内拨打、省内拨打、国内拨打的费用递增。我利用多种方法来计算费用,首先计算通话时间,然后按距离分开计算费用,最后将已开户的用户的费用分别累计计算。
(2)采坑心得
void fee(double minute,double fee){
this.balance=this.balance-minute*fee;
this.sum=this.sum+minute*fee;
}
user类中fee()方法可以累积用户的费用,并扣除用户的余额,避免在主类中重复计算。
(3)改进建议
我一开始写的代码非常长,通过一段时间的测试和简化,我最后将代码的行数减少了几十行。因为可能的情况比较多,需要用到多个if语句。如果要改的话,代码可能会变长,也会变得更加复杂。所以我尽量缩短代码的长度并确保测试时正确率不会下降。
总结
在这段时间里,我比较熟练地运用多态、抽象类和接口。我觉得我的练习还是不够多,仍需巩固。JAVA语言的学习即将结束,我将努力学好未来要学的语言。
标签:总结,10,fee,return,16,double,代码,多态,radius 来源: https://www.cnblogs.com/upsoarvenk/p/16384660.html