![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Benutzer
Registriert seit: 19.03.2005
Beiträge: 35
|
Hallo zusammen,
ich versuche gerade zu verstehen wie in Java Blöcke gebildet werden. Hier ein ganz triviales Beispiel: Code:
package test1;
public class Test1 {
public static void main(String[] args) {
short s1 = 1, s2 = 2, s3;
s3 = (short) (s1 + s2);
System.out.println(s3);
}
}
Viele Grüße pixel |
|
|
|
|
|
Nach oben #2 |
|
Erfahrener Benutzer
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.619
|
Hi,
also Blöcke sind ja durch geschweifte Klammern gekennzeichnete Codepassagen, z.B. Schleifen, Abfragen, ... Beispiel: PHP-Code:
Ergänzender Link: --> Java ist auch eine Insel, 2.3.8 Lokale Variablen, Blöcke und Sichtbarkeit Grüße Ben. |
|
|
|
|
|
Nach oben #3 |
|
Benutzer
Registriert seit: 19.03.2005
Beiträge: 35
|
Danke für deine Gedult. Weil du grad "Java ist auch eine Insel" ansprichst. Das lese ich gerade und daraus resultierte die Frage. Das Problem das ich habe ist das dort als Beispiel steht:
Code:
void foo()
{
int i;
{
int j; // j gilt nur in dem Block
j = 1;
}
// j = 2; // Funktioniert auskommentiert nicht
}
void bar()
{
int i, k; // i hat mit dem oberen i nichts zu tun
{
// int k; // Das würde nicht gehen!
}
}
Im unteren Block wird versucht (durch Kommentar allerdings verhindert) die Variable k zwei mal zu deklarieren und dies ist nicht zulässig. Ich hoffe mal dass ich das richtig so verstanden habe. Nun versuche ich die Beispiele immer in ein vorhandes Beispiel zu intergrieren und wenn ich nun auf mein Beispiel: Code:
package test1;
public class Test1 {
public static void main(String[] args) {
short s1 = 1, s2 = 2, s3;
s3 = (short) (s1 + s2);
System.out.println(s3);
}
}
eines meiner Probleme dürfte auch sein das in keinem der Bücher bisher erklärt wurde was Code:
public static void main(String[] args) Code:
package test1;
public class Test1 {
public static void main(String[] args) {
short s1 = 1, s2 = 2, s3;
s3 = (short) (s1 + s2);
System.out.println(s3);
void foo() {
int i = 200;
System.out.println(i);
}
}
}
Viele Grüße pixel |
|
|
|
|
|
Nach oben #4 |
|
Benutzer
Registriert seit: 19.03.2005
Beiträge: 35
|
ok, bin dahinter gekommen in
Code:
package test1;
public class Test1 {
public static void main(String[] args) {
short s1 = 1, s2 = 2, s3;
s3 = (short) (s1 + s2);
System.out.println(s3);
}
}
Code:
package test1;
public class Test1 {
public static void main(String[] args) {
{
short s1 = 1, s2 = 2, s3;
s3 = (short) (s1 + s2);
System.out.println("Ergebniss 1 = : " + s3);
}
{
short s1 = 2, s2 = 3, s3;
s3 = (short) (s1 + s2);
System.out.println("Ergebniss 2 = : " + s3);
}
}
}
|
|
|
|
|
|
Nach oben #5 | |
|
Erfahrener Benutzer
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.619
|
Hallo,
Du denkst zu sehr in Blöcken Also zunächst einmal hierzu: Zitat:
Das läuft irgendwie intern ab .. wie genau: keine Ahnung. Würde mich aber auch mal interessieren. Diese Frage wird nun in einem separaten Thread besprochen Jedenfalls erwartet die Methode einen Übergabeparameter. Ein String-Array mit Namen "args". Anstatt "args" kannst Du da auch "Hugo" reinschreiben, da es sich da nur um einen Variablennamen handelt. Wenn Du Dein Programm z.B. per Kommandozeile startest kannst Du Parameter mitgeben, welche sich dann im Array "args" befinden. So. Jetzt mal zur Sichtbarkeit von Variablen. Ich mache mal ein Beispiel: PHP-Code:
Code:
Exception in thread "main" java.lang.Error: Unresolved compilation problem: dezimal cannot be resolved at Demo.main(Demo.java:48) Ich hoffe mal, dass ich die Dunkelheit etwas erhellen konnte Es ist übrigens absolut sinnlos eine Variable zweimal deklarieren zu wollen. Wenn Du den Inhalt ändern willst, dann überschreibst Du ihn einfach durch eine Zuweisung mit "=" Grüße Ben. |
|
|
|
|
|
|
Nach oben #6 |
|
Benutzer
Registriert seit: 19.03.2005
Beiträge: 35
|
ok, die Sichtbarkeit in Blöcken habe ich verstanden. Das Beispiel die gleiche Variable in zwei Blöcken mit unterschiedlichen Inhalten zu benutzen diente nur für das Beispiel. Ich konnte somit sehen das die Sicht wirklich lokal ist und ich die unterschiedlichen Werte zurück bekam.
Nochmal zurück zur Zeile Code:
public static void main(String[] args) Code:
package test1;
public class Test1 {
/**
* @param args
*/
public static void main(String[] args) {
short s1 = 2, s2 = 3, s3;
s3 = (short) (s1 + s2);
System.out.println("Ergebniss 1 = : " + s3);
}
public static void main2(String[] args) {
short s1 = 2, s2 = 3, s3;
s3 = (short) (s1 + s2);
System.out.println("Ergebniss 2 = : " + s3);
}
}
Ergebniss 1 = : 5 Was ja das Ergebnis vom oberen Teil (Methode?) ist. Ich hoffe es ist halbwegs verständlich worauf die Frage abziehlt. Viele Grüße pixel |
|
|
|
|
|
Nach oben #7 |
|
Erfahrener Benutzer
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.619
|
das ist jetzt eigentlich eine ganz andere Frage, die schon etwas über Variablensichtbarkeit hinausgeht.
Hier mal ein Beispiel: PHP-Code:
|
|
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|