Typanforderungen einer Namensdeklaration in Java (Typanforderungen einer Namensdeklaration in Java), Information, Seite 724196
https://www.purl.org/stefan_ram/pub/typanforderungen_deklaration_java (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Java-Kurs

Typanforderungen einer Namensdeklaration in Java 

Wiederholung von Regeln in Zusammenhang mit Typen

String-Regel Ein Zeichenfolgenliteral  hat den Typ »java.lang.String«.

Das Substitutionsprinzip für Initialisierungsausdrücke

Substitutionsprinzip für Initialisierungsausdrücke Der Typ der zu initialisierenden Variablen muß ein Oberttyp  des Typs des Initialisierungsausdrucks sein.

Das folgende Programm erfüllt beispielsweise das Substitutionsprinzip für Initialisierungsausdrücke.

Der Name »o« hat den Typ »java.lang.Object«. Der Namen »java.lang.System.out« hat den Typ »java.io.PrintStream«. Der Typ »java.lang.Object« ist  ein Obertyp des Typs »java.io.PrintStream«.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ final java.lang.Object o = java.lang.System.out; }}
Protokoll
(keine Ausgabe)

Das folgende Programm zeigt weitere Beispiele erlaubter Typen in einer Variablendeklaration.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ final java.io.PrintStream out = java.lang.System.out;
{ final int a = 2; out.println( a ); }
{ final double a = 2; out.println( a ); }
{ final java.lang.String s = "abc"; out.println( s ); }
{ final java.lang.CharSequence s = "def"; out.println( s ); }
{ final java.lang.Object s = "ghi"; out.println( s ); } }}
Protokoll
2
2.0
abc
def
ghi

Faustregel für Variablentypen

Faustregel für Variablentypen Der Typ einer Variablen sollte im Zweifelsfall der Typ des Initialisierungsausdrucks sein.

Zur Umsetzung dieser Faustregel ist natürlich »var« hilfreich.

Beispielsweise hat der Name »o« im folgenden Programm den Typ »java.io.PrintStream«, und der Namen »java.lang.System.out« hat denselben  Typ.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ final var o = java.lang.System.out; }}
Protokoll
(keine Ausgabe)

Hinweis für den Dozenten  ► N: Introduce Name

Übungsfragen

?   Übungsfrage

Ist die folgende Deklaration erlaubt?

Quelltext
{ final java.lang.Object s = "abcdefg"; }

?   Übungsfrage

Ist die folgende Deklaration erlaubt?

Quelltext
{ final java.lang.String s = "abcdefg"; }

?   Übungsfrage

Ist die folgende Deklaration erlaubt?

Quelltext
{ final java.lang.CharSequence s = "abcdefg"; }

?   Übungsfrage

Ist die folgende Deklaration erlaubt?

Quelltext
{ final java.io.PrintStream s = "abcdefg"; }

?   Übungsfrage

Was kann in den folgenden Block an der Stelle des Striches »__________« eingesetzt werden?

Quelltext
{ final __________ s = "abcdefg"; }

?   Übungsfrage

Was kann in den folgenden Block an der Stelle des Striches »__________« eingesetzt werden?

Quelltext
{ final __________ s = java.lang.System.out; }

Übungsaufgaben

/   Versionsanalyse

(Diese Aufgabe setzt ein JDK ab dem JDK 9  voraus)

Schreiben Sie ein Programm, das die folgenden Dinge hintereinander erledigt.

/   Übungsaufgabe

Ersetzen Sie den Ausdruck »java.io.PrintStream« durch den Namen einer Variablen und deklarieren Sie dann die Variable am Anfang des Blocks mit dem Ausdruck »java.io.PrintStream« als Initialisierungsausdruck.

Verwenden Sie dabei den Typ des Initialisierungsausdrucks als Typ der Variablen.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println( java.lang.System.out ); }}

/   Übungsaufgabe

Ersetzen Sie den Ausdruck »java.io.PrintStream« durch den Namen einer Variablen und deklarieren Sie dann die Variable am Anfang des Blocks mit dem Ausdruck »java.io.PrintStream« als Initialisierungsausdruck.

Verwenden Sie dabei als Typ der Variablen einen Typ, der möglichst weit oben in der Typhierarchie ist.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println( java.lang.System.out ); }}

 

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 stefanram724196 stefan_ram:724196 Typanforderungen einer Namensdeklaration in Java Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd724196, slrprddef724196, 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_deklaration_java