Typanforderungen in Java (Typanforderungen in Java), Lektion, Seite 722520
https://www.purl.org/stefan_ram/pub/typanforderungen_java (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Java-Kurs

Typanforderungen in Java 

Das Literal nach einem Vorzeichenoperator »-« muß einen passenden Zahlentyp  (einen numerischen  Typ), wie ›int‹ oder ›double‹ haben (es muß numerisch sein), ein Literal mit dem Typ ›java.lang.String‹ ist dort nicht erlaubt.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( -"97" ); }}
javac -Fehlermeldung (frei übersetzt)
Main.java: Fehler: unerlaubter Operandentyp 'String' für den Operator '-'
-"97"
^

Wir sehen hier, wie Datentypen helfen, Fehler in Programmen automatisch zu erkennen!

Außerdem sieht man, daß Fachbegriffe, wie „Operandentyp“ oder „String“, in Fehlermeldungen verwendet werden. Dies ist eine Motivation zum Erlernen dieser Fachbegriffe.

Typanforderungen werden nicht schon durch die Syntaxdiagramme einer Sprache ausgedrückt, sondern gelten noch zusätzlich zu den Syntaxdiagrammen (Syntaxregeln).

Warum haben Ausdrücke einen Typ?

Der Typ eines Ausdrucks sagt der Java -Implementation in welcher Sprache (in welchem Code) der Wert des Ausdrucks intern durch Bits darzustellen ist.

Beispielsweise muß man zur Interpretation des Textes "malt" wissen, ob er auf englisch oder auf deutsch zu interpretieren ist. (Er bedeutet auf englisch Getreideprodukt „Malz“, aber auf deutsch die Aufforderung zu malen.)

Außerdem helfen Typen, Fehler in Programmen zu finden, indem sie unsinnige Kombinationen (wie »-"abc"«) durch Typregeln ausschließen.

Im Deutschen wäre beispielsweise „Ideen schlafen.“ ein Satz, der syntaktisch korrekt („wohlgeformt“), aber aufgrund von Verstößen gegen „Typanforderungen“ doch fehlerhaft wäre (das Verb „schlafen“ erwartet ein schlaffähiges Lebewesen als Subjekt).

Statische und Dynamische Typisierung ⃗

Bei dynamischer Typisierung würde der Typ eines Wertes erst bei der Ausführung  einer Stelle eines Programms geprüft werden. Ein bestimmter Programmteil wird vielleicht nur unter bestimmten Umständen ausgeführt, wie beispielsweise bei einem seltenen Notfall. Wenn dann zum ersten Mal der Typ eines Wertes an jener Stelle geprüft wird, dann könnte ein Typfehler gefunden werden. Dies könnte einen Abbruch des Programms zur Folge haben, der aber gerade zu jenem Zeitpunkt unerwünscht sein könnte.

In Java  werden die Typen von Ausdrücken hingegen statisch, also bei der Übersetzung, geprüft. Der Compiler prüft alle  Teile des von ihm übersetzten Programms, auch solche, die normalerweise vielleicht gar nicht ausgeführt werden. Daher kann man nach einer Übersetzung sicher sein, daß bei der späteren Ausführung des Programms keine Ausdrücke mehr einen unerlaubten Typ haben. Diese Sicherheit wird auch als statische Typsicherheit  bezeichnet.

Die statische Typsicherheit von Java  ist eine wichtiger Grund dafür, daß Java  bei verschiedenen Unternehmen so beliebt ist. Sie gehen davon aus, daß dank der statischen Typsicherheit viele Fehler schon beim Übersetzen entdeckt werden, und nicht erst bei der Ausführung des Programms zu einem dann ungünstigen Zeitpunkt.

Andererseits sind Programmiersprachen ohne statische Typisierung manchmal leichter zu erlernen  oder zu verwenden. Außerdem erfolgt die Typprüfung in Java -Programmen nicht vollständig bei der Übersetzung, sondern manchmal doch auch erst bei der Ausführung, so daß die statische Typsicherheit von Java  nicht perfekt ist.

Übungsfragen

?   Übungsfrage

Welche der folgende Ausdrücke erfüllen die unten genannten Typanforderungen für einen Vorzeichenausdruck?

Ausdrücke
»-2«    Anton
»-2.0«  Berta
»-"2"«  Cäsar
Typanforderungen
Das Literal nach einem Vorzeichenoperator »-« muß einen passenden Zahlentyp  (einen numerischen  Typ), wie ›int‹ oder ›double‹ haben (es muß numerisch sein), ein Literal mit dem Typ ›java.lang.String‹ ist dort nicht erlaubt.

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 stefanram722520 stefan_ram:722520 Typanforderungen in Java Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd722520, slrprddef722520, 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/typanforderungen_java