Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
hab mir gerade folgenden beitrag bei wiki angeguckt in dem unter anderem folgender satz steht:
"In den meisten Programmiersprachen wird direkt zwischen Funktionen und Prozeduren unterschieden. Das ist aber in objektorientierten Sprachen (wie Java) nicht mehr nötig."
ich verstehe das leider nicht so ganz.
ich dachte bisher immer eine funktion ist ein "unterprogramm" das parameter hat(oder auch nicht) und einen rückgabewert im gegensatz zur prozedure, die auch ein unterprogramm darstellt das parameter zugewiesen bekommt (oder auch nicht) jedoch ohne rückgabewert. und eine methode bezeichnet (in objektorientierten und auch nicht objektorientierten sprachen) gerade eine funktion oder eine prozedure.
ist das so richtig?
sind die begriffe prozedure(mehthode ohne rückgabewert) und funktion(mehthode mit rückgabewert) auch in java definiert? ich bin bisher immer davon ausgegangen.
und warum muss eine programmiersprache objektorientiert sein, damit sie funktionen und prozeduren in einem konstrukt zusammenfasst? in C zum beispiel wird auch nicht direkt zwischen prozedure und funktion unterschieden oder?
Ich denke das ist in erster Linie Definitionssache und den Entwicklern von Java zu verdanken. Es hätte auch anders kommen können, ist es aber zum Glück nicht. Zur Javaentwicklung in den 90érn wurden Erkenntnisse von mehreren Sprachen übernommen, z.B. C, Pascal etc., unter anderem auch deshalb, um alteingesessene Entwickler nicht vor den Kopf zu stoßen.
Funktionen haben Rückgabewerte, Prozeduren nicht. Methoden können Rückgabewerte haben oder halt nicht. In Java selbst gibt es nur Methoden.
und warum muss eine programmiersprache objektorientiert sein, damit sie funktionen und prozeduren in einem konstrukt zusammenfasst?
Ja in Java fasst eine Methode die beiden Möglichkeiten (Funktion/Prozedur) zusammen.
Die Begriffe sind nicht wirklich definiert, man kann sie fürs eigene Verständnis natürlich so benennen, aber in Java existieren nur Methoden
[Java]
public void methode() { // Theoretisch eine Prozedur
public int methode() { // Theoretisch eine Funktion
[/Java] in java ist beides eine Methode
Du liegst richtig in C wird ebenfalls kein Unterschied zwischen Funktion und Prozedur gemacht, allerdings gibt es einige prozedurale Sprachen die einen unterschied machen. Sie müßen auch explizit unterschieden werden.
[public | private ] Function Funktionsname
darf man die unterprogrammaufrufe in C denn auch als methoden bezeichnen oder ist der begriff einer methode nur in objektorientiertem kontext definiert?