Daten systemübergreifend bereitstellen – OOP, JSON/XML, Git, Pseudocode
Hake die Themen ab, die du bereits beherrschst. Dein Fortschritt wird gespeichert.
| Themenbereich | Punkte | Anteil |
|---|---|---|
| SQL – Abfragen und Datenmanipulation | 22 | 22% |
| JSON & XML – Datenaustauschformate | 18 | 18% |
| OOP – Objektorientierte Programmierung | 28 | 28% |
| Git – Versionskontrolle | 16 | 16% |
| Algorithmen & Pseudocode | 16 | 16% |
| Gesamt | 100 | 100% |
| Modifikator | Zugriff | Verwendung |
|---|---|---|
public |
Von überall | Öffentliche Schnittstellen, API-Methoden |
private |
Nur innerhalb der Klasse | Interne Implementierungsdetails, Attribute |
protected |
Klasse + abgeleitete Klassen | Attribute/Methoden für Vererbung |
internal |
Innerhalb der Assembly | Projektinterne Klassen |
public abstract class Tier
{
// ABSTRACT: Keine Implementierung, MUSS überschrieben werden
public abstract void GibLaut();
// VIRTUAL: Hat Implementierung, KANN überschrieben werden
public virtual string GetInfo()
{
return "Ich bin ein Tier";
}
}
public class Hund : Tier
{
// MUSS implementiert werden (abstract)
public override void GibLaut()
{
Console.WriteLine("Wuff!");
}
// Optional: virtual überschreiben
public override string GetInfo()
{
return base.GetInfo() + " - genauer: ein Hund";
}
}abstract = "Du MUSST das implementieren!"virtual = "Du KANNST das überschreiben, musst aber nicht."
public class Fahrzeug
{
protected string marke;
// Konstruktor der Basisklasse
public Fahrzeug(string marke)
{
this.marke = marke;
}
}
public class Auto : Fahrzeug
{
private int tueren;
// base() ruft den Konstruktor der Basisklasse auf
public Auto(string marke, int tueren) : base(marke)
{
this.tueren = tueren;
}
}base() sorgt dafür, dass die geerbten Attribute korrekt initialisiert werden. Der Konstruktor der Basisklasse wird VOR dem eigenen Konstruktorcode ausgeführt.
// Variable vom Typ der Basisklasse...
Tier meinTier = new Hund();
// ...aber zur LAUFZEIT wird die Methode von Hund aufgerufen!
meinTier.GibLaut(); // Ausgabe: "Wuff!"
// Das ist Polymorphie: Die tatsächliche Methode wird
// anhand des ECHTEN Objekttyps bestimmt, nicht des Variablentypsnew? Das bestimmt, welche überschriebene Methode aufgerufen wird!
{
"artikel": {
"nummer": "A-001",
"bezeichnung": "USB-Kabel",
"preis": 4.99,
"verfuegbar": true,
"lagerorte": [
{ "name": "Halle A", "menge": 50 },
{ "name": "Halle B", "menge": 30 }
]
}
}| Typ | Beispiel | Hinweis |
|---|---|---|
| String | "Hallo Welt" |
Immer in doppelten Anführungszeichen |
| Number | 42, 3.14 |
Keine Anführungszeichen! |
| Boolean | true, false |
Kleingeschrieben, keine Anführungszeichen |
| Array | ["a", "b", "c"] |
Eckige Klammern |
| Object | {"key": "value"} |
Geschweifte Klammern |
| null | null |
Kein Wert vorhanden |
<?xml version="1.0" encoding="UTF-8"?>
<artikel>
<nummer>A-001</nummer>
<bezeichnung>USB-Kabel</bezeichnung>
<preis waehrung="EUR">4.99</preis>
<verfuegbar>true</verfuegbar>
<lagerorte>
<lagerort>
<name>Halle A</name>
<menge>50</menge>
</lagerort>
</lagerorte>
</artikel>| Aspekt | JSON | XML |
|---|---|---|
| Lesbarkeit | ✅ Kompakter | ⚠️ Mehr Text |
| Datentypen | ✅ Native Typen | ⚠️ Alles Text |
| Kommentare | ❌ Nicht möglich | ✅ Möglich |
| Schema | ⚠️ JSON Schema | ✅ DTD, XSD |
| Lokal | Remote |
|---|---|
| Auf deinem Rechner | Auf Server (GitHub...) |
| Offline nutzbar | Für Teamarbeit |
git add datei.cs # Zum Staging
git commit -m "Nachricht" # Lokal committen
git push # Auf Remote
git pull # Vom Remote holenEntstehen wenn zwei Branches die gleiche Stelle unterschiedlich geändert haben.
FUNKTION findeMaximum(zahlen):
maximum = zahlen[0]
FÜR JEDE zahl IN zahlen:
WENN zahl > maximum DANN:
maximum = zahl
RÜCKGABE maximumFUNKTION findeUnterMindestbestand(artikel):
ergebnisListe = leere Liste
FÜR JEDEN art IN artikel:
WENN art.bestand < art.mindest DANN:
füge art zu ergebnisListe hinzu
RÜCKGABE ergebnisListeFUNKTION berechneGesamtwert(artikel):
summe = 0
FÜR JEDEN art IN artikel:
summe = summe + (art.menge * art.preis)
RÜCKGABE summeTeste dein Wissen! Die richtigen Antworten sind gemischt verteilt.
ergebnis = 0
FÜR JEDE zahl IN liste:
ergebnis = ergebnis + zahl
RÜCKGABE ergebnismax = liste[0]
FÜR JEDE zahl IN liste:
WENN zahl > max DANN:
max = zahl
RÜCKGABE maxanzahl = 0
FÜR JEDE zahl IN liste:
WENN zahl > 3 DANN:
anzahl = anzahl + 1
RÜCKGABE anzahl