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); }
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(); }
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(); }