Woher kommt der Sonderbegriff „Methode“ in OOP?


13

"Methode" ist ein spezieller Begriff in der objektorientierten Programmierung. Weiß jemand, wann das Wort in diesem speziellen Sinne verwendet wurde und in Verbindung mit welcher Programmiersprache oder einem anderen Zweig des quantitativen Lernens?

Antworten:


11

Java und C # haben eine Methode aus C ++, die es von Simula bekommen hat .

Und Algol hatte wahrscheinlich Einfluss auf Simula:

Eine MIT ALGOL-Version, AED-0, verknüpfte Datenstrukturen ("Plexes" in diesem Dialekt) direkt mit Prozeduren und gab den späteren Begriffen "Nachrichten", "Methoden" und "Mitgliedsfunktionen" den Vorzug.


3
IIRC, C ++ bevorzugt normalerweise 'Mitgliedsfunktion' gegenüber 'Methode'.
Tdammers

Laut demselben Wikipedia-Artikel liegt die Münzprägung des Begriffs (im Zusammenhang mit OOP) in der ersten Hälfte der 60er Jahre.
Tulains Córdova

2

Es ist schwierig, eine eindeutige Antwort zu finden, aber die erste Sprache, die sich auf Methoden bezieht, scheint Simula zu sein, obwohl dies falsch oder rückwirkend sein kann. Angesichts der Tatsache, dass Funktionen (aus der Mathematik) und Prozeduren (auch aus der Mathematik) in Programmiersprachen angezeigt werden, ist das Beste, was ich herausfinden kann, dass "Method" die Kurzform für "Methodology" ist.

All dies sind Unterprogramme, Codebits, aus denen ein Computerprogramm besteht. Ich würde mir vorstellen, dass "Methode" gewählt wurde, weil die Idee hinter der Programmierung im OOP-Stil darin besteht, Code so weit wie möglich wiederzuverwenden. Sie könnten also eine Prozedur haben, aber eine Methode macht klarer, dass es sich um einen neuen Arbeitsstil handelt. Ehrlich gesagt, ich bin dafür bekannt, Methodenfunktionen aufzurufen, und ich habe Funktionen gehört, die Methoden genannt werden.


6
Ich fürchte, Sie "rechnen" falsch - Methode (ein Prozess, um ein Ziel zu erreichen) und Methodik (die Studie) haben unterschiedliche Bedeutungen.
JK

1
Auch "Methode" gibt es schon sehr lange als englisches Wort. Es ist nicht nötig, nach einem längeren Wort zu suchen.
Steve314

Wenn Sie "function" anstelle von "method" verwenden, liegt dies größtenteils an C ++. Aufgrund der Tatsache, dass C kein Konzept für eine "procedure" hat, sondern nur für eine "function", die zurückgegeben wird void. C ++ - Memberfunktionen sind (anders als in Simula) sehr eng mit normalen Funktionen verwandt - ein impliziter thisParameter und (möglicherweise) ein Laufzeit-Dispatch-Mechanismus ändern nicht wirklich, womit Sie es zu tun haben. Ich weiß nicht, ob C zuerst Funktionen und Prozeduren als gleiches behandelt hat, aber Pascal (eine neuere Sprache) hat functionund procedureSchlüsselwörter - obwohl IIRC, könnten Pascal-Funktionen Nebenwirkungen haben.
Steve314

Insbesondere ist Methode ein Weg, um ein Ziel zu erreichen, eine Beschreibung / ein Wissen, nicht den Prozess selbst. Dies hat eine Bedeutung im Zusammenhang mit "class", einem anderen abstrakten Begriff, der einen Objekttyp definiert. Sie erhalten eine Klasse von Objekten und eine Methode, um mit jedem der Objekte X zu machen, solange sie zu dieser Klasse gehören. Sie wenden eine generische Methode auf ein bestimmtes Objekt an und erhalten objektspezifische Ergebnisse.
SF.

1

Ich suche seit Jahrzehnten nach Informationen dazu. Ich vermute bisher, dass der Begriff aus dem speziellen Unterfeld der numerischen Berechnung in Simula kam, wo der spezifische Algorithmus zum Implementieren einer Funktion (z. B. ein Eigenwert oder was auch immer) oft als Methode bezeichnet wird . Dies liegt daran, dass Sie möglicherweise über verschiedene numerische Methoden zur Berechnung derselben mathematischen Funktion mit verschiedenen Kompromissen verfügen. In OOP kann es sein, dass aufgrund des Überschreibens von Methoden die "gleiche" Funktion je nach Klasse unterschiedlich implementiert wird - z. B. würde area für Circle und Rectangle , die beide Shapes sind, unterschiedlich implementiert mit einer Fläche ,. Dies scheint eine sinnvolle Erweiterung des traditionellen Konzepts der numerischen Methode zu sein.


0

Ich weiß nichts über die Etymologie dieses Wortes in der OOP-Geschichte. Aber ich weiß , dass es nicht ist deductional (deducable). Ein besserer Begriff (More Deductional Term oder MDT) dafür könnte Reaktion oder Handeln sein


2
Ich bin mir ganz sicher, dass ich Ihnen nicht zustimme. "Methode" ist ein perfektes Wort für das, als was die ganze Sache begann, eine Art, verschiedene Dinge zu modellieren, wobei jedes "Ding" einer Klasse angehört und Methoden hat, um zu ändern, wie die Sache war. Genauso wie Methoden Dinge in der realen Welt verändern, wie.
Vatine

Ich vermute, "method" hat ursprünglich den Implementierungscode beschrieben, ähnlich wie "procedure" - die Methode / Prozedur / der Algorithmus zur Berechnung des Ergebnisses. Die Verwendung für eine Schnittstelle, deren Implementierung nicht bekannt ist, ist ein bisschen seltsam, aber ursprünglich (in Simula) wurde wahrscheinlich "message" dafür verwendet. Wenn Sie jedoch eine Methode aufrufen, rufen Sie Implementierungscode auf, auch wenn Sie (am Aufrufstandort) nicht wissen, welche Implementierung vorliegt.
Steve314

1
Ich vermute, die drei Wörter 'function', 'procedure' und 'method', 'function' haben eine mathematische Konnotation (ordnen Eingaben zu Ausgaben zu), 'procedure' ist unerlässlich (führen Sie eine Reihe von Schritten durch, die auch in derselben verwendet werden) Sinn im Militär); 'method' hat auch keine Konnotation, weshalb es wahrscheinlich in OOP bevorzugt wird.
Tdammers

@Vatine +1 für "cromulent"
MattDavey

-1

Programmierer mit REAL BASIC-, VBx- und VB.net-Hintergrund kennen zwei Arten von Methodendeklarationen "FUNCTION" & "SUB". Die BASIC-Sprachfamilie ermöglicht die Deklaration einer Funktion mit dem Schlüsselwort "FUNCTION" sowie dem Schlüsselwort "SUB". Der Unterschied zwischen diesen beiden ist, dass eine "FUNCTION" einen Wert zurückgeben kann oder nicht, wobei als "SUB" nur der Code ausgeführt wird, aber kein Wert zurückgegeben wird. Mit dem Aufkommen von OO-Konzepten werden jedoch Begriffe Sub und Funktion als austauschbare Methoden verwendet.


2
Gleiches gilt für Pascals Prozedur / Funktion
Mchl

3
VB verwendet "Function" und "Sub", kurz für "Subroutine", nicht "Method".
Ant

5
Ich bezweifle, dass Alan Kay an Basic dachte, als er OOP und Smalltalk
Maglob
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.