2012年4月14日土曜日

開発環境

  • Microsoft Windows 7 Home Premium (OS)
  • Microsoft Visual C# 2010 Express Edition (IDE)
  • 言語: C#

独習C# 第3版 ハーバート・シルト (著) エディフィストラーニング株式会社 矢嶋聡 (監修, 翻訳) の第8章(C継承)の理解度チェック13、14を解いてみる。

13, 14.

コード

using System;

public abstract class Shape
{
    public Shape(int w, int h)
    {
        Width = w;
        Height = h;
    }
    public int Width { get; protected set; }
    public int Height { get; protected set; }
    public abstract int CalcArea();
}

public class Triangle : Shape
{
    public Triangle(int w, int h) : 
        base(w, h) { }
    public override int CalcArea()
    {
        return Width * Height / 2;    
    }
}
public class Rectangle : Shape
{
    public Rectangle(int w, int h) :
        base(w, h) { }
    public override int CalcArea()
    {
        return Width * Height;
    }
}
class Tester
{
    public void Run()
    {
        Triangle t = new Triangle(100, 50);
        Rectangle r1 = new Rectangle(10, 10);
        Rectangle r2 = new Rectangle(10, 30);
        Shape[] shapes = { t, r1, r2 };
        foreach (Shape shape in shapes)
        {
            Console.WriteLine(
                "{0} 幅:{1}, 高さ:{2}, 面積:{3}",
                shape.GetType(), shape.Width, shape.Height, 
                shape.CalcArea());
        }
    }
    static void Main()
    {
        Tester t = new Tester();
        t.Run();
    }
}

入出力結果(Console Window)

Triangle 幅:100, 高さ:50, 面積:2500
Rectangle 幅:10, 高さ:10, 面積:100
Rectangle 幅:10, 高さ:30, 面積:300
続行するには何かキーを押してください . . .

0 コメント:

コメントを投稿