public static void Main(string[] args) { Console.WriteLine(); Fahrzeug dick = new Fahrzeug(11, 120, 14); Console.WriteLine(dick + "\n"); Fahrrad butt = new Fahrrad(11, 100, 13, 14); Console.WriteLine(butt); butt.beladen(2); Console.WriteLine(); Console.WriteLine(butt); }
static void Main(string[] args) { Fahrzeug fahrrad = new Fahrrad(); // nicht möglich // Fahrrad fahrrad = new Fahrzeug(); Console.WriteLine($"{(fahrrad.GetType()).GetType()}"); Console.WriteLine($"{(typeof(Fahrrad)).GetType()}"); Console.WriteLine($"{fahrrad.GetType() == typeof(Fahrrad)}"); Console.WriteLine($"{fahrrad.GetType() == typeof(Fahrzeug)}"); Console.WriteLine($"{Environment.NewLine}"); Console.WriteLine($"{fahrrad is Fahrrad}"); // true Console.WriteLine($"{fahrrad is Fahrzeug}"); // true Console.ReadLine(); }
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) { // (1) Fahrzeugobjekte anlegen Auto a1 = new Auto("LU 25958", "Toyota", "Corolla"); Auto a2 = new Auto("LU 122298"); a2.Marke = "Volvo"; a2.Typ = "V40"; a2.Motor.Hubraum = 1800; //ccm a2.Motor.Leistung = 135; //PS a2.Motor.AnzahlZylinder = 4; //Zylinder a2.Motor.Bauart = Motorbauuarten.ReihenMotor; Auto a3 = new Auto("LU 64624", "VW", "Käfer", 1500 /*ccm*/, 70 /*PS*/, 4 /*Zylinder*/, Motorbauuarten.BoxerMotor); // Motorrad m1 = new Motorrad("LU 14062", "Kawasaki", "Zephir"); Motorrad m2 = new Motorrad("LU 14064"); m2.Marke = "Piaggio"; m2.Typ = "Vespa"; m2.Motor.Hubraum = 125; //ccm m2.Motor.Leistung = 8; //PS m2.Motor.AnzahlZylinder = 1; //Zylinder Motorrad m3 = new Motorrad("LU 74256", "Yamaha", "XV Wildstar", 1600 /*ccm*/, 63 /*PS*/, 2 /*Zylinder*/, Motorbauuarten.VMotor); // Fahrrad f1 = new Fahrrad("K124AS123", "Wheeler", "Cross1"); Fahrrad f2 = new Fahrrad("D424AS144"); f2.Marke = "Wheeler"; f2.Typ = "Cross3"; Fahrrad f3 = new Fahrrad("K123AD351", "Wheeler", "Cross3"); // (2) Fahrzeugobjekte im Fahrzeugverzeichnis(Arrayliste) speichern Fahrzeugverzeichnis f = new Fahrzeugverzeichnis(); f.Add(a1); f.Add(a2); f.Add(a3); f.Add(m1); f.Add(m2); f.Add(m3); f.Add(f1); f.Add(f2); f.Add(f3); // (3) Personenobjekte erstellen Person p1 = new Person(); p1.setPersNr(120); p1.setName("Gugerli"); p1.setVorname("Armin"); p1.setStrasse("Schürstrasse"); p1.getWohnort().setPlz("6020"); p1.getWohnort().setOrt("Emmenbruecke"); Person p2 = new Person(123, "Bucher", "Roland", "Sonnbüel13"); p2.getWohnort().setPlz("6024"); p2.getWohnort().setOrt("Hildisrieden"); Person p3 = new Person(130, "Waldburger", "Max", "Hauptweg 101", new Ortschaft("8805", "Freienbach")); // (4) Fahrzeuge den Personenobjekten zuweisen oder/und umgekehrt a1.setBesitzer(p2); m1.setBesitzer(p2); a2.setBesitzer(p2); p1.AddFahrzeug(a2); p1.AddFahrzeug(f2); // (5) Ausgabe aller Fahrzeuge Console.WriteLine("*********************************"); Console.WriteLine("A L L E F A H R Z E U G E "); Console.WriteLine("*********************************"); foreach (Fahrzeug f in Fahrzeugverzeichnis.Fahrzeuge) { f.Datenausgabe(); Console.WriteLine("----------------------------------"); } Console.WriteLine("*********************************"); Console.WriteLine("A L L E P E R S O N E N "); Console.WriteLine("*********************************"); p1.Datenausgabe(); p2.Datenausgabe(); p3.Datenausgabe(); Console.ReadLine(); }