Android Android Programmieren-Objekt-Konstruktor in Klammern

Vtrae

Neues Mitglied
Hallo,

Ich bin sehr neu im Bereich Programmieren und da ich mich sehr für Android interessiere, habe als Vrostufe Java mit dem Tutorial von gailer-net.de gelernt und jetzt begonnen mich mit Android Studio zu beschäftigen. Im tutorial stoße ich jetzt auch folgenden Code-Schnipsel
Code:
public void sendMessage(View view) {
  Intent intent = new Intent(this, DisplayMessageActivity.class);
  EditText editText = (EditText) findViewById(R.id.edit_message);
}
in der dritten Zeile wird meiner meinung nach ein Objekt der Klasse "EditText" erstellt und die Referenzvariable "editText" darauf eingestellt. nur steht hinter dem gleich als Konstruktor nicht wie für mich gewohnt "new EditText" sondern
"(editText)". Kann mir jemand erklären was das macht, und wo der unterschied zu "new EditText" liegt?
 
Zuletzt bearbeitet:
Du erzeugst die Klasse nicht selbst, sondern sie wird dir vom Framework geliefert - und das hier dynamisch, daher der Cast. Wird in Java recht oft gemacht, insbesondere wenn du irgendwelche Frameworks im Einsatz hast.
 
Das mit der Klammer (dem Casten) kann man gut hieran verdeutlichen:

Java:
int i = 4;
double d = (double) i;

i ist eine Variable vom Typ int, dessen Wert du aber in einer Variable vom Typ double speichern möchtest. In diesem Fall ist Java so klug, und macht das automatisch, also
Java:
double d = i;
würde reichen, aber falls man mal Variablen von Typen hat, bei denen Java so nicht weiß, dass man die umformen kann, dann muss man casten.

Also versucht Java, die Variable in den geforderten Typ umzuformen. 😉
Hier eine ganz kleine Info dazu.

Gruß BK
 

Zurück
Oben