小说翻译,日语相关转移至http://blog.hjenglish.com/liwei
8.3再追加当自己陷入僵局时,最好和同事讨论下,看看他们如何做的~~第一次作业还没做时,我听刘(武)讲过他的思路,虽然不是很难的题目,但听他说过后,自己的思路更加清晰了,然后没花多少时间就做出来了。今天无法解决的时候,去看了下他的情况,他开口就说正方形只继承了**,刚好就是我的难点。于是,按他的方式解决了。正方形只能继承一个,我继承的是矩形,那如何算到菱形里呢?在类里不可能,那就在实例化时直接修改菱形的几个静态变量,加到菱形里。看到他的方式,眼睛就一亮,我怎么就没有去想实例化时呢?修改时,要读取边长,于是试了下属性,中间出了个问题,原来属性名不能和变量同名。因为那个变量私有,我把四边形的那个变量改为protected了,不知有没有更好的解决方法~~
总结昨天的想法,主要有以下问题1.正方形只能继承一个2.计算四边形面积调用三角形3.计算非四边形,包括圆和三角形今天实际编码后,第一个问题仍有难度,尚需考虑。第二个问题很简单,直接将三角形的面积计算方法COPY过来就可以了。第三个问题写一个新类NotQuadrangle,包含几个静态变量,让圆和三角形继承它就可以了,要显示数据时,直接调用NotQuadrangle。刚才显示了下结果,正方形没算到菱形里去~~哎,现在还没思路~~郁闷~~
对于求所有实例的平均边长,最大最小边长,初一看,觉得很简单,把所有边拿来一平均,不就完成了吗~再一想,没那么简单,看看我的程序,实例的作用域都在不同的else里,如何保存这些实例呢。再说类的变量也不能直接用,还是得从类内部着手。说到类的内部,就想到在构造函数里做文章。只要实例化一个类,就把当前实例的平均边长,最大最小边求出。嗯,求所有实例的话,那就用3个静态变量保存以前的值,实例化当前的一个对象时,就修改那3个值。这个思路可以满足初步的要求。再仔细想想细节。当子类实例化时,会调用父类,这样只要是四边形就都会算进来。满足“各种形状类型的包含关系”,但也有问题,正方形既是菱形又是矩形,而我实现它时,继承的是矩形,计算所有菱形的平均边长时,会忽略掉正方形。还有一个我个人设计上的问题,计算四边形面积时,我是将其分成两个三角形来计算的,直接调用的三角形求面积方法,这就会增加到三角形的平均边长里去。要说到问题,还不止这些。非四边形包括圆和三角形,要合在一起就不能用前面的方法。圆是一条边吧?呵呵,应该是的。看来问题多多啊,嗯,慢慢来解决。有一句话没看懂啊:“要求利用类的重写”。<重写?不是重构,重載。專有名詞?如果只是重新写类,爲何要特意写出来?啊,算了,最后再考虑吧~啊,服了,汉字变成点了~~(如果不能输入中文,请切换到HTML视图,再切换到正常视图) 这个难道是专门针对日文系统的人写的?害我多打了几个繁体字~
posted on 2006-08-02 18:21 李威 阅读(174) 评论(0) 编辑 收藏
Powered by: BlogJava Copyright © 李威