Einführung in komplexe Aufrufe statischer Methoden in Java im Rahmen der Lehre der Programmiersprache Java. (Komplexe Aufrufe statischer Methoden in Java), Lektion, Seite 721317
https://www.purl.org/stefan_ram/pub/komplexer_aufruf_java (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Java-Kurs

Aufrufe statischer Methoden in Java 

Diese Lektion soll an Hand der schon bekannten Aufrufe statischer  Methoden einige Begriffe einführen, die wir etwas später bei der Behandlung neuer Themen einsetzen werden.

Verben

Der eigentliche Name einer Methode wird hier auch als Verb  jener Methoden bezeichnet.

Beispielsweise ist das Verb der Methode »java.lang.Math.random()« der Bezeichner »random«.

Verbaufrufe

Wir erinnern hier an die Produktionsregel eines Aufrufs.

Aufruf (Syntaxdiagramm)

Aufruf
.-------. .-. .---------------. .-.
--->| Name |--->( ( )--->| Ausdruckliste |--->( ) )--->
'-------' '-' '---------------' '-'

Ausdruckliste
.---------------------------.
| .----------. v
---'---.--->| Ausdruck |---.---'--->
^ '----------' |
| .-. |
'-------( , )<------'
'-'

Zusätzliche Anforderungen: Der »Name« muß der Name einer Methode sein.

Ein Verbaufruf  ist ein Aufruf, welcher mit einem Verb beginnt, also der folgenden Produktionsregel genügt.

Verbaufruf (Syntaxdiagramm)
Verbaufruf
.------------. .-. .---------------. .-.
--->| Bezeichner |--->( ( )--->| Ausdruckliste |--->( ) )--->
'------------' '-' '---------------' '-'

