Der Typ eines Namens in Java (Der Typ eines Namens in Java), Information, Seite 724199
https://www.purl.org/stefan_ram/pub/namenstyp_java (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Java-Kurs

Der Typ eines Namens in Java 

Der Typ eines Namens in Java 

Statische Typfestlegungen Der Typ einer Variablen legt den Typ fest, den der Name der Variablen hat, wenn man ihn als Ausdruck  verwendet. Genauso legt der Rückgabetyp einer Methode den Typ eines Aufrufs jener Methode (als Ausdruck betrachtet) fest.

Der Typ eines Namens ist also ein Ausdrucktyp. (Ein Name kann also jeden  Typ als Typ haben, nicht nur eine Klasse.)

Die Auflösung überladener Verben erfolgt über den Typ des Arguments  (also des Argumentsausdrucks ).

Main.java

public final class Main
{

public static void show( final java.lang.String s )
{ java.lang.System.out.println( "class java.lang.String" ); }

public static void show( final java.lang.CharSequence cs )
{ java.lang.System.out.println( "class java.lang.CharSequence" ); }

public static void show( final java.lang.Object o )
{ java.lang.System.out.println( "class java.lang.Object" ); }

public static void main( final java.lang.String[] args )
{ final java.lang.String s = "abc"; show( s );
final java.lang.CharSequence cs = "abc"; show( cs );
final java.lang.Object o = "abc"; show( o ); }}

Protokoll
class java.lang.String
class java.lang.CharSequence
class java.lang.Object
Main.java

public final class Main
{

public static void show( final java.lang.Object o )
{ java.lang.System.out.println( "class java.lang.Object" ); }

public static void show( final java.lang.String s )
{ java.lang.System.out.println( "class java.lang.String" ); }

public static void show( final java.io.PrintStream ps )
{ java.lang.System.out.println( "class java.io.PrintStream" ); }

public static void main( final java.lang.String[] args )
{ java.lang.Object o;

o = "abc"; show( o );
o = java.lang.System.out; show( o ); }}

Protokoll
class java.lang.Object
class java.lang.Object
Main.java

public final class Main
{

public static void show( final java.lang.String s )
{ java.lang.System.out.println( "class java.lang.String" ); }

public static void show( final java.lang.CharSequence cs )
{ java.lang.System.out.println( "class java.lang.CharSequence" ); }

public static void show( final java.lang.Object o )
{ java.lang.System.out.println( "class java.lang.Object" ); }

public static java.lang.String s(){ return "abc"; }

public static java.lang.CharSequence cs(){ return "abc"; }

public static java.lang.Object o(){ return "abc"; }

public static void main( final java.lang.String[] args )
{ show( s() );
show( cs() );
show( o() ); }}

Protokoll
class java.lang.String
class java.lang.CharSequence
class java.lang.Object

Übungsfragen

?   Übungsfrage

Welche Ausgabe erzeugt das folgende Programm?

Main.java

public final class Main
{

public static void method( final java.lang.Object o )
{ java.lang.System.out.println( "java.lang.Object" ); }

public static void method( final java.io.OutputStream os )
{ java.lang.System.out.println( "java.io.OutputStream" ); }

public static void method( final java.io.FilterOutputStream os )
{ java.lang.System.out.println( "java.io.FilterOutputStream" ); }

public static void method( final java.io.PrintStream ps )
{ java.lang.System.out.println( "java.io.PrintStream" ); }

public static void main( final java.lang.String[] args )
{ final java.io.PrintStream printStream = java.lang.System.out;
final java.io.FilterOutputStream filterOutputStream = java.lang.System.out;
final java.io.OutputStream outputStream = java.lang.System.out;
final java.lang.Object object = java.lang.System.out;
method( object );
method( filterOutputStream ); }}

 

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 stefanram724199 stefan_ram:724199 Der Typ eines Namens in Java Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd724199, slrprddef724199, 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/namenstyp_java