Stefan Macke
Stefan Macke
  • Видео 58
  • Просмотров 198 504
Hausaufgabe 13 - Objektorientierung: Kapselung/Vererbung/Polymorphie
Deine Hausaufgabe:
Wenn die Technikerin schonmal im Haus ist, soll sie gleich
auch die Kasse der Kantine warten.
Lege ein Interface "Wartbar" an mit den Methoden "void schalteAn()",
"void schalteAus()" und "void fuehreWartungDurch()".
Lege eine neue Klasse "Kasse" an und lass sie das Interface implementieren.
Die Methode fuehreWartungDurch() kann z.B. diese Ausgabe erzeugen "Kasse: Ersetze Bonrolle".
Überschreibe die Methode toString() in Kasse mit einer sinnvollen Implementierung.
Lasse die Klasse Getraenkeautomat das Interface Wartbar implementieren.
Ändere die Methode warte() in Klasse Technikerin so, dass sie Wartbar als Parameter bekommt.
Lasse die Technikerin in der Main-Methode in Kantine...
Просмотров: 193

Видео

Interfaces (Teil 13) - Objektorientierung: Kapselung/Vererbung/Polymorphie
Просмотров 2362 месяца назад
In Teil 13 meines Kurses zu den drei Säulen der Objektorientierung geht es um Interfaces als Alternative zur Vererbung. Es ist wichtig, die Unterschiede zwischen Interfaces und Basisklassen zu kennen und ihre jeweiligen Vor- und Nachteile erklären zu können. Daher ist dies meine längste Episode im Kurs. Hier gibt es noch den Link zum "Diamantenproblem" bei der Mehrfachvererbung: fiae.link/Diama...
Hausaufgabe 12 - Objektorientierung: Kapselung/Vererbung/Polymorphie
Просмотров 892 месяца назад
Deine Hausaufgabe: Überschreibe die Methode toString() in Kaffeesorte und Softdrinksorte und implementiere sie wie getName(). Lösche die Methode getName() und korrigiere alle Aufrufe, indem du dich auf den automatischen Aufruf von toString() verlässt. Überschreibe die Methode toString() in Getraenkeautomat und rufe darin getBeschreibung() auf. Überschreibe die Methode toString() in Techikerin u...
Überschreiben von toString() (Teil 12) - Objektorientierung: Kapselung/Vererbung/Polymorphie
Просмотров 1372 месяца назад
In Teil 12 meines Kurses zu den drei Säulen der Objektorientierung geht es um das Überschreiben der Methode toString() und die Funktionsweise von System.out.println(). Spoiler: Es wird um die Vertiefung der Polymorphie gehen! :-) Deine Hausaufgabe: Überschreibe die Methode toString() in Kaffeesorte und Softdrinksorte und implementiere sie wie getName(). Lösche die Methode getName() und korrigie...
Hausaufgabe 11 - Objektorientierung: Kapselung/Vererbung/Polymorphie
Просмотров 862 месяца назад
Deine Hausaufgabe: Ergänze die Klasse Getraenkeautomat um die Methoden "void schalteAn()" und "void schalteAus()", die z.B. ausgeben "KVA-007 ausgeschaltet". Erstelle eine neue Klasse "Technikerin" mit Attribute "Name" und Getter und Setter. Füge eine Methode "void warte(Getraenkeautomat getraenkeautomat)" hinzu. Implementiere die Methode so, dass die Technikerin ihren Namen sagt und die Wartun...
Polymorphie (Teil 11) - Objektorientierung: Kapselung/Vererbung/Polymorphie
Просмотров 1672 месяца назад
In Teil 11 meines Kurses zu den drei Säulen der Objektorientierung geht es um die letzte Säule: die Polymorphie. Dieses Prinzip der Objektorientierung können viele Prüflinge nicht korrekt erklären. Daher werden wir uns nun intensiv damit auseinandersetzen. Deine Hausaufgabe: Ergänze die Klasse Getraenkeautomat um die Methoden "void schalteAn()" und "void schalteAus()", die z.B. ausgeben "KVA-00...
Hausaufgabe 10 - Objektorientierung: Kapselung/Vererbung/Polymorphie
Просмотров 712 месяца назад
Deine Hausaufgabe: Mache die Klasse Getraenkeautomat abstract. Mache die Methoden setFuellstand() und fuelleAuf() final. Füge eine abstrakte Methode "void fuehreWartungDurch()" hinzu. Implementiere die Methode in Kaffeeautomat (Ausgabe z.B. "KVA-007: Tausche Heizspirale aus") und Softdrinkautomat (Ausgabe z.B. "SDA-001: Fülle Kühlmittel nach"). Führe am Ende der Main-Methode in Kantine eine War...
abstract und final (Teil 10) - Objektorientierung: Kapselung/Vererbung/Polymorphie
Просмотров 1302 месяца назад
In Teil 10 meines Kurses zu den drei Säulen der Objektorientierung geht es um zwei neue Schlüsselwörter zur Einschränkung der Vererbung: abstract und final. Mit abstract können wir Klassen als nicht instanziierbar kennzeichnen und Methoden ohne Implementierung erzeugen. Und mit final können wir Methoden als nicht überschreibbar kennzeichnen. Deine Hausaufgabe: Mache die Klasse Getraenkeautomat ...
Hausaufgabe 09 - Objektorientierung: Kapselung/Vererbung/Polymorphie
Просмотров 772 месяца назад
Deine Hausaufgabe: Überschreibe getBeschreibung() in Kaffeeautomat und Softdrinkautomat so, dass alle Informationen korrekt und spezifisch ausgegeben werden. Passe dafür auch getBeschreibung() in Getraenkeautomat an. 00:00 Einleitung 00:14 Bisheriger Stand 00:56 getBeschreibung() in Basisklasse ändern 01:29 getBeschreibung() überschreiben 01:56 super für Aufruf der Basisklasse 02:26 Verhalten e...
Überschreiben von Methoden (Teil 9) - Objektorientierung: Kapselung/Vererbung/Polymorphie
Просмотров 1182 месяца назад
In Teil 9 meines Kurses zu den drei Säulen der Objektorientierung geht es um das Überschreiben von Methoden bei der Vererbung. Dabei wird in der Subklasse eine Methode mit der gleichen Signatur wie der einer Methode der Basisklasse angelegt. Dadurch kann die Subklasse das allgemeine Verhalten der Methode der Basisklasse um eigene Funktionalität erweitern. Deine Hausaufgabe: Überschreibe getBesc...
Hausaufgabe 08 - Objektorientierung: Kapselung/Vererbung/Polymorphie
Просмотров 722 месяца назад
Deine Hausaufgabe: Füge der Klasse Getraenkeautomat einen Konstruktur mit allen Attributen hinzu. Setze die Attribute im Konstruktor durch Aufruf der Setter. Mache den Setter für die Bezeichnung in Getraenkeautomat private. Rufe den Konstruktor der Basisklasse in Kaffeeautomat und Softdrinkautomat auf. 00:00 Einleitung 00:19 Konstruktor für Getraenkeautomat 02:08 Setter private machen 02:30 Kon...
super zum Zugriff auf die Basisklasse (Teil 8) - Objektorientierung: Kapselung/Vererbung/Polymorphie
Просмотров 1192 месяца назад
In Teil 8 meines Kurses zu den drei Säulen der Objektorientierung schauen wir uns das Schlüsselwort super etwas genauer an und führen auch in der Basisklasse eine saubere Kapselung ein. Jede (!) Klasse sollte die Kapselung wahren, egal ob Basis-, Subklasse oder "normale" Klasse. Deine Hausaufgabe: Füge der Klasse Getraenkeautomat einen Konstruktur mit allen Attributen hinzu. Setze die Attribute...
Hausaufgabe 07 - Objektorientierung: Kapselung/Vererbung/Polymorphie
Просмотров 1052 месяца назад
Deine Hausaufgabe: Mache die Setter und fuelleAuf() in Getraenkeautomat protected und die übrigen Methoden public. Mache die Setter in Kaffeeautomat und Softdrinkautomat private und die übrigen Methoden inkl. Konstruktoren public. Mache die Konstruktoren von Kaffeeautomat und Softdrinkautomat public. Verschiebe die Klasse Kantine in ein Unterpackage und stelle sicher, dass die Setter an den Aut...
Sichtbarkeit protected (Teil 7) - Objektorientierung: Kapselung/Vererbung/Polymorphie
Просмотров 1362 месяца назад
In Teil 7 meines Kurses zu den drei Säulen der Objektorientierung führen wir einen neuen Sichtbarkeitsmodifizierer ein: protected. Damit können nur noch die Klasse selbst und ihre Subklassen Attribute oder Methoden sehen und sie nutzen. Eine wichtige Maßnahme zur Wahrung der Kapselung bei der Vererbung. Deine Hausaufgabe: Mache die Setter und fuelleAuf() in Getraenkeautomat protected und die üb...
Hausaufgabe 06 - Objektorientierung: Kapselung/Vererbung/Polymorphie
Просмотров 1332 месяца назад
Deine Hausaufgabe: Erzeuge eine Klasse "Getraenkeautomat" und übernimm alle Attribute und Methoden aus der Klasse Kaffeeautomat. Entferne alle Referenzen auf die Kaffeesorte. Passe auch getBeschreibung() entsprechend an. Mache alle Methoden public. Lass die Klasse Kaffeeautomat von Getraenkeautomat erben und entferne den doppelten Code für Bezeichnung und Füllstand. Erzeuge eine Klasse "Softdri...
Vererbung (Teil 6) - Objektorientierung: Kapselung/Vererbung/Polymorphie
Просмотров 2142 месяца назад
Vererbung (Teil 6) - Objektorientierung: Kapselung/Vererbung/Polymorphie
Hausaufgabe 05 - Objektorientierung: Kapselung/Vererbung/Polymorphie
Просмотров 1332 месяца назад
Hausaufgabe 05 - Objektorientierung: Kapselung/Vererbung/Polymorphie
Domänenspezifische Sprache (Teil 5) - Objektorientierung: Kapselung/Vererbung/Polymorphie
Просмотров 2122 месяца назад
Domänenspezifische Sprache (Teil 5) - Objektorientierung: Kapselung/Vererbung/Polymorphie
Hausaufgabe 04 - Objektorientierung: Kapselung/Vererbung/Polymorphie
Просмотров 1332 месяца назад
Hausaufgabe 04 - Objektorientierung: Kapselung/Vererbung/Polymorphie
Enums statt Strings (Teil 4) - Objektorientierung: Kapselung/Vererbung/Polymorphie
Просмотров 2442 месяца назад
Enums statt Strings (Teil 4) - Objektorientierung: Kapselung/Vererbung/Polymorphie
Hausaufgabe 03 - Objektorientierung: Kapselung/Vererbung/Polymorphie
Просмотров 1603 месяца назад
Hausaufgabe 03 - Objektorientierung: Kapselung/Vererbung/Polymorphie
Konstruktoren (Teil 3) - Objektorientierung: Kapselung/Vererbung/Polymorphie
Просмотров 2923 месяца назад
Konstruktoren (Teil 3) - Objektorientierung: Kapselung/Vererbung/Polymorphie
Hausaufgabe 02 - Objektorientierung: Kapselung/Vererbung/Polymorphie
Просмотров 1973 месяца назад
Hausaufgabe 02 - Objektorientierung: Kapselung/Vererbung/Polymorphie
Getter und Setter (Teil 2) - Objektorientierung: Kapselung/Vererbung/Polymorphie
Просмотров 4093 месяца назад
Getter und Setter (Teil 2) - Objektorientierung: Kapselung/Vererbung/Polymorphie
Hausaufgabe 01 - Objektorientierung: Kapselung/Vererbung/Polymorphie
Просмотров 3133 месяца назад
Hausaufgabe 01 - Objektorientierung: Kapselung/Vererbung/Polymorphie
Kapselung von Attributen und Methoden (Teil 1) - Objektorientierung: Kapselung/Vererbung/Polymorphie
Просмотров 8513 месяца назад
Kapselung von Attributen und Methoden (Teil 1) - Objektorientierung: Kapselung/Vererbung/Polymorphie
Voraussetzungen (Teil 0) - Objektorientierung: Kapselung/Vererbung/Polymorphie
Просмотров 1,1 тыс.3 месяца назад
Voraussetzungen (Teil 0) - Objektorientierung: Kapselung/Vererbung/Polymorphie
Virtualisierung und Containerisierung für die IT-Berufe (AP1)
Просмотров 3 тыс.5 месяцев назад
Virtualisierung und Containerisierung für die IT-Berufe (AP1)
Betriebsabrechnungsbogen (BAB) für die IT-Berufe (AP1 und AP2)
Просмотров 1,8 тыс.6 месяцев назад
Betriebsabrechnungsbogen (BAB) für die IT-Berufe (AP1 und AP2)
Handelskalkulation für die IT-Berufe (AP1)
Просмотров 6 тыс.7 месяцев назад
Handelskalkulation für die IT-Berufe (AP1)

