Übungsaufgaben Kapselung

Zusammenfügung in Program
main
Sebastian Schüler 2024-06-25 10:56:04 +02:00
parent e73836d059
commit 679bad3a00
4 changed files with 136 additions and 2 deletions

View File

@ -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
}
}

View File

@ -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
}

View File

@ -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<string> LastWords = new();
public int ChangeCounter = 0;
public string? LastString;
//Code ENDE
}
}

View File

@ -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<ExerciseElement>()
{
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<ExerciseElement>()
{
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,