李威 さぽている

小说翻译,日语相关转移至http://blog.hjenglish.com/liwei

#

推荐个MAD~不错看

posted @ 2006-08-02 20:16 李威 阅读(104) | 评论 (0)编辑 收藏

对.Net第二次作业补充题目的思索[8.3追加]

8.3再追加
当自己陷入僵局时,最好和同事讨论下,看看他们如何做的~~
第一次作业还没做时,我听刘(武)讲过他的思路,虽然不是很难的题目,但听他说过后,自己的思路更加清晰了,然后没花多少时间就做出来了。
今天无法解决的时候,去看了下他的情况,他开口就说正方形只继承了**,刚好就是我的难点。于是,按他的方式解决了。正方形只能继承一个,我继承的是矩形,那如何算到菱形里呢?在类里不可能,那就在实例化时直接修改菱形的几个静态变量,加到菱形里。看到他的方式,眼睛就一亮,我怎么就没有去想实例化时呢?
修改时,要读取边长,于是试了下属性,中间出了个问题,原来属性名不能和变量同名。因为那个变量私有,我把四边形的那个变量改为protected了,不知有没有更好的解决方法~~

 

public   class  Quadrangle : IGraphics
    

        
protected   double  a;
        ……
     }

class  Rectangle : Parallelogram
    
{……}
class  Parallelogram : Quadrangle
    
{……}
class  Square : Rectangle
    
{        
        
public   double  aBorder
        
{
            
get
            
{
                
return  a;
            }

        }


     }


 



总结昨天的想法,主要有以下问题
1.正方形只能继承一个
2.计算四边形面积调用三角形
3.计算非四边形,包括圆和三角形

今天实际编码后,第一个问题仍有难度,尚需考虑。
第二个问题很简单,直接将三角形的面积计算方法COPY过来就可以了。
第三个问题写一个新类NotQuadrangle,包含几个静态变量,让圆和三角形继承它就可以了,要显示数据时,直接调用NotQuadrangle。

刚才显示了下结果,正方形没算到菱形里去~~哎,现在还没思路~~郁闷~~



对于求所有实例的平均边长,最大最小边长,初一看,觉得很简单,把所有边拿来一平均,不就完成了吗~
再一想,没那么简单,看看我的程序,实例的作用域都在不同的else里,如何保存这些实例呢。再说类的变量也不能直接用,还是得从类内部着手。

说到类的内部,就想到在构造函数里做文章。只要实例化一个类,就把当前实例的平均边长,最大最小边求出。嗯,求所有实例的话,那就用3个静态变量保存以前的值,实例化当前的一个对象时,就修改那3个值。这个思路可以满足初步的要求。

再仔细想想细节。当子类实例化时,会调用父类,这样只要是四边形就都会算进来。满足“各种形状类型的包含关系”,但也有问题,正方形既是菱形又是矩形,而我实现它时,继承的是矩形,计算所有菱形的平均边长时,会忽略掉正方形。还有一个我个人设计上的问题,计算四边形面积时,我是将其分成两个三角形来计算的,直接调用的三角形求面积方法,这就会增加到三角形的平均边长里去。

要说到问题,还不止这些。非四边形包括圆和三角形,要合在一起就不能用前面的方法。圆是一条边吧?呵呵,应该是的。

看来问题多多啊,嗯,慢慢来解决。有一句话没看懂啊:“要求利用类的重写”。<重写?不是重构,重載。專有名詞?如果只是重新写类,爲何要特意写出来?啊,算了,最后再考虑吧~

啊,服了,汉字变成点了~~
(如果不能输入中文,请切换到HTML视图,再切换到正常视图) 这个难道是专门针对日文系统的人写的?害我多打了几个繁体字~

posted @ 2006-08-02 18:21 李威 阅读(172) | 评论 (0)编辑 收藏

一个确实无聊的问题

前段时间在公司CMS里发过一个问题,现在想来,确实挺无聊的~

using System;

class 
Sample
{
    public static 
void Main()
    {
        
A Test = new A();
        
String TestG = (String)Test.G();                                
        Console.WriteLine(TestG);
    }

    class 
A
    
{
        
string s;
        
String F(string astring b)
        {
            
"One";
            
"Two";
            
"Three";
            return 
s;
        }
        public 
String G()
        {
            return 
F(ss);
            
        }
    }

    
int TestOutClass()
    {
        return 
1;
    }
}
本来我是想试下类外的方法,结果那个方法并不在类外。于是我所有的问题都不复存在~
既然是类内的方法,当然会被系统编译。

posted @ 2006-08-02 11:35 李威 阅读(158) | 评论 (0)编辑 收藏

仅列出标题
共44页: First 上一页 36 37 38 39 40 41 42 43 44