Kapselung von Attributen und Methoden (Teil 1) - Objektorientierung: Kapselung/Vererbung/Polymorphie

In Teil 1 meines Kurses zu den drei Säulen der Objektorientierung - Kapselung, Vererbung und Polymorphie - starten wir mit dem zentralen Prinzip der Objektorientierung: der Kapselung. Wir lernen, was genau dabei eigentlich gekapselt wird und wie man das Ganze implementiert. Im Speziellen geht es um die Definition von Klassen, die Attribute und die zugehörigen Methoden kapseln.
----
Deine Hausaufgabe:
Lege eine neue Klasse "Kaffeeautomat" an mit den Attributen...
"bezeichnung" (Beispiel "KVA-4711")
"kaffeesorte" (Beispiel "Latte Macchiato")
"fuellstand" (Beispiel 80 (Integer))
Erstelle die Methode "getBeschreibung()" in Klasse Kaffeeautomat, die die Beschreibung des Kaffeeautomaten ausgibt.
Beispielausgabe für obigen Automaten: "Kaffeeautomat KVA-4711 für Latte Macchiato mit Füllstand 80%"
Lege eine neue Klasse "Kantine" an.
Lege eine Main-Methode in Klasse Kantine an und erzeuge einen Kaffeeautomaten "KVA-0815" für "Kaffee" mit Füllstand 100.
Gib die Beschreibung des Kaffeautomaten auf der Konsole aus.
Erzeuge einen weiteren Kaffeeautomaten "KVA-007" für "Cappuccino" mit Füllstand 40.
Gib auch die Beschreibung des zweiten Kaffeautomaten auf der Konsole aus.
Ändere die Kaffeesorte für KVA-007 auf "Espresso" und gib seine Beschreibung erneut auf der Konsole aus.
----
00:00 Einleitung
00:58 Hausaufgaben
02:29 Klasse mit Attributen
03:28 Klassen als dumme Datencontainer
04:10 Verwendung nicht gekapselter Klassen
05:01 Doppelter Code ist schlecht
05:46 Lesbare Integer-Literale
06:07 Viiieeel doppelter Code
06:40 Änderungen bei doppeltem Code
07:13 Doppelten Code eliminieren
08:11 Gemeinsamen Code in Methode auslagern
09:21 Spezifika in Aufrufer verlagern
11:20 Kapselung von Attributen und Methoden
12:15 Geheimnisprinzip
12:56 Vorteile der Kapselung
14:50 Hausaufgabe 01

Пікірлер: 23

  • @ohneworte123
    @ohneworte1232 ай бұрын

    Mein Held der Prüfungsvorbereitung, vielen Dank für deine sehr wertvolle Arbeit 🎉

  • @StefanMacke

    @StefanMacke

    2 ай бұрын

    Sehr gerne 🤗

  • @user-ry4pt6oe2u
    @user-ry4pt6oe2u2 ай бұрын

    Haha wieviel hier morgen Prüfung haben ❤🎉😂 wir schaffen das, dank ihm😊

  • @lisa-gt3bf
    @lisa-gt3bf2 ай бұрын

    Vielen Dank für die hervorragende Arbeit ❤ Diese Videos sind Goldwert 👍

  • @StefanMacke

    @StefanMacke

    2 ай бұрын

    Ich danke dir! :-)

  • @Ashmazito
    @Ashmazito2 ай бұрын

    Deine Videos sind echt auf höhe Niveau, Inhalt, Qualität und Erklärung. Du machst die Welt jedes mal zu einem besseren Ort❤. für alle die morgen die AP2 schreiben, Viel Erfolg und Glück

  • @broken_1x38

    @broken_1x38

    2 ай бұрын

    Das wird morgen sehr spannend, auch von mir viel Glück an alle!

  • @StefanMacke

    @StefanMacke

    2 ай бұрын

    Vielen Dank 🤩

  • @Gor_Bin
    @Gor_Bin2 ай бұрын

    Ärgerlich, dass ich den Kanal nicht schon früher entdeckt habe, da ich FI AE mache und vor der Abschlussprüfung Teil 2 morgen schiss habe. Leider machen wir an der Arbeit wirklich nahezu keine Programmierung und in der Schule ... naja... so langsam stoße ich da an die Grenzen, du hast mir da echt bis jetzt geholfen. Hoffen wir es reicht noch aus. Danke auf jeden Fall für die wirklich guten und ausführlichen Erklärungen! Nicht so 3min Videos die 90% weglassen und nachher ist man auch nicht schlauer!

  • @StefanMacke

    @StefanMacke

    2 ай бұрын

    Danke für dein Feedback. 3min reichen nicht für diese Themen, da bin ich deiner Meinung! Ich drücke dir die Daumen für die Prüfung!

  • @Gor_Bin

    @Gor_Bin

    2 ай бұрын

    @@StefanMacke Vielen Dank! Ich hätte noch eine Frage zu dem Code: Gibt es einen Grund weshalb hier Wrapper-Klassen verwendet werden? In dem Fall wäre es doch theoretisch egal, oder irre ich?

  • @StefanMacke

    @StefanMacke

    2 ай бұрын

    @@Gor_Bin Welche Wrapper-Klassen meinst du? Auto/Motorrad sind keine Wrapper-Klassen (die andere Klassen umschließen), sondern einfach "normale" Klassen, die Attribute und Methoden kapseln.

  • @Gor_Bin

    @Gor_Bin

    2 ай бұрын

    @@StefanMacke Sorry, hätte ich mal etwas besser präzisieren können. In der Klasse Auto ist "kilometerstand" vom Datentyp "Integer". Ich bin mir hier wieder unsicher, weil ich wie gesagt im praktischen Teil meiner Ausbildung wenig Programmiere und auch kein Java nutze. Aber wäre hier nicht "Integer" die Wrapper-Klasse von "int"?

  • @StefanMacke

    @StefanMacke

    2 ай бұрын

    @@Gor_Bin Ja, da hast du recht. "int" ist jedoch ein primitiver Datentyp, der mir die ganze Objektorientierung kaputt macht. Daher nutze ich gerne "Integer", da er sich als Referenztyp genauso verhält wie die eigenen Klassen und z.B. Methoden anbietet.

  • @SirLanze92
    @SirLanze922 ай бұрын

    Wie immer sehr gutes Material 💪

  • @StefanMacke

    @StefanMacke

    2 ай бұрын

    Danke dir 👍

  • @lukaspetersen5538
    @lukaspetersen55388 күн бұрын

    Moin, wieso hast du 2 main methoden?

  • @StefanMacke

    @StefanMacke

    6 күн бұрын

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

  • @lisa-gt3bf
    @lisa-gt3bf2 ай бұрын

    Kommt in der Reihe auch Design patterns? 😍 Gehört glaube ich auch zu OOP😅

  • @StefanMacke

    @StefanMacke

    2 ай бұрын

    Na klaaaar! Aber nicht in dieser Reihe. Hier geht es erstmal um die Grundlagen. Design Pattern kommen später separat.

  • @lisa-gt3bf

    @lisa-gt3bf

    2 ай бұрын

    @@StefanMacke

  • @carnaqe1154

    @carnaqe1154

    2 ай бұрын

    war auch mein Gedanke, ein paar hat er ja schonmal sehr verständlich erklärt :D

Келесі