Exemple #1
0
        static void Main(string[] args)
        {
            #region In Datei schreiben
            Transportmittel transportmittel = new Transportmittel("Mercedes", 30000.00, 280);
            string          jsonString      = JsonConvert.SerializeObject(transportmittel);
            StreamWriter    streamWriter    = new StreamWriter("Transportmittel.json");
            streamWriter.Write(jsonString);
            // Ohne Close bleibt die Datei leer
            streamWriter.Close();
            #endregion

            #region Aus Datei lesen
            StreamReader streamReader = new StreamReader("Transportmittel.json");
            var          objekt       = JsonConvert.DeserializeObject <Transportmittel>(streamReader.ReadToEnd());
            streamReader.Close();
            Console.WriteLine($"objekt is Transportmittel: {objekt is Transportmittel}");
            Console.WriteLine($"{objekt.BeschreibeMich()}");
            #endregion

            PKW    pkw    = new PKW("Audi", 30000.00, 250, 4, 4, 0);
            string fileDB = "FileDB.json";
            //Schreibe(pkw, fileDB);
            Schreibe(pkw);

            Console.WriteLine(
                Lese <PKW>(fileDB).BeschreibeMich()
                );
            Console.ReadKey();
        }
        public void BeschleunigeÜberMaxG()
        {
            // z.B. Methode Beschleunige() darf die AktGeschw. nicht höher setzen als MaxGeschw
            Transportmittel transportmittel = new Transportmittel("Rollschuhe", 50, 100);

            transportmittel.StarteMotor();
            transportmittel.Beschleunige(150);
            Assert.AreEqual(transportmittel.AktuelleGeschwindigkeit, transportmittel.MaximalGeschwindigkeit);
        }
Exemple #3
0
 public static bool FahrzeugBeladen(Transportmittel aufnehmendesFahrzeug, Transportmittel zuBeladendesObject)
 {
     if (aufnehmendesFahrzeug is IKannAndereTransportieren)
     {
         if (!(aufnehmendesFahrzeug as IKannAndereTransportieren).Belade(zuBeladendesObject))
         {
             Console.WriteLine($"{zuBeladendesObject} kann nicht beladen werden!");
             return(false);
         }
         return(true);
     }
     else
     {
         Console.WriteLine($"{aufnehmendesFahrzeug} erfüllt das Interface IBeladbar nicht!");
         return(false);
     }
 }
        static void Main(string[] args)
        {
            Transportmittel transportmittel = new Transportmittel("Kutsche", 450.23, 200);

            Console.OutputEncoding = Encoding.Unicode;
            Console.WriteLine(transportmittel.BeschreibeMich());

            PKW pkw = new PKW("Audi", 45.45, 189, 3, 45);

            Console.WriteLine(pkw.BeschreibeMich());

            Schiff schiff = new Schiff("Titanic", 2000000.00, 150, Schiff.SchiffsTreibstoff.Diesel);

            Console.WriteLine(schiff.BeschreibeMich());

            Flugzeug flugzeug = new Flugzeug("Boeing", 356433222.22, 500, 7, 20000);

            Console.WriteLine(flugzeug.BeschreibeMich());

            Console.ReadKey();
        }
