Funktion vs. Methode mit Paper Mario erklärt

Sdílet
Vložit
  • čas přidán 27. 07. 2024
  • ► Hacking mit Python amzn.to/3pxVnmh (*)
    ► Mein Python-Buch amzn.to/3ARMbw8 (*)
    ► Ethical Hacking mit ChatGPT amzn.to/3Qf9mID (*)
    Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Bei den Amazon-Links (https.//amzn.to/???????) handelt es sich um Affiliate-Links. Wenn du etwas über diesen Link kaufst, bekomme ich eine kleine Provision. Der Preis ändert sich nicht, wenn du über diesen Link einkaufst. Vielen Dank für deine Unterstützung.
    Inhalt 📚
    In der Programmierung gibt es zwei wichtige Konzepte zur Organisation von Code: FUNKTIONEN und METHODEN. Obwohl sie auf den ersten Blick ähnlich erscheinen mögen, gibt es entscheidende Unterschiede zwischen ihnen. In diesem Video werden wir uns anhand des Spiels Paper Mario genauer damit befassen, was Funktionen und Methoden sind, wie sie sich unterscheiden und wann man sie am besten einsetzt. Du bekommst den Funktionen Methoden Unterschied einfach erklärt.
    #Funktione #Methoden #Programmierenlernen
    00:00 | Einführung
    00:22 | Was ist eine Funktion?
    03:55 | Werbung
    04:26 | Was ist eine Methode?
    07:42 | Funktionen vs. Methoden
    SOCIAL MEDIA
    💡 Website: www.florian-dalwigk.de
    📱 TikTok: / florian.dalwigk
    🤳 Instagram: / florian.dalwigk
    🐦 Twitter: / florian_dalwigk
    📧 E-Mail: mailto:info@florian-dalwigk.de

Komentáře • 60

  • @br0ski_dev
    @br0ski_dev Před 2 měsíci +5

    Ich finde es mega, dass du so ein greifbares Beispiel nimmst. Das hilft enorm beim Verständnis. Ich meine das allgemein, nicht nur für Methoden und Funktionen.

    • @Florian.Dalwigk
      @Florian.Dalwigk  Před 2 měsíci +2

      Danke dir :) Das werde ich zukünftig noch häufiger machen.

  • @fantasyindustry1762
    @fantasyindustry1762 Před měsícem

    Ich finde es voll cool, dass du Paper Mario zu Hilfe genommen hast, um zu erklären was Funktionen und Methoden sind.

  • @MelanX
    @MelanX Před 2 měsíci +6

    Ich programmiere mittlerweile 6,5 Jahre und wusste nie den Unterschied. Ich war immer zu faul zu stackoverflowen. Endlich weiß ich es und habe es glaube ich auch so ziemlich immer richtig bei Beschreibungen von Problemen genutzt :D

    • @porky1118
      @porky1118 Před 2 měsíci +2

      Die Unterschiedung brauchts auch nicht. Methoden sind auch nur Funktionen.

    • @Florian.Dalwigk
      @Florian.Dalwigk  Před 2 měsíci +2

      Jede Methode ist eine Funktion aber nicht jede Funktion ist auch eine Methode.

  • @oida10000
    @oida10000 Před 2 měsíci +9

    Zu ergänzen wäre noch, dass man das Konzept mit statischen Methoden auch mischen kann, wenn man aus irgendeinen Grund die Selbstrefrenz nicht braucht, aber die "Funktion" trotzdem einer Klasse unterordnen will. Dazu kommt dann auch noch die Klassenmethode wo es wichtig ist, dass ein Spieler das tut und es unwichtig ist ob es Mario oder Luggi ist.

    • @FilmfanOliver1992
      @FilmfanOliver1992 Před 2 měsíci

      Die Math Lib von java ist static

    • @oida10000
      @oida10000 Před 2 měsíci +1

      @@FilmfanOliver1992 Ja das hat aber damit zu tun, dass in Java alles ein Objekt ist, also braucht es dieses Class.function()-Konstrukt (aus dem Grund hat man bis Java 21 (?) auch System.out.println für Konsolenoutput verwenden müssen). In Python ist das nicht notwendig, eine Funktion kann klassenlos sein (laut diesen Video ist das sogar der definierende Faktor).

    • @FilmfanOliver1992
      @FilmfanOliver1992 Před 2 měsíci

      @@oida10000 ich beziehe mich auch statische Methoden in Python mit @staticmethod verhält sich das doch genauso klassen.statischeMethode

    • @mehrzweck_mandala
      @mehrzweck_mandala Před 2 měsíci +1

      @@oida10000 Nur der Vollständigkeit halber: In Java ist nicht alles ein Objekt - neben den Referenztypen sind auch primitive Datentypen vorhanden - int, float, double, byte, boolean, long, short, char. Folglich keine vollends konsequente "objektorientierte" Sprache, ungeachtet der Wrapper-Klassen für besagte Primitive.

  • @PalaBlood.
    @PalaBlood. Před 2 měsíci

    Deine Erklärung zu self finde ich sehr gut. Hatte das damals beim lernen kaum verstanden. Ich denke mit diesem Video wäre mir das deutlich schneller klar geworden

  • @noluyorAbi-hh5mt
    @noluyorAbi-hh5mt Před 2 měsíci +2

    Hallo Florian,
    deine Videos haben mich inspiriert, mich im Rahmen der Uni auf Software Security zu konzentrieren. Dabei bin ich auf JSON Web Tokens (JWT) gestoßen, ein wirklich interessantes und wichtiges Thema, wie ich finde. Ich habe auf deinem Kanal nach einem Video dazu gesucht, aber noch keines gefunden. Kannst du dir vorstellen, ein Video darüber zu machen, das die Definition, Use-Cases und Funktionalität etc. behandelt? Ein Einblick aus deiner Perspektive und Einschätzung würde mich interessieren, da ich bei der Eigenrecherche auf viele sehr unterschiedliche Meinungen zu JWT gestoßen bin :D
    Vielen Dank für all deine tollen Inhalte und mach weiter so!
    Beste Grüße

    • @lilcwn
      @lilcwn Před 2 měsíci

      versuch mal was verrücktes wie z.b. cram-sha1 (nein nicht scram) aber richtig implementieren, man speichert nichts im klartext!

  • @Nayef1406
    @Nayef1406 Před měsícem

    Das Video kommt zur perfekten Zeit ;D

  • @EmanonthPlays
    @EmanonthPlays Před 2 měsíci +1

    Finde deine Videos sind immer wieder ein super theoritraining😊

  • @TheNormMan
    @TheNormMan Před 2 měsíci +1

    Ich hatte bisher "Funktion" und "Methode" einfach analog/synonym verwendet.
    Til

  • @pascal8045
    @pascal8045 Před 2 měsíci +6

    In C# kann man doch keine Methode ohne Klasse machen. Ist dann die statische Methode auch eine Funktion? Eine Selbstreferenz hat sie ja schließlich nicht, aber dennoch ist sie ja in der Klasse

    • @DevMarco-
      @DevMarco- Před 2 měsíci

      Merk dir einfach, wenn du die Funktion nur über eine Objektinstanz aufrufen kannst, dann ist es eine Methode. Generell ist jede Methode eine Funktion, jedoch nicht jede Funktion eine Methode.

    • @Fantaztig
      @Fantaztig Před 2 měsíci

      Statische Funktionen auf Klassen haben die Klasse als Selbstreferenz. Trotzdem sind sie per Definition keine Methode weil kein Objekt Bezug.

    • @skyswimsky1994
      @skyswimsky1994 Před měsícem

      Die genaue Definition kann sich spalten, aber im Endeffekt geht es darum das eine Methode den State der Klasse beeinflusst und/oder ihr Verhalten ändert basierend auf den State in der Klasse. (Eine boolean variable in der Klasse und die Methode hat ein if/else zum Beispiel basierend darauf, und der Boolean könnte von einer anderen Methode geändert werden).
      Du hast in C# durchaus auch nur Funktionen und, wenn möglich, ist es weniger Kopf zerbrechen den State einer Klasse zu reduzieren. Also evtl. variablen als Parameter zu übergeben usw.
      Evtl. hast du auch IDEs die dir sagen "Du kannst diese Funktion statisch machen", weil sie nichts mit der Klasse zu tun hat.

  • @kayoma4966
    @kayoma4966 Před 2 měsíci

    Danke, das war actually sehr verständlich. c:

  • @borxanderson8159
    @borxanderson8159 Před 2 měsíci +3

    Sollte bei 8:20 nicht "Ausserhalb von Klassen" stehen?

  • @HansPeter-wd3bj
    @HansPeter-wd3bj Před 2 měsíci +1

    Ich verstehe dabei noch nicht ganz wie das bei statischen Methoden dann ist. Also wenn man in Java eine Klasse hat mit einer statischen Methode brauche ich ja kein Objekt um diese aufzurufen ist es dadurch dann keine Methode? Sie ist zwar Teil der Klasse aber nicht eines Objekts

  • @kleinmarb4362
    @kleinmarb4362 Před 2 měsíci

    Das ist perfekt ich bringe meinem Vater Grad programmieren bei und ich will ihm jetzt nicht direkt am Anfang direkt OOP komplett erklären und wenn ich sage es ist das gleiche nur das das erste Argument bei einer Methode halt das Objekt ist was davor steht und man sozusagen das als Funktion schreiben könnte, ist es schwer für ihn zu verstehen. Also danke für das Video

  • @bchrasher
    @bchrasher Před 2 měsíci

    Moment, kann man einer Funktion nicht auch ein Objekt mitgeben und diese funktioniert dann genau wie eine Methode?
    Sie unterscheiden sich also nur darin, dass man Methoden örtlich künstlich einschränkt und mit einem Parameter vorbelegt? Und das ganze dann weil es übersichtlicher ist, als wenn man alles mit Funktionen machen würde?

    • @danielf.7151
      @danielf.7151 Před 2 měsíci

      Methoden können auf private Variablen einer Klasse zugreifen, Funktionen nicht.

    • @Florian.Dalwigk
      @Florian.Dalwigk  Před 2 měsíci

      Wie meinst du "mitgeben"? Fall als Parameter, dann nein. Methoden werden AUF Objekten aufgerufen.

    • @bchrasher
      @bchrasher Před 2 měsíci

      @@danielf.7151 aber nur, weil ihr erster Parameter das Objekt selbst ist, oder? Ich kann doch auch einer Funktion ein Objekt übergeben, dann kann diese auch auf alle seine privaten Variablen zugreifen, oder?

    • @bchrasher
      @bchrasher Před 2 měsíci

      @@Florian.Dalwigk Ja aber diese Unterscheidung macht doch keinen texhnischen Unterschied oder? Ja, die Methode würde ohne Objekt nicht existieren, und es schafft bessere strukturierung für den Programmierer aber sonst? Würde man einer Funktion gleich als erstes ein Objekt als Argument geben, dann könnte diese auch auf dessen private Attribute zugreifen und diese verändern oder? ChatGPT erzählt mir auch dass Methoden nur Funktionen sind, die eben an einen speziellen Speicherplatz innerhalb eines Objekts gebunden sind, und die sich syntaktisch dadurch anders aufrufen lassen. Würde man ihnen das aelf-Argument wegnehmen, hätten sie nicht mal die Möglichkeit auf das Objekt zuzugreifen, zu dem sie gehören.

  • @mo7aZa
    @mo7aZa Před 2 měsíci

    Ich frag dich jetzt einfach.... ich beschäfftigemich seit einiger zeit mit c/c++...kann mir aber immer noch nicht erklären, welche code zeilfen für framedrops verantwortlich sind! performance kann ja durch ein array das nicht hintereinander im speicher liegt probleme machen.... das kann es aber nicht sein! was verursacht framedrops in games?!danke und grüß3

  • @Serpensin
    @Serpensin Před 2 měsíci +2

    Ich missbrauche Klassen (ohne init) teilweise für die Strukturierung von Funktionen. XD

    • @Florian.Dalwigk
      @Florian.Dalwigk  Před 2 měsíci +3

      Interessanter Ansatz 😂 Aber wären Module da nicht besser geeignet?

    • @Lugge1999
      @Lugge1999 Před 2 měsíci

      hab ich tatsächlich auch schon mal gemacht für kleine skripte. Hab in Python noch keine Möglichkeit gefunden, namespaces wie z.b. in c++ zu definieren.
      Die schönste Lösung wäre natürlich ein eigenes Modul. Aber manchmal ist man dann doch etwas faul vor allem bei kleineren skripten xD

    • @Serpensin
      @Serpensin Před 2 měsíci

      @@Florian.Dalwigk
      Mache ich auch, sofern dies möglich ist. Allerdings ist das (bei meinem) DiscordBot relativ schwierig, da die Funktionen teilweise sehr stark von anderen abhängig sind. Vielleicht sollte ich den mal neu schreiben... XD

  • @SuperTruperHans
    @SuperTruperHans Před 2 měsíci

    Kurz gesagt Aufruf mit/ohne Übergabe und Punktnotation als Befehlserweiterumg 😊😊

    • @Florian.Dalwigk
      @Florian.Dalwigk  Před 2 měsíci

      Sehr kurz gesagt, ja ;)

    • @EmanonthPlays
      @EmanonthPlays Před 2 měsíci

      Ich denke die schönere Zusammenfassung ist das Funktionen atomar sind, also nur den ihnen übergebenen Kontext verwenden können. Während Methoden auch den Kontext seines Objektes verwenden/manipulieren kann.
      Also Funktionen sind atomar Methoden kontextbezogen.
      Ich finde das Prinzip wird recht klar wenn man funktionale Sprachen wie haskell mit klassisch objektorientierten Sprachen wie Java vergleicht

  • @anno_nym
    @anno_nym Před 2 měsíci

    Mich verwundert, dass man in Python immer einen "self"-Parameter übergeben muss, auch wenn dieser beim Methodenaufruf nicht erscheint...
    In Java und C# macht man das nicht und hat trotzdem Vollzugriff auf "this".

    • @Florian.Dalwigk
      @Florian.Dalwigk  Před 2 měsíci

      Das wurde bei der Entwicklung von Python eben so festgelegt. Ich persönlich finde das durchaus sinnvoll, um nochmal herauszustellen, dass eine Methode vorliegt.

  • @nyx8026
    @nyx8026 Před 2 měsíci

    Krass, dachte immer, dass Funktionen und Methoden das Gleiche sind. Zumindest behaupten dies einige meiner Lehrer...

    • @Florian.Dalwigk
      @Florian.Dalwigk  Před 2 měsíci

      Man _kann_ es so sehen ... ich persönlich finde die Unterscheidung aber tatsächlich sinnvoll (auch aus didaktischer Sicht).

  • @man100111
    @man100111 Před 2 měsíci +2

    Vielleicht bin ich bis jetzt zu viel in Java unterwegs gewesen, aber ich verstehe nicht ganz welche Vorteile es bringt "self" jedes mal in die Parameter schreiben zu müssen.

    • @Florian.Dalwigk
      @Florian.Dalwigk  Před 2 měsíci

      self ist das this in Python.
      Vorteile hat das keine, man definiert das in Python eben so.

  • @PalaBlood.
    @PalaBlood. Před 2 měsíci

    Paper Mario ist toll

  • @iv7896
    @iv7896 Před 2 měsíci

    meinung zum voratsdattenspeicherung ?

  • @carisameyer
    @carisameyer Před 2 měsíci +1

    Mathe ist toll

  • @carisameyer
    @carisameyer Před 2 měsíci

    Funktionen?? Mathe 😟