Комментарии

  • @toktok3796
    @toktok3796 8 часов назад

    Hab dich kürzlich entdeckt und bin sprachlos vor lauter dankbarkeit. Wie kann man nur so ein guter mensch sein und zugleich so gut und empathisch erklären können ❤ danke für Dein schaffen!

  • @masoudhasanlu299
    @masoudhasanlu299 6 дней назад

    Hallo Stefan, vielen Danke für deine gute Erklärungen. Ich wollte fragen kann man sich diese drei Verhalten(Entry/do und Exit) als Methoden in einer klasse vorstellen ?

    • @StefanMacke
      @StefanMacke 4 дня назад

      Ja, wenn du den Zustandsautomaten programmierst, würdest du die Aktionen als Methoden implementieren. Schau die mal das Design Pattern "State" an, da siehst du, wie man das lösen kann.

  • @SUPERhessi
    @SUPERhessi 8 дней назад

    Das ist ein sehr schönes Lehrvideo zur Prüfungsvorbereitung, auch wenn ich zur objektorientierten Programmierung (OOP) aPie (ein Kuchen) (abstraction, polymorphism, inheritance, encapsulation) gelernt habe. Wer das Video zur Prüfungsvorbereitung sieht, möge bitte genau hier aufhören, meinen Kommentar weiter zu lesen und weiter das Video genießen, es ist WIRKLICH gut. OOP funktioniert nicht. Stellen wir uns vor, wir haben eine Firma (Objekt) mit Technikerinnen (Objekte) sowie eine Kantine (Objekt) mit Getränkeautomaten (Objekte). Das lässt sich ja noch schön einfach modellieren. Nun möchte die Kantine die Firma beauftragen, ihre Getränkeautomaten durch eine Technikerin warten zu lassen. Im echten Leben ein sehr einfacher Prozess, im OOP ist das schon fast unmöglich bzw. nur völlig absurd zu realisieren. Wie kommt jetzt die Technikerin an die Getränkeautomaten? Die Firma kann der Kantine keine Technikerin schicken, denn die Technikerin ist ein gekapselter Zustand der Firma. Ebensowenig kann die Kantine der Firma ihre Getränkeautomaten schicken, denn die Getränkeautomaten sind ein gekapselter Zustand der Kantine. Wir bekommen die beiden nur zusammen, wenn wir die Kapselung (und damit das Law of Demeter / OOP) aus dem Fenster werfen und vergessen. Das Problem lässt sich scheinbar lösen, indem die Firma der Kantine etwas schickt, das sich exakt genauso wie seine Technikerin verhält, aber gar nicht seine Technikerin ist (einen Klon). In der Kantine bekommt der Klon nun Klone der Getränkeautomaten zum warten, denn die echten sind ja ein gekapselter Zustand der Kantine. Gekapselt ist das aber trotzdem nicht, weil die Kantine jetzt einen Techniker-Klon hat, auf den die Firma aber noch Einfluss haben kann (Sie könnte eine Referenz auf den Klon behalten haben). Auch der Technikerinnen-Klon wartet nun Getränkeautomaten-Klone, auf die die Kantine immernoch Einfluss haben kann (Auch hier könnte die Kantine weiter Referenzen auf die Klone halten). Beide könnten die Klon-Objekte noch während des Wartungsprozesses verändern. Aber sind wir mal nett und tun so, als wären Firma und Kantine so verantwortungsvoll, ihre Klone nicht währen der Wartung selbst zu verändern ... Was nun passiert, hat mit guter Abbildung der Realität nichts mehr zu tun. Jetzt wartet der Ternikerinnen-Klon die geklonten Getränkeautomaten. Am Ende meldet der Technikerrinnen-Klon der Kantine: "Wenn ich deine Getränkeautomaten gewartet hätte, sähe das Ergebnis wie diese Klone hier aus". Anschließend kehrt der Technikerinnen-Klon in seine Firma zurück und meldet: "Wenn du eine Technikerin zur Wartung in die Kantine geschickt hättest, sähe sie so aus wie ich (Erschöpfung, aussehender Lohn ...)". Jetzt muss die Kantine all ihre gekapselten Getränkeautomaten anhand der Klone updaten, gleiches muss die Firma mit ihrer gekapselten Technikerin machen. Das klingt absurd und das ist es auch, dieses Vorgehen ist auch im Sinne von OOP schlicht falsch. Objekte sollen Nachrichten (Daten) austauschen, nicht aber Objekte. Die nächste Frage ist, wie denn die Kantine überhaupt zur Firma kommt, um mit ihr zu kommunizieren. Die Firma hat viele Kunden, kann also keine Eigenschaft der Kantine sein. Gleiches gilt andersherum. Wir brauchen also ein Gott-Objekt, welches die Kommunikation zwischen den beiden regelt. Über das größte Problem haben wir an der Stelle aber noch gar nicht gesprochen, die Wartung selbst. Die Wartung verändert sowohl die Technikerin als aus auch die Getränkeautomaten. Zu welchem Objekt soll die Wartung nun aber gehören? Technikerin ... Getränkeautomat? Sie gehört natürlich ins Gott-Objekt ... vielleicht irgendwas mit dem wenig sprechenden Thing-Namen ServiceleistungsService. In dem Moment, wo wir die Wartung in den ServiceleistungsService auslagern, sind wir aber so weit von anschaulicher Abstraktion der realen Welt entfernt, wie es überhaupt nur geht. Ein ServiceleistungsService ist absurd, soetwas gibt es im echten Leben nicht. Was OOP eigentlich verlangt ist, dass Objekte miteinander nur über Daten kommunizieren. Daten sind etwas unveränderliches. Die Firma schickt also gar keine Technikerin zur Wartung, sondern nur ihre Daten. Gleiches gilt für die Kantine, die nur die Daten ihrer Getränkeautomaten zur Wartung schickt. Jetzt stellt sich aber das nächste Problem. Die Wartung im ServiceleistungsService hat nur Daten; das heißt, Technikerin und Getränkeautomaten können absolut nichts, da sie keine Methoden haben und einfach nur Daten sind. Die Wartung muss jetzt also Kenntnis darüber haben, was eine Technikerin so alles nützliches kann und was man mit einem Getränkeautomat so alles anstellen kann. Wir müssen jetzt also irgendwo einen einen Funktionspark für Technikerinnen-Daten und Getränkeautomaten-Daten bereit halten, wie man es in funktionaler oder prozeduraler Programmierung auch tun würde. Die gekünstelte OOP-Lösung wäre nun eine Klasse mit (unveränderlichen!) Daten und Methoden, die nur neue Daten mit den alten Methoden erzeugen können, da die Daten der Klasse ja unveränderlich sind. Das sind dann aber keine Objekte mehr, da sie unveränderlich sind, diese Dinger sind zustandsfrei (immutable) und all ihre Metoden sind im Prinzip pure functions. Die Klasse ist jetzt de facto nicht mehr als ein Namespace, der Daten und die zugehörigen functions beinhaltet. Sie hat nichts mehr mit OOP zu tun, namespaces nichd nichts OOP-exklusives. Die Modellierung der realen Welt klappt im OOP nur auf einer makroskopischen Ebene gut, je tiefer man ins Detail geht, desto mehr zerbröselt der Ansatz. Gleiches gilt für Kapselung. Auch sie klappt umso weniger, je mehr man ins Detail geht, außer man verlässt irgendwann das OOP-Konzept und greift dort auf Vorgehensweisen prozeduraler / funktionaler Programmierung zurück. Dabei findet dann Kapselung aber gar nicht mehr statt. Wer jetzt doch aus Versehen bis hier hin gelesen hat, sei bitte nicht entmutigt oder enttäuscht. Auch wenn OOP als solches nicht funktioniert, die gängigen OOP-Sprachen funktionieren trotzdem und das auch richtig gut. Ich selbst bin seit vielen Jahren C#-Entwickler, liebe diese Sprache und will sie gegen keine andere austauschen. Die gängigen OOP-Sprachen zwingen mich aber auch nicht zu purem OOP.

  • @Samuel-ow5jx
    @Samuel-ow5jx 9 дней назад

    Bester Mann :)

  • @ardwetha
    @ardwetha 14 дней назад

    UML Diagramme haben defacto Rust Syntax ist mir aufgefallen

  • @never_unsealed
    @never_unsealed 14 дней назад

    Ich finde es wäre noch hilfreich gewesen, etwas mehr auf die mathematischen Aspekte einzugehen, auf denen die jeweiligen Verfahren basieren.

    • @StefanMacke
      @StefanMacke 13 дней назад

      Das ist sicherlich interessant - wenn man Informatik studiert. Aber für die Ausbildung im IT-Bereich ist dieses Hintergrundwissen nicht notwendig. Es geht hier mehr um die grundsätzliche technische Funktionsweise und vor allem die praktische Anwendung der Verfahren.

  • @batamariam1350
    @batamariam1350 15 дней назад

    Vielen Danke Sie erklãren sehr gut

    • @StefanMacke
      @StefanMacke 13 дней назад

      Danke, das freut mich! :-)

  • @reinerzufall1831
    @reinerzufall1831 21 день назад

    Ich habe heute Ihren Channel gefunden ich bin mehr als begeistert. Natürlich ein Abo dagelassen und auch Ihre Art und Weise, wie sie die Sachen erklären und erzählen macht es aus. Was mich aber schockiert hat, ist, dass Sie so wenig Abonnenten haben. Sie verdienen deutlich mehr. Weiter So 👍🏼

    • @StefanMacke
      @StefanMacke 20 дней назад

      Danke, das freut mich. An den Abonnenten arbeite ich noch! ;-)

  • @DerArschfickerBaki
    @DerArschfickerBaki 22 дня назад

    Wirklich Erstklasse erklärt, mir als Umschüler hilft es sehr🙏🏼✌🏻

  • @lukaspetersen5538
    @lukaspetersen5538 24 дня назад

    Moin, wieso hast du 2 main methoden?

    • @StefanMacke
      @StefanMacke 22 дня назад

      Um den doppelten Code im Autohaus und der Werkstatt zu demonstrieren. Aber das ist ja auch kein Problem und durchaus erlaubt.

  • @miknik_054
    @miknik_054 Месяц назад

    Was währe wenn wir 6 Abteilungen mit 4 mit 32 mit 20 mit 48 mit 60 und mit 8 hosts haben

    • @StefanMacke
      @StefanMacke 29 дней назад

      Das müsstest du ja jetzt selbst ausrechnen können! :-) Oder wo kommst du nicht weiter?

  • @maryamtahouri1526
    @maryamtahouri1526 Месяц назад

    Als Umschülerin, die Deutsch nicht meine Muttersprache ist, habe ich total Stress für die IHK-Prüfung. Herzlichen Dank für Ihre hilfreichen Videos.

    • @user-uh7zd9ir6r
      @user-uh7zd9ir6r Месяц назад

      Das Problem habe ich auch. Am 27.06 habe ich meine Prüfung

    • @StefanMacke
      @StefanMacke Месяц назад

      Gern geschehen. Freut mich, wenn ich helfen kann. Viel Erfolg!

    • @user-uh7zd9ir6r
      @user-uh7zd9ir6r Месяц назад

      @@StefanMacke Sie haben mir mit Ihren Videos schon geholfen. Vielen lieben Dank 🙂

    • @StefanMacke
      @StefanMacke Месяц назад

      @@user-uh7zd9ir6r Danke, das freut mich.

  • @Kahg12
    @Kahg12 Месяц назад

    Sehr hilfreich, Dankeschön

    • @StefanMacke
      @StefanMacke Месяц назад

      Danke für das Feedback. Freut mich, wenn ich helfen kann.

  • @andreasfischer9762
    @andreasfischer9762 Месяц назад

    Hi Stefan, sehe ich das richtig, dass du den 2. Teil (ISO 25010) gar nicht reingestellt hast? Würde mich freuen!

    • @StefanMacke
      @StefanMacke Месяц назад

      Ne, der steht noch auf der ToDo-Liste :-)

  • @Livy2964
    @Livy2964 Месяц назад

    Wunderbare Video ich hab 2 mal geschaut und notizen gemacht supi erklärkt danke danke danke!

  • @nicohunger2729
    @nicohunger2729 Месяц назад

    habe gestern die Projektpräsentation und das Fachgespräch erfolgreich gemeistert. da die podcasts und die youtube-videos wirklich zu jeder sehr gut geholfen haben, möchte ich auf diesem wege ein dickes danke sagen!!!

    • @StefanMacke
      @StefanMacke Месяц назад

      Das freut mich für dich! Herzlichen Glückwunsch! 🥳

  • @steven-dh1ty
    @steven-dh1ty Месяц назад

    Brauch man in einer Sterntopologie überhaupt CSMA/CD, die Verbindung zum Router oder Switch ist doch Duplex, oder nicht? CSMA/CA kommt doch bloß in WLAN Netzen zum Einsatz, oder etwa nicht? Also gibt es da kein besser oder schlechter, kommt auf die Netztopologie an.

    • @StefanMacke
      @StefanMacke Месяц назад

      Ja, da hast du recht! Wenn Kollisionen aufgrund der Topologie nicht auftreten können, kann man CSMA/CD auch abschalten. Siehe auch: de.wikipedia.org/wiki/Carrier_Sense_Multiple_Access/Collision_Detection#CSMA/CD_und_der_Duplex-Modus

  • @Lilly_92
    @Lilly_92 Месяц назад

    Vielen lieben Dank für deine tollen und super verständlichen Videos! 🙏

  • @User-fc7iw
    @User-fc7iw Месяц назад

    Ich kommentiere selten, aber das ist mir ein Bedürfnis. Wirklich super erklärt, mit wichtigem Inhalt und aufs Wesentliche fokussiert, Vielen Dank!

    • @StefanMacke
      @StefanMacke Месяц назад

      Danke, das freut mich. :-)

  • @freecalradia
    @freecalradia Месяц назад

    Genau zur richtigen Zeit ❤

  • @FISI_Deutschland
    @FISI_Deutschland Месяц назад

    Hallo Stefan, vor zwei Tagen habe ich dir eine E-Mail geschrieben, kannst du bitte sie mal lesen?

    • @StefanMacke
      @StefanMacke Месяц назад

      Habe schon geantwortet. Sorry, ich mache das alles hier in meiner Freizeit, da kann ich nicht innerhalb weniger Stunden alles beantworten.

  • @Foxflix
    @Foxflix Месяц назад

    Your explanation was fantastic. You started from scratch, explaining virtual machines, then why we use containers, and finally delving into the specifics of containers themselves. It felt like a historical narrative. You answered many questions I had and clarified the reasons behind the technology. Great job!

    • @StefanMacke
      @StefanMacke Месяц назад

      Thank you for your feedback!

    • @Foxflix
      @Foxflix Месяц назад

      @@StefanMacke can't wait for the SQL Video :D

  • @kadse417
    @kadse417 Месяц назад

    Könntest du das Hintergrundrauschen bei deinem nächsten Video mit Audacity & co. bitte herausfiltern? Ist echt nervig mit guten Kopfhörern.

  • @thacreepwalk
    @thacreepwalk Месяц назад

    Müste die 1NF nicht heißten: atomare Werte, keine wdh-Gruppen und Bestimmung eines Primärschlüssels? Weil es könnte ja sein, dass die Tabelle in der 0.ten NF, die vorliegt, keinen Primärschlüssel hat. Oder liege ich da falsch?

    • @StefanMacke
      @StefanMacke Месяц назад

      Den Primärschlüssel solltest du festlegen, das stimmt. Das ist aber nicht direkt Teil der Normalisierung, bei der es ja um die Vermeidung von Redundanzen geht. Und Schlüssel einzuführen verringert nicht die Redundanz. Dennoch ist das ein logischer Schritt, den du in der Praxis in der 1. NF durchführst.

    • @thacreepwalk
      @thacreepwalk Месяц назад

      @@StefanMacke Ah ok, danke 🙂👍

  • @michaellukas8508
    @michaellukas8508 2 месяца назад

    Vielen Dank für Deine Videos! Du ersetzt gerade unsere Dozenten in der Umschulung zum FiSi.

    • @StefanMacke
      @StefanMacke 2 месяца назад

      Danke für das Feedback! :-)

  • @Foxflix
    @Foxflix 2 месяца назад

    Thank you so much for making all those podcasts, and special thanks for making those videos. Your podcast was one of the many reasons I started my education, and in two weeks I'll have my exam in LF4 in school, so thanks for all your hard work. I truly appreciate everything.

    • @StefanMacke
      @StefanMacke 2 месяца назад

      Thanks for watching my content. I'm glad I could help. :-)

  • @Shark0811
    @Shark0811 2 месяца назад

    Wie macht man das bei Listing? Mit dem aktualisieren oben in das Verzeichnis

    • @StefanMacke
      @StefanMacke 2 месяца назад

      Genauso wie bei Bildern. Nur dass du die Listings-Beschreibung verwenden musst. Dann kannst du das Verzeichnis mit einem Rechtsklick aktualisieren.

  • @stylrart
    @stylrart 2 месяца назад

    Warum muss ich sowas lernen als ITler? Das weiß doch keiner mehr, wenn er erst mal im Job ist und diesen Kram die Buchhaltung macht.

    • @StefanMacke
      @StefanMacke 2 месяца назад

      Gewisse kaufmännische Grundlagen müssen halt alle Prüflinge kaufmännischer Berufe (und das sind die IT-Berufe nunmal) lernen. Über den BAB wird letztlich deine Hardware usw. vom Unternehmen kalkuliert.

  • @thacreepwalk
    @thacreepwalk 2 месяца назад

    Großes Lob. Didaktische Meisterleistung 🙂👍

  • @thacreepwalk
    @thacreepwalk 2 месяца назад

    Aber wenn man die Sub-Klassen auch im selben Package hat, wozu hat man denn überhaupt die Unterscheidung zw private-package und protected. Weil wir haben in unserem fall sogar extra die Klasse Autohaus in eine andere package verschieben müssen, um sie auszuschließen. Was für einen Mehrwert bringt dann die Wahl des protected gegenüber dem private-package?

    • @StefanMacke
      @StefanMacke 2 месяца назад

      Wenn andere Programme unsere Klassen erweitern wollen, werden sie vermulich nicht im gleichen Package liegen (können). Daher protected, damit alle Subklassen, egal in welchem Package sie liegen, auf die Member zugreifen können.

    • @thacreepwalk
      @thacreepwalk 2 месяца назад

      @@StefanMackeJa ok, das macht Sinn. Vorausgesetzt man möchte, dass jemand die Klasse erweitert. Da ich eine Umschulung zum FIAE mache, habe ich leider sehr wenig praktische Erfahrung. Wir lernen hauptsächlich nur die Konzepte des Programmierens vorerst. Dann kommt es wohl doch öfters vor, dass Dritte eine Klasse von einem erweitertern?!? Weil, wenn man nach dem Prinzip geht, dass man möglichst wenig Sichtbarkeit zulässt, wäre demnach Private-Package bei eigenen Implementierungen besser. Oder vererbt man in eigene Sub-Klassen in dem man sie üblicherweise in andere Packages packt? 🤔

    • @StefanMacke
      @StefanMacke 2 месяца назад

      @@thacreepwalk Naja, man selbst erweitert vermutlich eher die eigenen Klassen ala jemand anderes. Aber dabei nutzt man normalerweise auch Packages zur Strukturierung.

  • @thacreepwalk
    @thacreepwalk 2 месяца назад

    Aber wird in der JAVA_HOME Variable nur die neuste jdk als wert gesetzt und nicht das Eltern-Verzeichnis aller JDKs?

    • @StefanMacke
      @StefanMacke 2 месяца назад

      Ja. Die JAVA_HOME kann nur auf eine eindeutige Java-Version zeigen. Wenn du die Java-Version wechseln willst, musst du JAVA_HOME (und auch PATH) entsprechend umsetzen.

  • @HuiminLuo
    @HuiminLuo 2 месяца назад

    Ich bringe auch Ihrer Arbeit meinen tiefsten Respekt entgegen!

  • @mehrzweck_mandala
    @mehrzweck_mandala 2 месяца назад

    Ich muss nochmal anmerken: Ein dickes fettes Dankeschön für den Aufwand und die Bereitstellung dieses Kurses - und gar die ganzen Bemühungen zur allgemeinen Qualitätssteigerungen der Ausbildungsinhalte! Grüße Marcel

    • @StefanMacke
      @StefanMacke 2 месяца назад

      Danke für das Feedback! Das freut mich sehr! ☺️

  • @HuiminLuo
    @HuiminLuo 2 месяца назад

    Danke für die super gute Erklärung mit Codierung 🙏

  • @ammaralhallak498
    @ammaralhallak498 2 месяца назад

    Vielen Dank für das Video. Es wäre sehr hilfreich, wenn Sie auch Video über Streams und Datenstruktur machen würden. Danke im Voraus

    • @StefanMacke
      @StefanMacke 2 месяца назад

      Streams habe ich tatsächlich als nächstes vor!

  • @novatex8635
    @novatex8635 2 месяца назад

    tolles video btw

  • @novatex8635
    @novatex8635 2 месяца назад

    ohhh jaaaa, automatentherorie kam schon bei uns im studium vor...... :D

    • @StefanMacke
      @StefanMacke 2 месяца назад

      Hehe :-) Hatte ich damals auch. Und jetzt das Ganze nochmal als UML-Diagramm.

    • @novatex8635
      @novatex8635 2 месяца назад

      @@StefanMacke die therorie aus der uni zu kennen hilft aber ungemein. denn all die dea's nea's, petrinetze und modellierung von informationssystemen. man weiss ziemlich schnell was los ist.

    • @StefanMacke
      @StefanMacke 2 месяца назад

      @@novatex8635 Das stimmt. Aber das Niveau der IHK-Aufgaben ist schon deutlich niedriger. An den Unis gibt es ganze Vorlesungen nur zu Automaten. Hier ist das nur eins von mehreren UML-Diagrammen.

    • @novatex8635
      @novatex8635 2 месяца назад

      @@StefanMacke das mag sein. alles muss man dazu sicher nicht wissen als fisi. es gibt btw eine sehr gute vorlesung hier auf youtube über automaten. einfach mal nach prof. dr. mauerer suchen. der mann macht das sensationell gut. ist vielleicht für interessierte interessant.

  • @Kintrax476
    @Kintrax476 2 месяца назад

    Hi, vielen Dank für die wirklich nützlichen Videos. Es gelingt Ihnen, dieses komplexe Thema und die Zusammenhänge sehr verständlich und nachvollziehbar zu erklären.

    • @StefanMacke
      @StefanMacke 2 месяца назад

      Das freut mich und war das Ziel! :-)

  • @HuiminLuo
    @HuiminLuo 2 месяца назад

    Was ist Laufzeit?

    • @StefanMacke
      @StefanMacke 2 месяца назад

      Laufzeit ist die Zeit der Ausführung des Programms im Kontrast zur Compilezeit, zu der der Compiler das Programm übersetzt.

    • @HuiminLuo
      @HuiminLuo 2 месяца назад

      Wird der Code, der zur Laufzeit ausgeführt wird, im Teil der Main-Methode gefunden?

    • @HuiminLuo
      @HuiminLuo 2 месяца назад

      Was geschieht während der Compilerzeit und was während der Laufzeit? Warum ist es nicht möglich, diese beiden Phasen zu vereinen?

    • @Kintrax476
      @Kintrax476 2 месяца назад

      @@HuiminLuo Ich versuche das mal zu beantworten auch wenn ich selber noch ein Lernender bin. Die Laufzeit kann man so verstehen das wenn ich ein Programm gestartet habe, zum Beispiel ein E-Mail Klienten und ich das geöffnete Fenster des Programms vor mir sehe und Dinge anklicken kann wie "Anworten, Senden, etc." dann läuft das Programm. Das ist die Laufzeit weil es läuft. Wenn ich nun auf zum Beispiel Senden klicke und das Programm stürzt ab oder gibt eine Fehlermeldung aus, dann ist das ein Laufzeitfehler. Der Fehler tritt während der Laufzeit auf. Die Kompilierzeit ist der Moment oder die Zeit in der der geschrieben Code in Maschinencode übersetzt wird damit der PC das Programm ausführen kann. Hier auftretende Fehler, aufgrund fehlerhafter Syntax, etc. führen zu einem Kompilierfehler. Dadurch wird die Kompilierung (Übersetzung) abgebrochen und das Programm kann gar nicht erst gestartet werden. Bitte verbessert oder ergänzt mich falls das nicht richtig ist.

    • @HuiminLuo
      @HuiminLuo 2 месяца назад

      @@Kintrax476 Danke! Es ist hier schwer nachzuvollziehen, da beide vom gleichen Quellcode übersetzt und ausgeführt werden, einige Codes jedoch erst während der Laufzeit ausgeführt werden. Das heißt, ohne Kompilierung( keine entsprechende Bytecode) kennt das Virtuell Maschinen trotzdem hier ?

  • @HuiminLuo
    @HuiminLuo 2 месяца назад

    Polymorphie in einer Vererbungsbeziehung... Zum Thema habe ich zu vielen Fragen... Es wäre schön, wenn du irgendwann über das Thema unter Berücksichtigung der Arbeitsspeicheransicht erklären könntest.

    • @StefanMacke
      @StefanMacke 2 месяца назад

      Sorry, ich verstehe nicht, was du meinst. Was hat der Arbeitsspeicher damit zu tun?

    • @HuiminLuo
      @HuiminLuo 2 месяца назад

      @@StefanMacke Entschuldigung, ich meinte mit Memory management.

    • @StefanMacke
      @StefanMacke 2 месяца назад

      @@HuiminLuo Ich weiß leider trotzdem nicht, was du dazu wissen möchtest.

    • @HuiminLuo
      @HuiminLuo 2 месяца назад

      Ich würde gerne verstehen, wie der Code ausgeführt wird. Können Sie erklären, welche Variablen und Parameter im Stack gespeichert werden und wann sie entfernt werden? Zudem interessiert mich, wann Referenzen im Heap erscheinen und wie sich Vererbung und Polymorphie auswirken. Wäre es möglich, dass Sie dazu ein Video erstellen, wenn Sie Zeit haben?

    • @StefanMacke
      @StefanMacke 2 месяца назад

      @@HuiminLuo Das hört sich zwar interessant an, ist aber wenig prüfungsrelevant. Daher werde ich mich erstmal auf andere Inhalte konzentrieren.

  • @HuiminLuo
    @HuiminLuo 2 месяца назад

    ❤ Danke 🙏

  • @HuiminLuo
    @HuiminLuo 2 месяца назад

    Vielen Dank, Stefan! Es wäre toll, wenn ein weiteres Video erstellt werden könnte, das die Konfiguration von Eclipse behandelt.

    • @StefanMacke
      @StefanMacke 2 месяца назад

      Mh, was genau brauchst du denn da? Bis auf den Formatter habe ich eigentlich nichts ein-/umgestellt.

    • @HuiminLuo
      @HuiminLuo 2 месяца назад

      Ich möchte wissen, ob Eclipse ähnliche intelligente Funktionen für das automatische Vervollständigen von Code wie IntelliJ IDEA hat?

    • @StefanMacke
      @StefanMacke 2 месяца назад

      @@HuiminLuo Klar: STRG+Leertaste vervollständigt so ziemlich alles. Und STRG+1 macht das Quickfix-Menü auf.

  • @lukaspetersen5538
    @lukaspetersen5538 2 месяца назад

    Toll gemacht

  • @HuiminLuo
    @HuiminLuo 2 месяца назад

    Danke ❤

    • @StefanMacke
      @StefanMacke 2 месяца назад

      Gern geschehen! Ich hoffe, es ist alles nachvollziehbar erklärt.

  • @hasimkocabey5825
    @hasimkocabey5825 2 месяца назад

    Hey Stefan. Danke für die Vorlage. Ich nutze deine Vorlage für meine Projektarbeit, und habe die Form beibehalten (Damit ist der Aufbau und Gliederung der Doku gemeint) Inhaltlich wurde die Vorlage natürlich an mein Projekt angepasst. Ist das Problematisch oder muss ich die Vorlage komplett umkrempeln ?

    • @StefanMacke
      @StefanMacke 2 месяца назад

      Du musst deine Doku so schreiben, dass sie den Ablauf deines Projekts wiedergibt. Wenn der Aufbau der Vorlage dazu passt, ist doch alles ok!

    • @hasimkocabey5825
      @hasimkocabey5825 2 месяца назад

      Okay danke Ich muss die Vorlage in meinem Quellenverzeichnis angeben welche Seite nutze ich dafür am besten hast du einen direkten link zur Vorlage ?

    • @StefanMacke
      @StefanMacke 2 месяца назад

      @@hasimkocabey5825 Du kannst doch einfach die Seite nehmen, wo du sie gefunden hast! Ganz normal wie bei anderen Quellen auch.

  • @MarkusBurrer
    @MarkusBurrer 2 месяца назад

    Vererbung? Ist das nicht die Säule, die alles zum Einsturz bringt, wenn man sie zu stark belastet?

    • @StefanMacke
      @StefanMacke 2 месяца назад

      Hehe :-) Darauf gehe ich später noch ein.

    • @MarkusBurrer
      @MarkusBurrer 2 месяца назад

      @@StefanMacke Ich habe vor Jahren noch OOP gelernt nach dem Motto (Tier->Katze->Bengal) oder so ähnlich, aber ich hatte immer Probleme und hab nicht verstanden, warum. Vor ein paar Jahren hab ich Rust kennengelernt und bin darüber zur funktionalen Programmierung gekommen. Inzwischen ist der Anteil an OOP bei mir unter 10% und Vererbung geht gegen 0. Ich habe die funktionale Programmierung anfangs abgelehnt wie viele andere und auch überhaupt nicht verstanden. Es hat eine Weile gedauert, bis ich die Idee dahinter entschlüsselt habe. Dabei habe ich auch endlich meine Probleme mit OOP verstanden. Meine bevorzugten Sprachen sind inzwischen F# als Ersatz für Python und Rust für alles andere. Rust ist zwar keine funktionale Programmiersprache, nutzt aber viele Konzepte daraus und hat OOP größtenteils ignoriert.

    • @StefanMacke
      @StefanMacke 2 месяца назад

      @@MarkusBurrer Viele Sprachen entwickeln sich (zu recht) in Richtung FP. Aber OOP ist halt immer noch ein wichtiges Prüfungsthema und insg. noch deutlich verbreiteter in der Praxis. Daher erstmal die Videos zur OOP. FP könnte aber auch noch kommen! :-)

  • @thewandererbeats
    @thewandererbeats 2 месяца назад

    Vielen Dank für deine tollen Videos. Bin gerade up to date mit all deinen und freue mich darauf was noch kommt. 🎉

    • @StefanMacke
      @StefanMacke 2 месяца назад

      Gern geschehen. Knapp die Hälfte hast du jetzt. Ein bisschen was kommt noch. :-)

  • @Rrljaxa
    @Rrljaxa 2 месяца назад

    Darf ich fragen, woher Sie das mit dem Pfeil zwischen Akteur und Use-Case haben? Bis auf die gerichtete Assoziation sind Sie die erste Person, die ich das so machen sehe. Und sowohl IBM als der Vater der Use-Cases, noch die IHK oder Lehrbücher nutzen das, sondern lediglich eine nicht gerichtete Assoziation.

    • @StefanMacke
      @StefanMacke 2 месяца назад

      Ich habe die Diagramme mit PlantUML erstellt, da ist das der Standard. plantuml.com/use-case-diagram

  • @DenizCelik-cr7tm
    @DenizCelik-cr7tm 2 месяца назад

    👌🏼😍

  • @fwelk
    @fwelk 3 месяца назад

    Ein schönes Thema & gut erklärt. Ich würde dir empfehlen an deiner Audio-Qualität zu arbeiten :) Sonst super!

    • @SirLanze92
      @SirLanze92 2 месяца назад

      Finde die Audio-Qualität ganz gut. Habe damit keine Probleme😂

    • @StefanMacke
      @StefanMacke 2 месяца назад

      Danke fürs Feedback! Ich teste schon ein anderes Mikro. Das Lavalier ist leider zu leise und muss im Nachhinein verstärkt werden.

    • @StefanMacke
      @StefanMacke 2 месяца назад

      Danke! :-)