Exemplo n.º 1
0
        // typ der entsteht welches Rechenzeichen   Beteiligten
        public static Rechteck operator         +(Rechteck eck1, Rechteck eck2)
        {
            Rechteck tmp = new Rechteck(0, 0);

            tmp._flaeche = eck1.flaeche + eck2.flaeche;
            tmp._umfang  = eck1.umfang + eck2.umfang;
            return(tmp);
        }
        static void Main(string[] args)
        {
            Rechteck blumenbeet = new Rechteck(10, 15)
            {
                bepflanzung = "Gras"
            };                                                                         // string so hinzufügen, statt ein weiteres mal zu überladen

            /* blumenbeet.umfang = 0; // deswegen wird in Rechteck der setter ignoriert    // Abruf hierdurch vom Setter */
            WriteLine("Der Zaun um das Blumenbeet ist:\t{0} Meter lang", blumenbeet.umfang);
            WriteLine("Es müssen hier ganze {0,6:F2} m² Fläche begossen werden", blumenbeet.flaeche);
            WriteLine(blumenbeet.bepflanzung);              // bepflanzung wird angezeigt
            ReadLine();

            Kreis rund = new Kreis(10.5);

            WriteLine("Einmal um den Teich herum macht {0,6:F2} Meter gelaufen", rund.umfang);
            WriteLine("Der Seerosenteich hat eine Fläche von {0,6:F2} m²", rund.flaeche);
            WriteLine("Der Radius ist dann {0} m", rund.radius);
            ReadLine();

            Rechteck rasen = new Rechteck(40, 80)
            {
                bepflanzung = "Gras"
            };

            WriteLine("Der Linie um den Rasen ist:\t{0} Meter lang", rasen.umfang);
            WriteLine("Es müssen hier ganze {0,6:F2} m² Fläche begossen werden", rasen.flaeche);
            WriteLine(rasen.bepflanzung);
            ReadLine();

            double gesamtFlaeche = rasen.flaeche + blumenbeet.flaeche;

            WriteLine(gesamtFlaeche);
            WriteLine(rasen.flaeche + blumenbeet.flaeche);

            double gesamtUmfang = rasen.umfang + blumenbeet.umfang;

            WriteLine(gesamtUmfang);
            ReadLine();

            // neuesRechteck = rasen + blumenbeet;
            // Operatoren überladen, zusätzlich definieren was macht ein + zwischen zwei Objekten von Klasse Rechteck
            Rechteck neuesRechteck = rasen + blumenbeet;

            WriteLine("Die Gesamtlinie um Rasen und Blumenbeet sind :\t{0} Meter lang", neuesRechteck.umfang);
            WriteLine("Die Gesamtfläche von Rasen und Blumenbeet sind :\t{0} m²", neuesRechteck.flaeche);
            WriteLine("{0} mal {1}", neuesRechteck.breite, neuesRechteck.laenge);
            ReadLine();

            Kreis runder1 = new Kreis(1);

            WriteLine("Einmal um den Teich1 herum macht {0,6:F2} Meter gelaufen", runder1.umfang);
            WriteLine("Der Seerosenteich1 hat eine Fläche von {0,6:F2} m²", runder1.flaeche);
            WriteLine("Der Radius ist dann {0} m", runder1.radius);
            ReadLine();


            Kreis runder2 = new Kreis(1);

            WriteLine("Einmal um den Teich2 herum macht {0,6:F2} Meter gelaufen", runder2.umfang);
            WriteLine("Der Seerosenteich2 hat eine Fläche von {0,6:F2} m²", runder2.flaeche);
            WriteLine("Der Radius ist dann {0} m", runder2.radius);
            ReadLine();

            Kreis neuerKreis = runder1 + runder2;

            WriteLine("Doppelteich Fläche {0,6:F2} m²", neuerKreis.flaeche);
            WriteLine("Doppelteich Radius {0,4:F2} Meter", neuerKreis.radius);
        }