Dabei ist es entscheidend, daß bei einem Verbaufruf vor der Klammer auf »(« nur ein Bezeichner, aber kein Name, steht. Ein Bezeicher darf – im Gegensatz zu einem Namen – keine Punkte  enthalten.

Beispiel für einen Verbaufruf
random()
Beispiel für einen Aufruf, der aber kein Verbaufruf ist
java.lang.Math.random()

Jeder Aufruf endet mit einem Verbaufruf.

Aufrufe mit Typnamen

Ein Verbaufruf alleine ist in manchen Fällen noch zu unbestimmt  für eine Auswertung.

Er benötigt dann unter Umständen noch einen mit einem Punkte abgetrennten Typnamen  vor  dem Verbaufruf. Der Aufruf »java.lang.Thread.dumpStack()« enthält beispielsweise den Typnamen »java.lang.Thread« und den Verbaufruf »dumpStack()«.

Aufruf einer statischen Methode mit Typnamen (Syntaxdiagramm) ::=
    .---------.     .---.     .------------.
--->| Typname |--->( . )--->| Verbaufruf |--->
'---------'  '---' '------------'
Beispiel eines Aufrufs mit Typnamen
java.lang.Thread . dumpStack()

Kontexte

Eine mit einem Punkt abgetrennte Angabe in einem Aufruf, die vor einem Verbaufruf steht, wird vom Java -Compiler auch Kontext  genannt. (Nach dem Kontext im Sinne eines „umgebenden“ Textes, der die Bedeutung eines Textes eingrenzen kann.)

Einen Aufruf, der einen mit einem Punkt ».« abgetrennten Typnamen vor dem Verb (dem einfachen Namen der Methode) enthält, nennen wir auch einen Aufruf mit Kontext. Ein Aufruf mit Kontext enthält  also Punkte in dem Namen vor der Klammer, wie etwa bei dem Aufruf »java.lang.Thread.dumpStack()«. Ein komplexer Aufruf ist ein Teil des Quelltexts.

Aufruf einer statischen Methode (Syntaxdiagramm) ::=
    .---------.     .---.     .------------.
--->| Kontext |--->( . )--->| Verbaufruf |--->
'---------'  '---' '------------'
Beispiel eines Aufrufs mit Kontext
java.lang.Thread . dumpStack()

Der Aufruf »java.lang.Thread.dumpStack()« enthält beispielsweise den Kontext »java.lang.Thread« und den Verbaufruf »dumpStack()«.

Den Punkt zwischen Kontext und Verbaufruf, nennen wir hier auch Kontextpunkt. Es handelt sich beim Kontextpunkt stets um den letzten Punkt vor der Klammer eines Aufrufs mit Kontext.

Man sagt auch, daß der Verbaufruf mit dem angegebenen Kontext  oder in dem angegebenen Kontext  erfolge. Beispielsweise wird in dem obigen Beispiel »dumpStack()« im Kontext  »java.lang.Thread« aufgerufen.

Man sagt auch, daß mit dem obigen Aufruf die Methode »dumpStack()« aus dem Typ »java.lang.Thread« aufgerufen werde. Ein Kontext ist ein Teil des Quelltexts.

Enthaltensein

Wenn ein Verbaufruf in einem bestimmten Kontext möglich ist (also ohne Fehlermeldung kompiliert und ausgeführt wird), dann sagen wir, daß dieser Kontext eine zum Aufruf passende Methode enthalte.

?    Der Kontext enthält  eine zum Aufruf passende Methode
java.lang.Thread . dumpStack()
?    Der Kontext enthält keine zum Aufruf passende Methode
java.lang.Math . dumpStack()

Eine Typ als Kontext enthält eine zu einem Verbaufruf passende Methode dann, wenn es eine statische  Methode in diesem Typ gibt, die zu dem Aufruf paßt.

In der Dokumentation des Typs »java.lang.Thread« findet man beispielsweise eine zum Verbaufruf »dumpStack()« passende Methode.

Dokumentation von »java.lang.Math.random()« (gekürzt, vereinfacht und übersetzt)
Modul java.base
Packet java.lang
Klasse Thread
Methodenzusammenfassung
static void dumpStack()
Druckt einen Stapelbericht für das laufende Programm.

In der Dokumentation des Typs »java.lang.Math« findet man aber keine  zum Verbaufruf »dumpStack()« passende Methode. Daher enthält der Kontext »java.lang.Math« keine  zum Verbaufruf »dumpStack()« passende Methode.

Beispiele für Aufrufe statischer Methoden

Die folgende Tabelle zeigt einige Beispiele für Aufrufe statischer Methoden.

Tabelle

Kontext Kontextpunkt Verbaufruf

java.lang.Thread . dumpStack()
java.lang.Math . random()

Die Frage, ob ein Kontext eine Methode enthält, die einen bestimmten Verbaufruf ermöglicht, kann durch Lesen der Dokumentation und des Quelltexts beantwortet werden.

Zusammenfassung

Ein Aufruf mit Kontext, der eine statischen Methode aufruft, wie »java.lang.Math.pow( 2.0, 3.0 )« besteht aus einem Kontexttyp, wie »java.lang.Math«, und einem Verbaufruf, wie »pow( 2.0, 3.0 )«, zu dem es im Kontexttyp eine passende Methode gibt.

Übungsfragen

?   Bestandteile von Aufrufen

Was ist der Verbaufruf  im Aufruf »java.lang.Math.random()«?

Was ist der Kontext im Aufruf »java.lang.Math.random()«?

?   Enthaltensein von Methoden

Zu welchen der folgenden Verbaufrufe gibt es im Kontext »java.lang.Math« passende Methoden?

Übungsaufgaben

/   Aufrufe mit Kontext

Schreiben Sie einen Aufruf mit dem Kontext »java.lang.Math« und dem Verbaufruf »rint( 2 )«. (Der Aufruf sollte höchstens 24 Zeichen benötigen.)

Anmerkungen und Zitate *

Syntax eines Aufrufs einer statischen  Methode *

Zitate aus der JLS, leicht umgestellt und vereinfacht:
Aufruf einer statischen Methode ::=
MethodInvocation 〉 ::=
TypeName 〉 "." 〈Identifier 〉 "(" [〈ArgumentList 〉] ")".

Herkunft des Begriffes „Kontext“ *

Der Begriff „Kontext“ wird 2012 vom Standard-Java -Compiler aus dem JDK  selber verwendet:

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.io.PrintStream.println(); }}
Konsole
javac Main.java
Main.java:3: error: non-static method println() cannot be referenced from a static context
{ java.io.PrintStream.println(); }}
^
1 error
(Main.java:3: Fehler: nicht-statische Methode println() kann nicht von statischem Kontext aus referenziert werden.)
Compiler-Fehlermeldung, 2012

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram721317 stefan_ram:721317 Komplexe Aufrufe statischer Methoden in Java source, source code,sourcecode, Programmier sprache java, Java Programm Java Programmiersprache Java Sprache Java Programmierung Programmieren in Java, Die Programmiersprache Java Javapgrammierung, Java-Programmierung, Java2, Java1.2, Java1.3, Java1.4, Java1.5, Java 2, Java 1.2, Java 1.3, Java 1.4, Java 1.5, Java 1.6, Java 1.7, Java 1.8, Java 8, Java 1.9, Java 9, Java 1.10, Java 10, Tiger, Dolphin, objektorientierte Programmierung, Java sun, , Softwareentwicklung, Software-Entwicklung, Software Entwicklung, Softwareprogrammierung, Software-Programmierung, Software Programmierung, Softwareherstellung, Software-Herstellung, Software Herstellung, Softwareerstellung, Software-Erstellung, Software Erstellung, Softwareengineering, Software-Engineering, Software Engineering, Softwareenginering, Software-Enginering, Software Enginering, Softwaremethodik, Software-Methodik, Software Methodik, Programmiermethodik, Programmier-Methodik, Programmier Methodik, Softwaredidaktik, Software-Didaktik, Software Didaktik, Methodik des Programmierens, Didaktik des Programmierens, Fachdidaktik des Programmierens, Fach-Didaktik des Programmierens, Programmieren, Programmierung, Computer Science, Informatik, Informatik, Informationspädagogik, Informationspaedagogik, Programmierer, programmieren, Quellcode, Quelltext, Quelle, Quellen, Informatiker, Fachinformatiker, Entwickler, mit Stil, mit Stiel, mit Still, , Einführung, Einfuehrung, Einführungen, Einfuehrungen, eLearning-Modul, e-Learning-Modul, eLearning-Module, e-Learning-Module, Kurs Berlin, Kurse Berlin, Kursus, Vortrag, Vorträge, Vortraege, Lehrgang, Lehrgänge, Lehrgaenge, kostenloses Lehrmaterial, kostenlose Lehrmaterialien, Vorlesung, Vorlesungen, Unterrichtseinheit, Unterrichtseinheiten, kostenloses Unterrichtsmaterial im Internet, kostenlose Unterrichtsmaterialien im Internet, Ausbildung, Ausbildungen, für die Ausbildung, Fortbildung, Fortbildungen, Weiterbildung, Weiterbildungen, Schulung Berlin, Schulungen Berlin, Internetschulung, Webschulung, Kursunterlage, Kursunterlagen, trainer Berlin, Didaktik, Informatikunterricht, Primer, Skript FH, Skripte FH, Skriptum FH, Skripts FH, Script FH, Scripte FH, Scriptum FH, Scripts FH, howto, how-to, how to, Lehrbuch, Buch, Bücher, Buecher, Bericht, Crash Kurs Berlin, Crash-Kurs Berlin, Crashkurs Berlin, Report, Sachtext, Sachtexte, Übung, Übungen, Uebung, Uebungen, course, PbclevtugFgrsnaEnz, lecture note, lecture notes, Tutorial, Tutor, Tutorium, Teacher, Lehrer Berlin, Trainer Berlin, Beratung Berlin, Anleitung zum, Anleitungen zum, Einführung, Einfuehrung, Einführungen, Einfuehrungen, Handbuch für, Handbücher, Handbuecher, Support, Diplomarbeit, Facharbeit, Hausarbeit, Hausarbeiten, Werk, Werke, Text, Übungsblatt, Uebungsblatt, Lösung, Loesung, Lösungen, Loesungen, Auflösung, Aufloesung, Auflösungen, Aufloesungen, Facharbeit, Facharbeiten, Forum, Training, manual, Folie, Folien, Lehrmittel, beratung, Definition von, Allgemeine Erklärung, Allgemeine Erklaerung, Allgemeine Erklärungen, Allgemeine Erklaerung, Allgemeine Erklaerungen, Einfache Erklärung einfach, Einfache Erklaerung einfach, Einfache Erklärungen, Einfache Erklaerung, Einfache Erklaerungen, zum Thema, FAQ, FAQs, Konzept, Lernkurs, Lern-Kurs, Lernkurse, Lern-Kurse, eine kurze Erklärung, Begriff, Begriffe, Erklärung zu Begriffen, begriffbestimmung, begriffbestimmung, Begriffsbestimmung, Begriffserklärung, Begriffserklaerung, Wort, Worterklärung, Worterklaerung, Definition, Beispiel, Beispiele, Bedeutung, Bedeutungen, was bedeutet, Begriffsdefinition, für Anfänger, fuer Anfaenger, für Einsteiger, für Beginner, zum selber Lernen, handout, hand out, web based training, WBT, Net Based Training, NBT, computer based training, CBT, virtual learning environment, virtual university, für die Schule, Seminar, Seminare, Vorgehensweise, Pädagogik, Paedagogik, Akademie, Onlineacademie, Onlineakademie, Wissen, Unterrichtsvorbereitung für das Fach, Unterricht, für Lehrer, für Lehrerinnen, Referat, Referate, Hausaufgabe, Hausaufgaben, Tip, Tipp. Tipps und Tricks, Tips und Tricks, Methode, Methoden, Methodik, Funktion, Funktionsweise, Aufbau, Prinzip, Grundlage, Grundlagen, Internetschulung, Unterlage, Unterlagen, Struktur, Frage, Fragen, Antwort, Antworten, Schulunterricht, zum erlernen, was ist das?, wie?, lerne, Onlineausbildung, Onlinelehrgang, Onlinekurs, Onlinebuch, Webbuch, Academy, Fachhochschule, FH, TFH, Hochschule, Universität, Universitaet, Uni, Schule, Berufsschule, Gymnasium, Erste Schritte mit, Dozent, Dozenten, Zusammenfassung, Übersicht, Term, Fachwort, Fachbegriff, Fachbegriffe, Grundbegriff, Grundbegriffe, Lektion, Lektionen, Bedienungsanleitung, Bedienungsanleitungen, Spezialist, Spezialisten, Coaching, Coach, Fachbuch, technologie, Unterschied zwischen, Unterschiede zwischen, lehren, unterrichten, für das Studium, für Studenten, für Studentinnen, für Studierende, für Schüler, für Schülerinnen, Wie kann ich, Wie kann man, Hilfe, selber, erstellen, Erstellung, Beginner, Online-Seminar, Online-Kurs, Online-Schulung, ich, gebrauchsanweisung, gebrauchsanleitung, Bedienungsanweisung, Einweisung, Kurzinfo, Internet-Kurs, Internet-Kurse, Online-Training, Intensiv, Intensivkurs, Vortragsreihe, Präsentation, Grundzüge, Mitschrift, Mitschriften, Verständnis, verstehen, anwenden, Hintergrundwissen, Hintergrund, Hintergründe, content, Funktionsprinzip, Schritt für Schritt; E-Learning; elearning; online learning; Fernlehre, Fernlehrgang, Fernlehrgänge, Referent, Referenten, Fernkurs, Fernkurse, Fernstudium, Fernschule, Fernuniversität, Fernlehrer, Denken, Qualifizierungsmaßnahme, Qualifizierung, Qualifizierungen, Volkshochschulkurs, Volkshochschulkurse, Internet-Learning-Plattform, Online-Learning-Plattform, E-Learning-Plattform, Internetlearning-Plattform, Onlinelearning-Plattform, Elearning-Plattform, jetzt, Kochbuch, einfach erklärt, Kenntnis, Kenntniss, Kenntnisse, deutsche Hilfe, lernen und verstehen; blended learning; courseware, Profi, Profis, professionell, professionelle, professionelles, profesionell, profesionelle, profesionelles, professionel, gekonnt, für Könner, Grundkurs, Leistungskurs, Aufbaukurs, Lehrtext, Lehrtexte, Fachtext, Fachtexte, Ausarbeitung, distance learning, Online Seminar, distance education, Online Tutorium, Online Tutorien, technology-based learning, Computer based learning, CBL, Internet Based learning, IBL, Web based learning, WBL, online-learning, OL, online-training, OT, CAI, Computer Assisted Instruction, CUU, Computerunterstützter Unterricht, Computer-unterstützter Unterricht, Know how, Grundkenntnis, Grundkenntnisse, Kompetenz, Schulungsunterlagen, Insiderwissen, Rat, Lehrerinnen und Lehrer, ABC, Überblick, Arbeitsblatt, Sekundarstufe, Oberstufe, Material, Materialien, Unterrichtsentwurf, Unterrichtsentwürfe, Lerntip, Lerntips, Lerntipp, Lerntipps, ebook, schnell lernen, Lerner, Lernender, Lernende Erwachsenenbildung, Frage und Antwort, Selbststudium, Selbstudium, Umschulung, , kostenlos, kostenlose, kostenloses, kosten los, kosten lose, kosten loses, gratis, free, frei, freie, freies, privat, private, privates, homepage, home-page, home page, website, web site, webpage, web-page, web page, webpages, web-pages, web pages, webseite, Web-Seite, Webseite, Webseiten, Web-Artikel, Web Artikel, online, on-line, on line, download downloaden, down load, or, deutsch, deutsche, deutsches, deutscher, Deutschland, deutschsprachig, deutschsprachige, deutschsprachiges, german, germany, and, uebersicht, Uerbersicht, uebersichten, Uebersichten, Übersicht, übersicht, Übersichten, übersichten, Uebersicht, uebersicht, Uebersichten, uebersichten, Info, Infos zu, Information über, ueber, Informationen über, Auskunft, Auskünfte, Auskuenfte, Dienst, PbclevtugFgrsnaEnz, Angebot, Angebote, Anbieter, server, für, fuer, in, an, keyword, keywords, key word, keywords, internet, internets, net, network, net work, networks, net works, web, www, world wide web, Theorie, Praxis, Anwendung, DV, IT, glossar, fachwörterbuch it-glossar, computer lexikon, Computerlexikon, Computer-Lexikon, Lexikon, computer lexicon, Computerlexicon, Computer-Lexicon, Lexicon, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 was ist ein, was ist das, was sind, definiere, definition, define, Inhalt, html, xhtml, free im netz, PDF Text, digital, digitale, binär, binäre, elektronisch, elektronische, fachbegriff, fachbegriffe, konzept, Begriff, allgemein, allgemeine, allgemeines, Technik, Datentechnik, Digitaltechnik, Binätechnik, online lesen; , Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd721317, slrprddef721317, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/komplexer_aufruf_java