Sichbarkeit/ verdeckung

Status
Nicht offen für weitere Antworten.

Anfänger0

Mitglied
Hallo ,
für dieses folgendes Programm, behaupte ich dass ,alle variable sichtbar sind, da wir der Konstruktor Public haben. Ist meine Behauptung falsch? Wenn ja kann jemand mir sagen an welchen nummerierten Zeilen , welche Variablen jeweils sichtbar sind. An welchen Stellen fi ndet Verdeckung statt?

Danke

Hier ist das Programm

Code:
public class Aufgabe31 {

   static int a, b, c, d;

   public static void q(int b) {
      a = b * 2 + 3; /* 1 */
      c = c * b - 1; /* 2 */
   }

   public static int p(int a, int c) {
      int d = 6; /* 3 */

      a += c; /* 4 */
      b = a + c + d; /* 5 */

      q(a); /* 6 */

      return c + d; /* 7 */
   }

   public static void main(String[] args) {
      a = 1;
      b = 2;
      c = 3;
      d = 4;

      d = p(c, a) + 4; /* 8 */

     System.out.println(a);
     System.out.println(b);
     System.out.println(c);
     System.out.println(d);
   }
}


Dieser Beitrag wurde von L-ectron-X am 01.02.2009 um 17:44 Uhr editiert.
Code-Tags gesetzt
 
G

Gast

Gast
Verdeckung findet überall da statt, wo du eine lokale Variable mit dem selben Namen wie eine globale variable definierst.
Dann verdeckt die lokale variable die globale variable.
 

Developer_X

Top Contributor
1.BItte die Code tags verwenden:
d.h. in der liste beim erstellen von Threads einmal den COde button drücken, code einfügen und dann nochmal den Code button drücken
2.Bitte keine Zahlen an den Code seitlich schreiben
 

Anfänger0

Mitglied
vielen Danke an alle.
So habe ich gemacht:

a,b,c,d sind globale Variable ,die überall im Bereich der Klasse sichbar sind.

/* 1 */ a und b sichbar Hier findet Verdeckung statt, da a=2.2+3 = 7 nicht gleich a= 1
/* 2 */ b und c sichbar Hier findet Verdeckung statt, c=5 nicht gleich c= 3
* 3 */ b sichbar Hier findet Verdeckung statt d=6 nicht gleich d= 4
* 4 */ a und c sichbar Hier findet Verdeckung statt a= 4 nicht gleich a= 1
* 5 */ a,b,c,d sichbar Hier findet Verdeckung statt b= 8 nicht gleich b= 4
* 6*/ a sichbar
* 7 */ c, d
* 8 */ a b, c, d, args

was bedeutet p( c,a) ?



public class {

static int a, b, c, d;

public static void q(int b) {
a = b * 2 + 3; /* 1 */
c = c * b - 1; /* 2 */
}

public static int p(int a, int c) {
int d = 6; /* 3 */

a += c; /* 4 */
b = a + c + d; /* 5 */

q(a); /* 6 */

return c + d; /* 7 */
}

public static void main(String[] args) {
a = 1;
b = 2;
c = 3;
d = 4;

d = p(c, a) + 4; /* 8 */

System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
}
 

Anfänger0

Mitglied
Gast hat gesagt.:
Verdeckung findet überall da statt, wo du eine lokale Variable mit dem selben Namen wie eine globale variable definierst.
Dann verdeckt die lokale variable die globale variable.
vielen Danke an alle.
So habe ich gemacht:

a,b,c,d sind globale Variable ,die überall im Bereich der Klasse sichbar sind.

/* 1 */ a und b sichbar Hier findet Verdeckung statt, da a=2.2+3 = 7 nicht gleich a= 1
/* 2 */ b und c sichbar Hier findet Verdeckung statt, c=5 nicht gleich c= 3
* 3 */ b sichbar Hier findet Verdeckung statt d=6 nicht gleich d= 4
* 4 */ a und c sichbar Hier findet Verdeckung statt a= 4 nicht gleich a= 1
* 5 */ a,b,c,d sichbar Hier findet Verdeckung statt b= 8 nicht gleich b= 4
* 6*/ a sichbar
* 7 */ c, d
* 8 */ a b, c, d, args

was bedeutet p( c,a) ?
 

Verjigorm

Top Contributor
der Aufruf deiner Funktion p() mit den Werten c und a
p ist übrigends genau in so Dingen ein saudämlicher Bezeichner ;)
man gibt den Dinger einen halbwegs "sinnvollen" Namen wie addiereZahlen(c,a) oder sonstwas
 

Leroy42

Top Contributor
Verjigorm hat gesagt.:
p ist übrigends genau in so Dingen ein saudämlicher Bezeichner ;)
man gibt den Dinger einen halbwegs "sinnvollen" Namen wie addiereZahlen(c,a) oder sonstwas

Dann mußt du das seinem Lehrer sagen! :cool:
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben