본문 바로가기
프로그래머/코딩(C#)개념정리

C#_클래스의상속_예제프로그램_자의변형

by FourthWay 2023. 4. 22.
728x90
반응형

 

일반적인 자를 기본 클래스로 하고 삼각자와 직선자를 클래스로 표현해 보자

using System;

//자 클래스(기본 클래스)
class Ruler
{
    protected string material = "플라스틱";  //재질
    protected string getInfo()
    {
        return "소재는" + material + "입니다.";
    }
}

//삼각자 클래스
class TriangleRuler : Ruler
{
    double[] angles = new double[3]; //각
    double short_side;  //짧은 변

    public TriangleRuler(double a1, double a2, double s)
    {
        angles[0] = a1;
        angles[1] = a1;
        angles[2] = 180.0 - a1 - a2;
        short_side = s;
    }

    public TriangleRuler(double a1, double a2, double s, string m)
    {
        angles[0] = a1;
        angles[1] = a2;
        angles[2] = 180.0 - a1 - a2;
        short_side = s;
        material = m;
    }

    public new string getInfo()
    {
        string s;
        s = "이 삼각자는 세 꼭짓점의 각도가 각각"
            + angles[0] + "º," + angles[1] + "º,"
            + angles[2] + "º이며, 가장 짧은 변의 길이는 "
            + short_side + "mm입니다.";
        s += base.getInfo();
        return s;

    }
}

//직선자 클래스
class LineRuler : Ruler
{
    int length; //측정하는 길이

    public  LineRuler(int l, string m)
    {
        length = l;
        material = m;
    }
    public new string getInfo()
    {
        string s;
        s = "이 직선자는 " + length / 10.0 + "cm까지 잴 수 있습니다.";
        s += base.getInfo();
        return s;
    }
}

//Main()메소드의 클래스
class Program
{
    static void Main()
    {
        TriangleRuler tr1 = new TriangleRuler(45.0, 45.0, 150.0);
        TriangleRuler tr2 = new TriangleRuler(45.0, 45.0, 200.0, "스테인리스");
        TriangleRuler tr3 = new TriangleRuler(30.0, 60.0, 100.0);
        LineRuler lrl = new LineRuler(300, "대나무");
        Console.WriteLine(tr1.getInfo());
        Console.WriteLine(tr2.getInfo());
        Console.WriteLine(tr3.getInfo());
        Console.WriteLine(tr1.getInfo());
    }
}

//출력
이 삼각자는 세 꼭짓점의 각도가 각각45º,45º,90º이며, 가장 짧은 변의 길이는 150mm입니다.소재는플라스틱입니다.
이 삼각자는 세 꼭짓점의 각도가 각각45º,45º,90º이며, 가장 짧은 변의 길이는 200mm입니다.소재는스테인리스입니다.
이 삼각자는 세 꼭짓점의 각도가 각각30º,30º,90º이며, 가장 짧은 변의 길이는 100mm입니다.소재는플라스틱입니다.
이 삼각자는 세 꼭짓점의 각도가 각각45º,45º,90º이며, 가장 짧은 변의 길이는 150mm입니다.소재는플라스틱입니다.
계속하려면 아무 키나 누르십시오 . . .

728x90
반응형