Para̲meter der Dokumentation in Java
Die Aussprache des deutschen Wortes „Para̲meter“ lautet /paˈʀaːmetɐ/, man beachte die Betonung auf der zweiten Silbe.
Die Aussprache des englischen Wortes “parameter ” lautet /pəˈræˌmɪtɚ/ oder kurz /pˈræˌmɪtɚ/.
Typerwartungen
Der Aufrufausdruck »java.lang.Math.floor( 2.7 )« besteht aus einem Rahmen »java.lang.Math.floor( … )« und einem an Stelle der Lücke »…« eingesetztem Argumentausdruck »2.7«.
Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( java.lang.Math.floor( 2.7 )); }}Protokoll
2.0
Für diese Lücke »…« darf jedoch im allgemeinen nicht irgendein beliebiger Wertausdruck eingesetzt werden. Das folgende Programm zeigt, daß ein Ausdruck vom Typ »java.lang.String« beispielsweise zu einer Fehlermeldung führt.
Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( java.lang.Math.floor( "2.7" )); }}- Konsole (übersetzt und überarbeitet)
Main.java:3: Fehler: Methode floor in Klasse Math kann nicht auf
gegebene Typen angewendet werden;{ java.lang.System.out.println
( java.lang.Math.floor( "2.7" )); }}
^
verlangt: double
vorgefunden: java.lang.String
Grund: unpassendes Argument; String kann nicht in double gewandelt werden
Die Fehlermeldung drückt aus, daß ein Ausdruck vom Typ »double« erwartet wurde, während tatsächlich ein Ausdruck vom Typ »java.lang.String« gefunden wurde.
Para̲meter
Eine Methode kann einen Para̲meter haben.
Ein Para̲meter einer Methode ist durch die folgenden Eigenschaften bestimmt:
- die Methode, zu welcher der Para̲meter gehört, und
- einen Bezeichner (den Para̲meternamen).
Darüber hinaus hat ein Para̲meter noch
- einen Typ (den Para̲metertyp).
Para̲metertypen und Para̲meternamen
In der Dokumentation einer Methode, die einen Para̲meter hat, findet man in den Klammern hinter dem Methodennamen den Typ und den Namen des Para̲meters.
- Dokumentation einer Methode mit einem Para̲metertyp und einem Para̲meternamen (verändert und übersetzt)
java.lang
Class Mathstatic double floor( double a )
- Ergibt den größten double-Wert, der kleiner als »a« oder gleich »a« ist und bei dem alle Nachkommastellen gleich »0« sind.
In der obenstehenden Dokumentation ist »double« der Para̲metertyp und »a« der Para̲metername.
- Quelltextmodell
- Para̲metertypangabe (wie beispielsweise »double«)
- Para̲metername (wie beispielsweise »a«)
Para̲metereigenschaften in der Dokumentation ⃗
Wenn eine Methode einen Para̲meter hat, kann man ihrer Dokumentation jene Eigenschaften ihres Para̲meters entnehmen:
- Die Methode, zu welcher der Para̲meter gehört ist die Methode, die in jener Dokumentation dokumentiert wird.
- Der Name des Para̲meters findet sich in der Proklamation jener Methode in den runden Klammern am Ende.
- Der Typ des Para̲meters findet sich in der Proklamation jener Methode in den runden Klammern vor dem Namen.
Die Angaben zu einem Para̲meter in den Klammern nennen wir auch eine Para̲meterproklamation.
Para̲metereigenschaften am Beispiel von »java.lang.Math.floor« ⃗
Der oben gezeigten Dokumentation kann man beispielsweise entnehmen, daß die Methode »java.lang.Math.floor« einen Para̲meter mit den folgenden Eigenschaften hat:
- Die Methode des Para̲meters ist »java.lang.Math.floor«.
- Der Name des Para̲meters lautet »a«.
- Der Typ des Para̲meters ist »double«.
Para̲metertypen und Argumenttypen
Wir nennen den Typ des Argumentausdrucks eines Aufrufs auch den Argumenttyp jenes Aufrufs.
Wenn eine Methode einen Para̲meter hat, dann muß sie auch mit einem Argument aufgerufen werden, und es wird erwartet, daß der Argumenttyp ein Untertyp des Para̲metertyp ist.
Jeder Typ ist Untertyp seiner selbst, und außerdem ist »int« ein Untertyp von »double«.
Dies ist die Erklärung dafür, daß der am Anfang dieser Lektion gezeigte Aufruf der Methode »java.lang.Math.floor« mit dem Argumentausdruck »"2.7"« nicht möglich war. Diese Methode hat einen double-Para̲meter, aber der Ausdruck »"2.7"« hat den Typ ›java.lang.String‹, und ›java.lang.String‹ ist kein Untertyp von ›double‹. – In der oben gezeigten Fehlermeldung bedeutet »String kann nicht in double gewandelt werden«, daß der Typ »java.lang.String« kein Untertyp des Typs ›double‹ ist.
Para̲meterproklamationen und Argumentausdrücke ⃗
Para̲meterproklamationen und Argumentausdrücke werden manchmal miteinander verwechselt : Para̲meterproklamationen finden sich in der Dokumentation als Beschreibung einer Lücke, sie drücken das Fehlen eines bestimmten Wertes aus, die Erwartung eines Ausdrucks beim Aufruf im Quelltext. Argumentausdrücke finden sich im Quelltext innerhalb mancher Ausdrücke und geben den zur Ermittlung des Para̲meterwerts zu nutzenden Ausdruck an, beispielsweise als ein Numerale oder als eine Summe. Da Para̲meterbeschreibungen das Fehlen eines Wertes ausdrücken und Argumentausdrücken einen Wert ausdrücken, sind Argumentausdrücke gewissermaßen das Gegenstück zu Para̲meterbeschreibungen. (Der Para̲meter ist der Parkplatz und das Argument ist das Auto.)
Para̲meternamen
In der Prosa steht der Para̲metername für den Wert des Arguments eines Aufrufs der beschriebenen Methode.
- Prosa mit Para̲meternamen
- Ergibt den größten double-Wert, der kleiner als »a« oder gleich »a« ist und bei dem alle Nachkommastellen gleich »0« sind.
Die Methode ergbt bei einem Aufruf mit einem Argument also „den größten double-Wert, der kleiner als der Wert des Arguments oder gleich dem Wert des Arguments ist und bei dem alle Nachkommastellen gleich »0« sind.“.
Wenn die Methode mit dem Argumentwert »2.4« aufgerufen wird, ergibt sie also „den größten double-Wert, der kleiner als »2.4« oder gleich »2.4« ist und bei dem alle Nachkommastellen gleich »0« sind.“.
Der Argumentwert kann den Wert eines Aufrufs beeinflussen. Wie diese Beeinflussung genau aussieht, wird in der Dokumentation der Methode beschrieben.
Das Schreiben von Aufrufen
Das folgende Beispielprogramm zeigt einen der Dokumentation der Methode »java.lang.Math.floor« entsprechenden Aufruf jener Methode mit einem Argumentausdruck vom Typ »double«.
Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( java.lang.Math.floor( 2.7 )); }}java.lang.System.out
2.0
Hier zeigen wir nun die Proklamation der Methode »java.lang.Math.floor« und zum Vergleich einen Aufruf jener Methode.
- Proklamation
static double floor( double a )
- Aufruf
java.lang.Math.floor( 2.7 )
Man beachte den Unterschied zwischen der Proklamation und dem Aufruf! Das einzige Wort, das oben in beidem vorkommt, ist »floor«. Trotzdem werden beide von Anfängern oft verwechselt, und nach dem Lesen von Dokumentation werden oft Proklamationen an Stelle von Aufrufen in Programme hineingeschrieben.
Wir schreiben keine Proklamationen in Programme hinein, sondern nur Aufrufe ! Die Proklamationen der Dokumentation sind lediglich zum Lesen gedacht.
Leere Para̲meterlisten
Wenn eine Methode keinen Para̲meter hat, dann darf sie nicht mit einem Argument aufgerufen werden.
Wenn die Klammern hinter dem Methodennamen in der Dokumentation leer sind, dann hat die dokumentierte Methode keinen Para̲meter, und muß entsprechend auch mit leeren Klammern (also ohne Argument ) aufgerufen werden.
- Dokumentation von »java.lang.Math.random()« (gekürzt und übersetzt)
- Modul java.base
- Paket java.lang
- Klasse Math
static double random()
- Ergibt einen double-Wert größer oder gleich »0.0« und kleiner als »1.0«.
Beispiele in Zusammenhang mit Untertypen
Ein Ausdruck eines Untertyps wird akzeptiert
Die Methode »java.lang.Math.floor« hat einen Parameter vom Typ »double« und akzeptiert daher auch ein Argument vom Untertyp »int«.
Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( java.lang.Math.floor( 3 )); }}- Protokoll
3.0
Ein Ausdruck, der nicht von einem Untertyp ist, wird nicht akzeptiert
Die Methode »java.lang.Float.intBitsToFloat« hat einen Parameter vom Typ »int«. Sie akzeptiert ein Argument vom Typ »double« nicht, da »double« kein Untertyp von »int« ist.
Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( java.lang.Float.intBitsToFloat( 3.2 )); }}- Protokoll
Main.java:4: error: method intBitsToFloat in class Float cannot be applied to given types;
( java.lang.Float.intBitsToFloat( 3.2 )); }}
^
required: int
found: double
reason: argument mismatch; possible lossy conversion from double to int
1 error
Weitere Beispiele für Methodendokumentationen
Hier zeigen wir die Dokumentation einiger Methoden, von denen einige schon verwendet wurden.
»java.lang.Math.negateExact«
Diese Methode wurde schon in einer früheren Lektion verwendet.
- Dokumentation (vereinfacht und übersetzt)
- Module java.base
Package java.lang
Class Math
static int negateExact( int a )
Das Negative von »a«. Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( java.lang.Math.negateExact( 3 )); }}Protokoll
-3
Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( java.lang.Math.negateExact( 3.2 )); }}- Protokoll (Java 10 )
Main.java:4: error: no suitable method found for negateExact(double)
( java.lang.Math.negateExact( 3.2 )); }}
^
method Math.negateExact(int) is not applicable
(argument mismatch; possible lossy conversion from double to int)
method Math.negateExact(long) is not applicable
(argument mismatch; possible lossy conversion from double to long)
1 error
»java.lang.Math.sqrt«
- Dokumentation (verändert und übersetzt)
java.lang
Class Mathstatic double sqrt( double x )
- die Quadratwurzel von »x«.
Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( java.lang.Math.sqrt( 3.0 * 3.0 )); }}Protokoll
3.0
»java.lang.Math.cos«
- Dokumentation (verändert und übersetzt)
java.lang
Class Mathstatic double cos( double x )
- der Kosinus von »x«
Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( java.lang.Math.cos( 0 )); }}Protokoll
1.0
»java.lang.Double.parseDouble«
- Dokumentation (verändert und übersetzt)
java.lang
Class Doublestatic double parseDouble( java.lang.String s )
- Der double-Wert des Numerales in »s«. Beispielsweise ist »java.lang.Double.parseDouble( "2.2" )« gleich »2.2«.
- Aussprache
- parseDouble ˈpɑːɚz ˈdʌbəl
Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( java.lang.Double.parseDouble( "2.5" )+ 0.25 ); }}Protokoll
2.75
Auch ein negatives Vorzeichen ist noch erlaubt.
Main.java
public class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( 12.0 + java.lang.Double.parseDouble( "-1.0" )); }}transcript
11.0
»java.lang.Double.toString« ⃗
- Dokumentation von »java.lang.Double.toString()« (gekürzt und übersetzt)
- Modul java.base
- Packet java.lang
- Klasse Double
- Methodenzusammenfassung
static java.lang.String toString( double d )
- Ergibt eine String-Darstellung des Argumentwertes.
Main.java
public class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( 1 + java.lang.Double.toString( 14.1 )); }}transcript
114.1
»java.lang.Integer.parseInt« ⃗
- Dokumentation (verändert und übersetzt)
java.lang
Class Integerstatic int parseInt( java.lang.String s )
- Der int-Wert des Numerales »s«. Beispielsweise ist »java.lang.Integer.parseInt( "2" )« gleich »2«.
- Aussprache
- parseDouble ˈpɑːɚz ˈɪnt
Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( java.lang.Integer.parseInt( "5" )+ 2 ); }}Protokoll
7
Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( java.lang.Integer.parseInt( "5" )); }}Protokoll
5
Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( java.lang.Double.parseDouble( "5" )); }}Protokoll
5.0
Auch ein negatives Vorzeichen ist noch erlaubt.
Main.java
public class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( -2 * java.lang.Integer.parseInt( "-" + "3" )); }}transcript
6
»java.lang.Integer.toString« ⃗
Main.java
public class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( 1 + java.lang.Integer.toString( 14 )); }}transcript
114
Übungsfragen
? Dokumentation lesen
In der Dokumentation einer (hypothetischen) Methode »f« findet sich die Proklamation »int f( double x )« – was bedeutet darin das »int« und was das »double« (das heißt: in welchem Zusammenhang mit der Methode »f« steht darin das »int« beziehungsweise das »double«)?
(Siehe auch: »java.lang.Double.hashCode« und »java.lang.Math.getExponent«.)
? Dokumentation und Quelltext lesen
Angenommen, man findet in der Dokumentation zwei Proklamationen: »java.lang.String f( int i )« und »int g()«, welche der folgenden Aufrufe sind dann erlaubt?
- »f( g() )«
- »g( f() )«
? Dokumentation lesen (2)
- Dokumentation einer Methode mit Para̲metertyp und Para̲metername (verändert und übersetzt)
java.lang
Class Mathstatic double toRadians( double angdeg )
- Der Argumentwert gibt einen Winkel in der Einheit „Grad“ an.
- Diese Methode ergibt dann den Zahlenwert des angegebenen Winkels in der Einheit "Radiant".
(Aussprache von “to radians ”: /tu ˈreɪdiənz/, /ˈreɪdiəns/ wäre die Aussprache von “radiance ”).
Fragen zum Verständnis der obigen Dokumentation
- Welchen Namen hat der Para̲meter der Methode?
- Welchen Datentyp hat der Para̲meter der Methode?
- Welchen Datentyp hat ein Aufruf der Methode?
- Welchen eigentlichen Namen hat die dokumentierte Methode? *
? Reihenfolge von Rechenschritten
In welcher zeitlichen Reihenfolge werden die beiden Methoden bei der Auswertung des folgenden Ausdrucks berechnet?
- Anton : Zuerst »cos«, dann »sin«.
- Berta : Zuerst »sin«, dann »cos«.
- Ausdruck
java.lang.Math.cos( java.lang.Math.sin( 2 ))
? Dokumentation lesen (1) ⃗
In einer Proklamation einer (hypothetischen) Methode »f« findet sich »int f( double x )« – ist »x« darin ein Para̲metername oder ein Argumentausdruck?
? Quelltext lesen ⃗
In einem Programm findet sich der Ausdruck »java.lang.Math.negateExact( 3 + 1 )« – ist »3 + 1« darin ein Para̲metername oder ein Argumentausdruck?
? Verständnis von Fachbegriffen ⃗
Zu einer (hypothetischen) Methode »f« wird erklärt: „Die Methode »f« ergibt den Wert ihres Arguments.“. Welchen Wert hat dann »f( 3 )«?
Zu einer (hypothetischen) Methode »m« wird erklärt: „Die Methode »m« ergibt stets den Wert 4.“. Welchen Wert hat dann »m( 3 )«?
? Ausdrücke lesen ⃗
Können Sie – ohne ein Java -Programm zu starten – den ungefähren Wert des Ausdrucks »java.lang.Math.sqrt( java.lang.Math.sqrt( 16.0 ))« vorhersagen?
? Datentypen ermitteln ⃗
Welchen Datentyp hat der Ausdruck »java.lang.Math.sqrt( java.lang.Math.sqrt( 16.0 ))«?
Welchen Datentyp hat der Ausdruck »java.lang.Double.parseDouble( "2.7" )«?
? Quelltext beurteilen *
Ist das folgende Programm korrekt? Begründen Sie Ihre Antwort!
Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( static double floor( double a ) ); }}
? Bedeutung von Ausdrücken **
Ist »java.lang.Math.abs( 2 )« eine Methode?
? Quelltext beurteilen **
- erste Zeile (aus einer Dokumentation)
static double floor( double a )
- zweite Zeile (aus einem Quelltext)
java.lang.Math.floor( 2.7 )
Nennen Sie Unterschiede zwischen den voranstehenden beiden Zeilen, indem Sie die Lücken „____________________“ in den folgenden beiden Sätzen ausfüllen.
- In der ersten Zeile steht vor »floor« ____________________, in der zweiten Zeile steht vor »floor« ____________________.
- In der ersten Zeile steht in den Klammern ____________________, in der zweiten Zeile steht in den Klammern ____________________.
Übungsaufgaben
/ Aufrufe schreiben
- Dokumentation (übersetzt und verbessert)
java.lang
Class Mathstatic double abs( double a )
- Ergibt den Betrag des Argumentwertes.
Diese Übungsaufgabe soll das selbständige Schreiben von Aufrufen von Methoden mit einem Para̲meter an Hand der Dokumentation üben.
Schreiben Sie ein Programm, welches das Ergebnis eines Aufrufs der Methode »abs« mit dem Argumentausdruck »5.0« ausgibt. (Die Ausgabe sollte »5.0« lauten.)
Denken Sie daran, nichts aus der Dokumentation in das Programm zu kopieren!
(Wenn Sie etwas kopieren wollen, kopieren Sie lieber ein Beispielprogramm aus der Lektion als Vorlage.)
Die ersten drei Zeilen des Ausdruckrahmens dürfen weiterhin nicht verändert werden!
Reserveaufgaben
/ Aufrufe schreiben (1)
Hinweis für den Dozenten ► (Diese Reserveaufgabe wird erst nach der Nachbesprechung der ersten obenstehenden Aufgabe bearbeitet, falls diese Aufgabe noch nicht gelöst werden konnte.)
Schreiben Sie ein Programm, welches das Ergebnis eines Aufrufs der Methode »signum« ausgibt (welche Werte dabei genau verwendet werden, ist egal.)
- Aussprachehinweise
- signum (englisch) ˈsɪgnəm
- Signum (deutsch) ˈzɪgnʊm
- Dokumentation (übersetzt und überarbeitet)
java.lang
Class Mathstatic double signum( double d )
- Ergibt das Signum des Arguments;
«0.0», wenn der Argumentwert «0.0» ist,
«1.0», wenn der Argumentwert größer als «0.0» ist,
«-1.0», wenn der Argumentwert kleiner als «0.0» ist.
/ Aufrufe schreiben (2)
Hinweis für den Dozenten ► (Diese Reserveaufgabe wird erst nach der Nachbesprechung der vorherigen Aufgabe bearbeitet, falls die vorherige Aufgabe noch nicht gelöst werden konnte.)
Schreiben Sie ein Programm, welches das Ergebnis eines Aufrufs der Methode »sqrt« ausgibt (welche Werte dabei genau verwendet werden, ist egal.)
- Dokumentation (übersetzt und vereinfacht)
java.lang
Class Mathstatic double sqrt( double x )
- Ergibt die Quadratwurzel von »x«.
/ Aufrufe schreiben (3)
Hinweis für den Dozenten ► (Diese Reserveaufgabe wird erst nach der Nachbesprechung der vorherigen Aufgabe bearbeitet, falls die vorherige Aufgabe noch nicht gelöst werden konnte.)
Schreiben Sie ein Programm, welches das Ergebnis eines Aufrufs der Methode »charCount« ausgibt (welche Werte dabei genau verwendet werden, ist egal.) (Es ist für diese Aufgabe nicht wichtig, die genaue Bedeutung der dokumentierten Methode zu verstehen.)
- Dokumentation (übersetzt und vereinfacht)
java.lang
Class Characterstatic int charCount( int codePoint )
- Ergibt die Anzahl (1 oder 2) der char-Werte eines Schriftzeichens mit der Kennzahl »codePoint«.
/ Aufrufe schreiben (4)
Hinweis für den Dozenten ► (Diese Reserveaufgabe wird erst nach der Nachbesprechung der vorherigen Aufgabe bearbeitet, falls die vorherige Aufgabe noch nicht gelöst werden konnte.)
Schreiben Sie ein Programm, welches das Ergebnis eines Aufrufs der Methode »toRadians« ausgibt (welche Werte dabei genau verwendet werden, ist egal.)
- Dokumentation einer Methode mit einem Para̲meter (verändert und übersetzt)
java.lang
Class Mathstatic double toRadians( double angdeg )
- Der Argumentwert gibt einen Winkel in der Einheit „Grad“ an.
- Diese Methode ergibt dann den Zahlenwert des angegebenen Winkels in der Einheit „Radiant“.
Übungsaufgaben *
/ Mathematische Aufrufe schreiben *
Hinweis für den Dozenten ► Diese Aufgabe sollte nicht vor der Nachbesprechung der vorigen Übungsaufgabe behandelt werden.
Schreiben Sie möglichst kurze Ausdrücke, die den folgenden sprachlichen Bezeichnungen entsprechen, ohne dabei den Wert des Ausdrucks schon selber im Kopf auszurechnen! Die Werte der Ausdrücke sollten den mathematischen Werten der vorgegebenen Texte möglichst nahe kommen. (Passende Methoden können in der Klasse »java.lang.Math« gefunden werden.)
- Der Kosinus von Null (Die Ausgabe sollte zirka »1.0« lauten.)
- Die Wurzel aus zwölf Prozent von Vierundsiebzig (Die Ausgabe sollte zirka »2.979932885150268« lauten.)
Zusatzfragen *
? Ausdrücke lesen *
Die folgenden Fragen sollen durch Lesen der Dokumentation beantwortet werden, nicht durch Ausprobieren (Starten von Programmen).
Welche Werte kann der Ausdruck »java.lang.Math.rint( java.lang.Math.random() * 3 )« haben?
Welche Werte kann der Ausdruck »java.lang.Math.floor( java.lang.Math.random() * 3 )« haben?
Welche Werte kann der Ausdruck »java.lang.Math.ceil( java.lang.Math.random() * 3 )« haben?
Teilnehmerfrage Wie kann man »java.lang.Math.floor« abkürzen? ⃗
Man kann »java.lang.« fast immer weglassen und einfach, »Math.floor« schreiben.
Durch verschiedene Techniken, die wir aber erst später kennenlernen werden, könnte man »Math.floor« auch noch weiter abkürzen, etwa zu »floor« oder gar zu »f«.
Man bedenke jedoch, daß Erfahrungen mit Software-Projekten es gezeigt haben, wie wichtig es ist, vorhandenen Quellcode überarbeiten zu können. Dies scheitert oft daran, daß der Quellcode nicht mehr auf einfach Weise verstanden werden kann. Deswegen sieht man heute die Lesbarkeit als wichtiger an als eine eventuelle Ersparnis von Tippvorgängen beim Eingaben.
»Math.floor« ist relativ gut lesbar, weil jeder Java -Programmierer die Methode »Math.floor« kennt. Bei einer Abkürzung, wie »floor« oder »f« könnte der Leser nicht mehr sicher sein, ob damit »Math.floor« gemeint ist, und müßte womöglich erst aufwendig ermitteln, was »floor« oder »f« bedeutet.
Dies wäre ein guter Grund dafür »Math.floor« nicht weiter abzukürzen.
Viele Software-Projekte scheitern. Die Ursachen dafür liegen oft in schwieriger Kommunikation mit dem Kunden, in Schwierigkeiten beim Verständnis von Kundenwünschen oder bei Gestaltung des Aufbaus eine großen Programms, das in ungünstigen Fällen zu unübersichtlich werden kann. Bei all diesen Problemen hat es nie geholfen, etwas Tipparbeit beim Eingeben von Programmen zu sparen. (Wenn die Zeitersparnis beim Schreiben einen guten Autor machen würde, wären ja Schreibkräfte die besten Schriftsteller, weil sie Stenographie beherrschen und damit sehr schnell schreiben können. Thomas Mann schrieb hingegen in „Tristan“ auf die Figur Spinell bezogen: „Für einen, dessen bürgerlicher Beruf das Schreiben ist, kam er jämmerlich langsam von der Stelle, und wer ihn sah, mußte zu der Anschauung gelangen, daß ein Schriftsteller ein Mann ist, dem das Schreiben schwerer fällt als allen anderen Leuten.“)
Trotzdem soll es nicht bestritten werden, daß eine Möglichkeit zu Verwendung von Abkürzungen beim Eingeben bequem sind. Dafür kann unter Windows Software wie Autohotkey genutzt werden. Aber auch IDEs, wie Netbeans oder Eclipse, stellen solche Funktionen zur Verfügung.