From 679bad3a001050619633b04757db4892bee967b1 Mon Sep 17 00:00:00 2001 From: sebi Date: Tue, 25 Jun 2024 10:56:04 +0200 Subject: [PATCH] =?UTF-8?q?=C3=9Cbungsaufgaben=20Kapselung=20Zusammenf?= =?UTF-8?q?=C3=BCgung=20in=20Program?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- E44_Kapselung/Exercise_1.cs | 25 +++++++++++++++++ E44_Kapselung/Exercise_2.cs | 25 +++++++++++++++++ E44_Kapselung/Exercise_3.cs | 53 +++++++++++++++++++++++++++++++++++++ Program.cs | 35 ++++++++++++++++++++++-- 4 files changed, 136 insertions(+), 2 deletions(-) create mode 100644 E44_Kapselung/Exercise_1.cs create mode 100644 E44_Kapselung/Exercise_2.cs create mode 100644 E44_Kapselung/Exercise_3.cs diff --git a/E44_Kapselung/Exercise_1.cs b/E44_Kapselung/Exercise_1.cs new file mode 100644 index 0000000..ed70460 --- /dev/null +++ b/E44_Kapselung/Exercise_1.cs @@ -0,0 +1,25 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E44_Kapselung +{ + // Sorgen Sie dafür, dass der Wert in Number immer dreistellig ist. Setzen Sie dann in Start() den Wert und geben Sie diesen auf der Konsole aus. + + class Exercise_1 + { + public static void Start() + { + //Code START + + //Code ENDE + } + } + + class NumberSaver + { + //Code START + public int Number; + //Code ENDE + } +} \ No newline at end of file diff --git a/E44_Kapselung/Exercise_2.cs b/E44_Kapselung/Exercise_2.cs new file mode 100644 index 0000000..9f1bac0 --- /dev/null +++ b/E44_Kapselung/Exercise_2.cs @@ -0,0 +1,25 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E44_Kapselung +{ + //Schreiben Sie eine Klasse ArrayPacker. Lagern Sie die Array-Variable in diese Klasse aus. Sorgen Sie dafür, dass dieses Array niemals null werden kann. + class Exercise_2 + { + //Code START + static int[]? intArray = null; + //Code ENDE + + public static void Start() + { + //Code START + intArray = new int[]{12,23,34,45,56,56}; + //Code ENDE + } + } + + //Code START + + //Code ENDE +} \ No newline at end of file diff --git a/E44_Kapselung/Exercise_3.cs b/E44_Kapselung/Exercise_3.cs new file mode 100644 index 0000000..09bfeba --- /dev/null +++ b/E44_Kapselung/Exercise_3.cs @@ -0,0 +1,53 @@ +using System; +using System.IO; +using System.Collections.Generic; + +namespace Exercises_C_Sharp.E44_Kapselung +{ + // Sie wollen eine Klasse schreiben, in der Sie einen String hinterlegen können. Der String kann im Nachhinein wieder ausgelesen werden. Folgende Eigenschaften sollen erfüllt werden: + // - Kapseln Sie die Felder in der Klasse Wordsaver und implementieren Sie die Logik, die sich jetzt in der Start-Methode befindet, in die Wordsaver-Klasse. + // - Rufen Sie die Klasse Wordsaver mit einem Konstruktor mit dem ersten zu setzenden String auf. + // - Lassen Sie es nicht zu, dass man von außerhalb der Klasse den Counter ändern kann. + // - Alle Werte, die Sie außerhalb der Klasse nicht brauchen, dürfen auch nicht zugänglich sein. + class Exercise_3 + { + public static void Start() + { + //Code START + + + //Erstellen des Objekts + Wordsaver wordsaver = new(); + //Wenn bereits ein Wort darin ist, die die Liste der vergangenen String hineinschreiben + if(!string.IsNullOrWhiteSpace(wordsaver.LastString)) + wordsaver.LastWords.Add(wordsaver.LastString); + //Neuen String setzen + wordsaver.LastString = "Hallo"; + //Anzahl der gesetzten Strings erhöhen + wordsaver.ChangeCounter++; + + + + //Code ENDE + } + + // So sollte die Start-Methode eigentlich (nach Ihren Änderungen) aussehen: + // + //Wordsaver wordsaver = new("Hallo"); + //Console.WriteLine(wordsaver.Word); //Ausgabe: Hallo + //Console.WriteLine(wordsaver.ChangeCounter); //Ausgabe: 1 + //wordsaver.Word = "Hi"; + //wordsaver.Word = "Hey"; + //Console.WriteLine(wordsaver.Word); //Ausgabe: Hey + //Console.WriteLine(wordsaver.ChangeCounter); //Ausgabe: 3 + } + + class Wordsaver + { + //Code START + public List LastWords = new(); + public int ChangeCounter = 0; + public string? LastString; + //Code ENDE + } +} \ No newline at end of file diff --git a/Program.cs b/Program.cs index 45de236..b5d3075 100644 --- a/Program.cs +++ b/Program.cs @@ -597,7 +597,37 @@ namespace Exercises_C_Sharp new(){Name = "Aufgabe 2", Method = Exercises_C_Sharp.E38_MySQL.Exercise_2.Start} } }; - + //************************ + //******* Kapselung ****** + //************************ + ExerciseGroup kapselungElements = new() + { + Name = "44. Kapselung", + ElementList = new List() + { + new(){Name = "Aufgabe 1", Method = Exercises_C_Sharp.E44_Kapselung.Exercise_1.Start}, + new(){Name = "Aufgabe 2", Method = Exercises_C_Sharp.E44_Kapselung.Exercise_2.Start}, + new(){Name = "Aufgabe 3", Method = Exercises_C_Sharp.E44_Kapselung.Exercise_3.Start} + } + }; + //************************ + //******** Pattern ******* + //************************ + ExerciseGroup patternElements = new() + { + Name = "46. Designpattern", + ElementList = new List() + { + new(){Name = "Singleton", Method = Exercises_C_Sharp.E46_Designpattern.Exercise_1.Start}, + new(){Name = "Factory", Method = Exercises_C_Sharp.E46_Designpattern.Exercise_2.Start}, + new(){Name = "Observer", Method = Exercises_C_Sharp.E46_Designpattern.Exercise_3.Start}, + new(){Name = "Strategy", Method = Exercises_C_Sharp.E46_Designpattern.Exercise_4.Start}, + new(){Name = "Decorator", Method = Exercises_C_Sharp.E46_Designpattern.Exercise_5.Start}, + new(){Name = "Adapter", Method = Exercises_C_Sharp.E46_Designpattern.Exercise_6.Start}, + new(){Name = "Facade", Method = Exercises_C_Sharp.E46_Designpattern.Exercise_7.Start}, + new(){Name = "Command", Method = Exercises_C_Sharp.E46_Designpattern.Exercise_8.Start} + } + }; @@ -694,7 +724,8 @@ namespace Exercises_C_Sharp fileformatsElements, serializeElements, mysqlElements, - + kapselungElements, + patternElements, specialElements, developElements,