Bedeutung von Methodensignaturen und Aufrufverhalten

kasi11

Neues Mitglied
Hallo,

für eine Klausur muss ich folgendes wissen:


"Die Bedeutung von Methodensignaturen und das sich daraus ergebende Aufrufverhalten. Beispiel:
public static int dazu(int a) { return a+1; }
public static double dazu(double z) { return z+2; }
Was wird aufgerufen bzw. ergibt dazu(1), dazu(1L), dazu(1F) und dazu(1.0) ?
Wem das nicht klar ist, der/dem kann ich nur empfehlen: Programm schreiben und ausprobieren."

Ich habe dann folgendes Programm geschrieben:

Java:
public class test {

public static int dazu(int a) { return a+1; };
public static double dazu(double z) { return z+2; } 

   public static void main (String [] nix)
   {

      System.out.println("1=="+dazu(1));
      System.out.println("1L=="+dazu(1L)); 
      System.out.println("1F=="+dazu(1F)); 
      System.out.println("1.0=="+dazu(1.0)); 

   } }

Nun ist meine Frage, was das denn nun für ein sich daraus ergebendes Aufrufverhalten ist. Und warum werden "1L" und "1F" überhaupt akzeptiert? Das ist ja weder int noch double.

Über eine Antwort wäre ich sehr dankbar :)
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
public static int dazu(int a) { return a+1; };

Statische Methode welche einen ihr übergebenen Wert um 1 addiert und zurückliefert.

public static double dazu(double z) { return z+2; }

Das gleiche in grün nur hier mit dem Datentyp double und es werden 2 hinzuaddiert.

System.out.println("1=="+dazu(1));
System.out.println("1L=="+dazu(1L));
System.out.println("1F=="+dazu(1F));
System.out.println("1.0=="+dazu(1.0));

Hier werden diese eingaben akzeptiert da ein double 64bit lang ist, (ein int nur 32bit) der Compiler weiß nun aber, das es sich um überladene Methoden handelt, also welche die identische Namen aber unterschiedliche Parameterlisten haben und das
du einen Datentyp übergibst der länger als 32bit ist , deshalb verwendet der Compiler also die Methode in die dein Datentyp, hier vom typ long und float jeweils passt,

demnach wird die Ausgabe auch durch Gleitpunkzahlen dargestellt.

Sprich es müsste dann zu folgender Ausgabe kommen :

Code:
1==2
1L==3.0
1F==3.0
1.0==3.0

Hier, vielleicht kannst du es hier dran besser nachvollziehen:

bit
byte = 8 bit
char = 16 bit
int = 32 bit
float = 32bit
long = 64bit
double = 64bit

einen Kleineren Datentyp kannst du immer einem größeren zuweisen, umgekehrt nur wenn du explizit einen Cast verwendest , dadurch weiß der Compiler das du weißt was du da tust :)

[EDIT]Dies erfolgt allerdings nicht Verlustfrei ![/EDIT]
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
laxla123 Bedeutung int random Java Basics - Anfänger-Themen 3
W Texteingabe - Bedeutung Fehlermeldung, Lösung? Java Basics - Anfänger-Themen 18
S Buchstaben Programmierung Bedeutung Java Basics - Anfänger-Themen 4
tobikoch String x= null Bedeutung Java Basics - Anfänger-Themen 9
Y Erste Schritte Bedeutung ? Java Basics - Anfänger-Themen 4
H .2 Bedeutung ? Java Basics - Anfänger-Themen 1
P Java Verketten von Stream - Bedeutung der Anweisungen? Java Basics - Anfänger-Themen 3
P java.lang.ClassCastException Bedeutung und Lösung Java Basics - Anfänger-Themen 3
U Interface Bedeutung "Code to an interface rather than to an implementation." Java Basics - Anfänger-Themen 4
V Bedeutung von xxx.nextline() Java Basics - Anfänger-Themen 3
B Operatoren Bedeutung des logischen Oders Java Basics - Anfänger-Themen 3
B Bedeutung von "Overhead" Java Basics - Anfänger-Themen 18
R Bedeutung,Zeichen Java Basics - Anfänger-Themen 7
V Erste Schritte Bedeutung von args Java Basics - Anfänger-Themen 10
J Bedeutung von math.random() math.round() Java Basics - Anfänger-Themen 7
G Schlüsselworte Bedeutung von abstract Java Basics - Anfänger-Themen 2
M Bedeutung von 0xFFFF Java Basics - Anfänger-Themen 4
C Bedeutung des "?" Java Basics - Anfänger-Themen 3
M Java codes bedeutung Java Basics - Anfänger-Themen 9
M "%" Bedeutung in Java ? (23 % 11=?) Java Basics - Anfänger-Themen 9
Bierhumpen import ? - bedeutung? Java Basics - Anfänger-Themen 5
K code bedeutung ">>" Java Basics - Anfänger-Themen 3
C Bedeutung von toString im Bezug auf Text Java Basics - Anfänger-Themen 4
R Bedeutung von Code Java Basics - Anfänger-Themen 4
A this. -> Bedeutung Java Basics - Anfänger-Themen 1
S Welche Bedeutung haben diese Wörter? Java Basics - Anfänger-Themen 2
R Bedeutung von \r Java Basics - Anfänger-Themen 4
N extends / implements / static, bedeutung ?? Java Basics - Anfänger-Themen 12
E bedeutung d. übergabewertes bei System.exit Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben