Ich habe mich gerade dazu entschieden, meine MATLAB-Programmierfähigkeiten mit etwas konsequenterem und konsequenterem Java-Coding zu integrieren. Deshalb hoffe ich, dass es keine allzu naive Frage wird.
Ich würde gerne wissen, ob es einen wirklichen Grund gibt, warum Java auf Funktionen wie methods
und nicht wie viele andere Programmiersprachen als functions
verweist.
Ist es wegen der inneren OOP
Java Natur im Vergleich zu prozeduralen Sprachen wie C/C++
? oder gibt es andere wichtige (oder subtile) Gründe?
Vielen Dank im Voraus.
Meiner Meinung nach ist diese Figur Ссылка
von Ссылка hilft dabei, einen der Hauptunterschiede zwischen OO und prozeduraler Programmierung zu verstehen. Grundsätzlich ist die Idee, dass
Die prozedurale Programmierung bietet nur eine Dimension für die Assoziation von a Recheneinheit mit einem Namen. Hier, Prozedur Aufrufe oder Namen werden direkt Prozedurimplementierungen zugeordnet. In Abbildung ein Aufruf m1 lässt keine andere Wahl als den Aufruf der einzigen Implementierung von Prozedur m1
während
Objektorientierte Programmierung fügt eine weitere Dimension für die Namensauflösung hinzu zu dem der prozeduralen Programmierung. Zusätzlich zu der Methode oder Prozedurname, Nachrichtenversand nimmt den Nachrichtenempfänger auf Berücksichtigung beim Nachschlagen einer Methode. In Abbildung 2b sehen wir zwei Implementierungen der Methode m1. Die Auswahl der geeigneten Methode hängt nicht nur vom Nachrichtennamen m1 ab, sondern auch vom Empfänger von die eigentliche Nachricht, hier Ry
Der dritte Abschnitt der Abbildung (c) bezieht sich auf die subjektorientierte Programmierung, bei der das Verhalten eines Objekts (der aufgerufenen Methode) nicht nur vom Objektstatus abhängt, sondern auch von den Objekten, die aufgerufen werden (oder beobachtend) es. Dies ist jedoch außerhalb des Bereichs Ihrer Frage.
Nun, es gibt einen kleinen Unterschied zwischen einer Methode und einer Funktion.
Eine Funktion ist nur ein Code, den Sie jederzeit mit seinem Namen aufrufen können, und Sie können Argumente übergeben, die auch als Parameter bekannt sind, und Sie können auch das Ergebnis von jeder Funktion erhalten, d. h. Rückgabewert der Funktion.
Eine Methode ist jedoch ein Code, der mit seinem Namen aufgerufen wird, aber mit jedem Objekt verknüpft ist. Sie können Parameter auch an Methoden übergeben und Sie können auch einen Rückgabewert von Methoden erhalten, aber die Sache wird immer mit einigen Objekten verknüpft sein.
BEARBEITET
Java ist objektorientiert, Sie können in den meisten Fällen keinen Java-Code für die Ausführung ohne Klassen verwenden, in C ++ können Sie Ihren Code jedoch ohne Klassen ausführen lassen. Also in Java wird es Klassen geben und Code wird in Klassen geschrieben werden, so dass sie Methoden anstelle von Funktionen genannt werden, da sie Objekten zugeordnet werden.
Aber in C ++ können Sie eine Funktion haben, die aufgerufen werden kann, indem Sie Werte explizit übergeben.
Mit einfachen Worten können Sie sagen, dass eine Methode eine Funktion ist, die sich auf ein Objekt bezieht.
Kann nicht helfen, viel unnötiges Drama in diesem einen zu denken. "Methoden" ist nur ein Name, den Java zufällig benutzt, für Subroutinen, die Parameter benötigen oder nicht und möglicherweise einen Wert zurückgeben können oder nicht?
z. gültige "Methoden" könnten wie folgt sein, ohne in OO-Reinheit zu geraten, kanonische Definitionen von "Funktionen" usw .; beide der folgenden können oder können auch nicht den aktuellen "Zustand" eines Objekts (Instanzvariablenwerte) in ihrer Ausführung verwenden:
%Vor%Sie sind gleich. C ++ ruft sie normalerweise als Funktionen auf. Java bezeichnet sie in der Regel als Methoden.
Methoden werden normalerweise einer Klasse zugeordnet.
Sie werden gelegentlich auch "Klassenfunktion" hören, was nur eine Methode ist.
Es spielt keine Rolle, die Leute werden wissen, wovon du sprichst, wenn du sie auch nennst.