Exemple #5
0
        static void Main(string[] args)
        {
            #region Klassen & static
            Console.WriteLine("\n ### Klassen & statische Methoden ###");
            Class1 class1 = new Class1();
            class1.Void();
            Class1.StaticVoid();
            #endregion

            #region Polymorphismus
            Console.WriteLine("\n ### Fahrrad & Polymorphismus ###");
            Transportmittel fahrrad1 = new Fahrrad("Nextbike", 400.00, 50, 2, 0);
            Fahrrad         fahrrad2 = new Fahrrad("Lidlbike", 300.00, 45, 2, 0);

            Console.WriteLine("\n # Overrides #");
            Console.WriteLine(fahrrad1.BeschreibeMich());
            Console.WriteLine(fahrrad2.BeschreibeMich());

            Console.WriteLine("\n # Overloads #");
            fahrrad1.Beschleunigen(5);
            fahrrad2.Beschleunigen(5);
            #endregion

            #region Interfaces
            Console.WriteLine("\n # Interfaces & Klassenverschachtelung #");
            bool kannBeladenWerden;
            kannBeladenWerden = FahrzeugBeladen(new Schiff("Marina", 200000.00, 300, Schiff.SchiffsTreibstoff.Diesel), new PKW("BMW", 20000.00, 250, 5, 4, 2000));
            Console.WriteLine($"Können Schiffe PKWs transportieren?: {kannBeladenWerden}");
            kannBeladenWerden = FahrzeugBeladen(new Fahrrad("Fordbike", 5000.00, 60, 2, 4444), new PKW("BMW", 20000.00, 250, 5, 4, 2000));
            Console.WriteLine($"Können Fahrräder PKWs transportieren?: {kannBeladenWerden}");
            #endregion

            #region Generics
            Console.WriteLine("\n ### Generische Datenstrukturen ###");
            Queue <Transportmittel> FahrzeugSchlange = new Queue <Transportmittel>();
            Stack <Transportmittel> FahrzeugStack    = new Stack <Transportmittel>();
            Dictionary <Transportmittel, Transportmittel> FahrzeugDictionary = new Dictionary <Transportmittel, Transportmittel>();

            Random random = new Random();

            //FahrzeugSchlange und Stack mit 10 zufällig erzeugten Fahrzeugtypen befüllen
            for (int i = 0; i < 10; i++)
            {
                Transportmittel neuesFahrzeug = null;

                switch ((Fahrzeugtypen)random.Next(3))
                {
                case Fahrzeugtypen.Flugzeug: neuesFahrzeug = new Flugzeug("Boing 474", 10000000, 800, 200, 6, 0); break;

                case Fahrzeugtypen.PKW: neuesFahrzeug = new PKW("Opel Astra", 20000, 190, 4, 4, 0); break;

                case Fahrzeugtypen.Schiff: neuesFahrzeug = new Schiff("Titanik", 100000000, 200, Schiff.SchiffsTreibstoff.Dampf); break;

                default: Console.WriteLine("Ungültiger Flugzeugtyp!"); break;
                }

                if (neuesFahrzeug != null)
                {
                    FahrzeugSchlange.Enqueue(neuesFahrzeug);
                    FahrzeugStack.Push(neuesFahrzeug);
                }
            }

            //Namen der FahrzeugSchlangen-Elemente ausgeben
            foreach (var item in FahrzeugSchlange)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine("----------------");
            //Namen der FahrzeugStack-Elemente ausgeben
            foreach (var item in FahrzeugStack)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine("----------------");

            for (int i = 0; i < 10; i++)
            {
                Transportmittel newElementFromQueue = FahrzeugSchlange.Dequeue();
                Transportmittel newElementFromStack = FahrzeugStack.Pop();
                if (FahrzeugBeladen(newElementFromQueue, newElementFromStack))
                {
                    FahrzeugDictionary.Add(newElementFromQueue, newElementFromStack);
                }
            }

            Console.WriteLine("----------------");

            foreach (var item in FahrzeugDictionary)
            {
                Console.WriteLine($"Beladbares Objekt {item.Key} hat {item.Value} beladen.");
            }

            #endregion



            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            Transportmittel transport = new Transportmittel("BMW", 4365.345, 200);

            // Bemerkung zu statischen Methoden / Memebers
            // transport.kmToMilesAndOtherWayBack(4.33, "miles"); // nicht möglich über Instanzverweis, weil Methode static
            double km = Transportmittel.kmToMilesAndOtherWayBack(4.33, "miles");

            PKW audiPKW = new PKW("Audi", 20000.30, 240, 5, 3000);

            // Bemerkung zu 'virtual & override' Methoden und Methoden mit 'new'
            Console.WriteLine(@$ "
BeschreibeMich von Transportmittel transport:
{transport.BeschreibeMich()}
");
            Console.WriteLine(@$ "

BeschreibeMich von PKW audiPKW:
{audiPKW.BeschreibeMich()}
");

            Console.WriteLine(@$ "

StarteMotor von Transportmittel transport:
");
            transport.StarteMotor();

            Console.WriteLine(@$ "

StarteMotor von PKW audiPKW:
");
            audiPKW.StarteMotor();

            Transportmittel audiTransportmittel = new PKW("Audi", 20000.30, 240, 5, 3000);

            Console.WriteLine(@$ "

StarteMotor von Transportmittel audiTransportmittel (mit Konstruktor von PKW):
");
            audiTransportmittel.StarteMotor();


            Console.WriteLine(@$ "
BeschreibeMich von Transportmittel audiTransportmittel (mit Konstruktor von PKW):
{audiTransportmittel.BeschreibeMich()}
");

            Flugzeug        flugzeug   = new Flugzeug("Boeing", 2_000_000.34, 400, 11, 34_999);
            Transportmittel transport1 = new Transportmittel("Auto", 100_000.00, 230);

            // ================================================
            Console.WriteLine("\n\nMethode die Prüft, ob Beladen möglich ist");
            Console.WriteLine("BeladeWennMöglich(flugzeug, t1): {0}", BeladeWennMöglich(flugzeug, transport1));


            bool BeladeWennMöglich(Transportmittel t1, Transportmittel t2)
            {
                if (t1 is Flugzeug && t2 is PKW)
                {
                    // Belade() ist nicht bei Transportmittel dabei
                    // Casting notwendig
                    // ((Flugzeug)t1).Belade(new Transportmittel[] { t2 });
                    // oder den Typ anpassen
                    (t1 as Flugzeug).Belade(new Transportmittel[] { t2 });
                    return(true);
                }
                else if (t1 is PKW && t2 is Flugzeug)
                {
                    (t2 as Flugzeug).Belade(new Transportmittel[] { t1 });
                    return(true);
                }
                else
                {
                    return(false);
                }
            }

            Console.ReadLine();
        }