Hallo Leute, pauke gerade auf meine Informatik Klausur!
Hab da noch ein Problem mit der Sichtbarkeit von Variablen:
Hier einmal die Probe Aufgabe:
Gegeben ist der Code aus den zwei Dateien A.java und C.java. Geben Sie an den
gekennzeichneten Stellen an, welche der Variablen (a1, a2, a3, a4, b1) sichtbar sind. (Ggf. sollen Sie entsprechende Instanzen der Objekte erzeugt werden, falls möglich.)
Hier der Code:
von A.java
und C.java
Hier meine gedachte Lösung:
an 1) sin sichtbar: a1, a2, a3, a4, b1
an 2) sin sichtbar: a1, a2, a3, b1
an 3) sin sichtbar: a1, a2, c1
an 4) sin sichtbar: c1, d1
Aber wenn ich z.B. an der Stelle 2) ein
einfüge, dann meldet mein Compiler:
A.java:20: cannot find symbol
symbol : variable a1
location: class one.B
System.out.println(a1 + ","+ a2+ ","+a3 + ","+a4 + ","+ b1);
^
A.java:20: cannot find symbol
symbol : variable a2
location: class one.B
System.out.println(a1 + ","+ a2+ ","+a3 + ","+a4 + ","+ b1);
^
A.java:20: cannot find symbol
symbol : variable a3
location: class one.B
System.out.println(a1 + ","+ a2+ ","+a3 + ","+a4 + ","+ b1);
^
A.java:20: cannot find symbol
symbol : variable a4
location: class one.B
System.out.println(a1 + ","+ a2+ ","+a3 + ","+a4 + ","+ b1);
^
4 errors
Kann mir da jemand ne gute Begründung liefern und ggf. meine Lösungen korrigieren?
Klasse A ist doch public und Variable a1 auch...
Danke für eure Hilfe, behrda
Hab da noch ein Problem mit der Sichtbarkeit von Variablen:
Hier einmal die Probe Aufgabe:
Gegeben ist der Code aus den zwei Dateien A.java und C.java. Geben Sie an den
gekennzeichneten Stellen an, welche der Variablen (a1, a2, a3, a4, b1) sichtbar sind. (Ggf. sollen Sie entsprechende Instanzen der Objekte erzeugt werden, falls möglich.)
Hier der Code:
von A.java
Code:
package one;
public class A {
public int a1;
protected int a2;
int a3;
private int a4;
void m() {
// 1) Sichtbar sind: ...
}
}
class B {
public int b1;
void m() {
// 2) Sichtbar sind: ...
}
}
und C.java
Code:
package two;
import one.*;
public class C extends A {
public int c1;
void m() {
// 3) Sichtbar sind: ...
}
}
class D {
int d1;
void m() {
// 4) Sichtbar sind: ...
}
}
Hier meine gedachte Lösung:
an 1) sin sichtbar: a1, a2, a3, a4, b1
an 2) sin sichtbar: a1, a2, a3, b1
an 3) sin sichtbar: a1, a2, c1
an 4) sin sichtbar: c1, d1
Aber wenn ich z.B. an der Stelle 2) ein
Code:
System.out.println(a1 + ","+ a2+ ","+a3 + ","+a4 + ","+ b1);
A.java:20: cannot find symbol
symbol : variable a1
location: class one.B
System.out.println(a1 + ","+ a2+ ","+a3 + ","+a4 + ","+ b1);
^
A.java:20: cannot find symbol
symbol : variable a2
location: class one.B
System.out.println(a1 + ","+ a2+ ","+a3 + ","+a4 + ","+ b1);
^
A.java:20: cannot find symbol
symbol : variable a3
location: class one.B
System.out.println(a1 + ","+ a2+ ","+a3 + ","+a4 + ","+ b1);
^
A.java:20: cannot find symbol
symbol : variable a4
location: class one.B
System.out.println(a1 + ","+ a2+ ","+a3 + ","+a4 + ","+ b1);
^
4 errors
Kann mir da jemand ne gute Begründung liefern und ggf. meine Lösungen korrigieren?
Klasse A ist doch public und Variable a1 auch...
Danke für eure Hilfe, behrda