Ik heb een vraag over java main (). java main () retourneert niets. Per software engineering wordt een codeblok dat niets retourneert een procedure genoemd, dus waarom noemen we main () een methode? moeten we het in plaats daarvan de hoofdprocedure noemen?
Antwoord
Moeten we de
main()
methode aanroepen alsmain()
procedure?
Informeel, zeker. Daar is geen probleem mee.
Per software engineering wordt een blok code dat niets teruggeeft een Procedure genoemd.
Hoewel dit prima is, is het niet 100% standaard voor alle talen en alle software-engineering. Procedure is een vrij algemene term en kan in verschillende contexten op verschillende niveaus van abstractie en algemeenheid.
In de Java-taalspecificatie komt het woord “procedure” bijvoorbeeld 41 keer voor, waarvan er geen worden gebruikt om te verwijzen naar “functies vs. methoden vs. procedures”.
Bijna alle toepassingen van de term “procedure” in de specificatie verwijzen naar een goed gedefinieerd algoritme, meestal specifiek het algoritme van klasse-initialisatie als een complexe, interne en stateful bewerking van de taal & zijn runtime, in plaats van als iets dat je kunt aanroepen.
Daarentegen verschijnt het woord “method” 2049 keer, waarvan er één is “methode d eclaration “, dus deze term vertegenwoordigt een syntactische en semantische constructie in de taal die programmeurs zullen gebruiken.
We noemen main
een methode, in Java omdat dat is wat het is volgens de terminologie van de taal — een “statische ongeldige methode”. De Java-taal biedt de term procedure niet aan als iets dat kan worden aangeroepen of zoiets als een functie zonder retourwaarde.
Talen worden doorgaans gedefinieerd door een vrij strenge specificatie. Deze specificaties introduceren terminologie voor gebruik in de rest van de specificatie, en voor de duidelijkheid is dergelijke terminologie meestal duidelijk gedefinieerd. De auteurs van een taal en van de specificatie ervan hebben het voorrecht om veelgebruikte termen met taalspecifieke betekenissen opnieuw te definiëren. Ze doen er alles aan om deze termen consistent te gebruiken binnen hun taalspecificatie. De terminologie die ze in de specificatie introduceren, wordt meestal door programmeurs gebruikt in de context van die programmeertaal.
Dezelfde exacte termen kunnen in betekenis verschillen tussen twee talen. Ze kunnen ook verschillen van algemeen, informeel gebruik in de hele programmering, waar termen niet zo strikt zijn gedefinieerd als in een taalspecificatie.
Opmerkingen
- Erik , Bedankt voor de uitgebreide uitleg. Het is logisch per Java-specificatie.