Javas Methoden vs. Funktionen [duplizieren]

8

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.

    
fpe 25.04.2013, 19:50
quelle

4 Antworten

3

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.

    
Sindico 02.05.2013, 09:56
quelle
4

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.

    
gprathour 02.05.2013 09:50
quelle
1

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%     
Brian 02.05.2013 10:13
quelle
0

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.

    
Captain Skyhawk 25.04.2013 19:52
quelle

Tags und Links