Programmanalyse (Klausuraufgabe)

baker333

Bekanntes Mitglied
Servus und guten Abend,
im Rahmen meiner Klausurvorbereitung soll ich zeigen, für welche Zeilen der Klasse Analyse der Übersetzer Fehlermeldungen erzeugen würden. Ich habe diesbezüglich noch die ein oder andere Frage und würde mich freuen, wenn man mich auf Fehler hinweist, die ich übersehen habe. Ich habe meine "Fehlervermutungen" und Fragen als Kommentare in den Code gesetzt.

Herzlichen Dank!

Java:
public class Z {
    public int a;
    public String b;
   
    public Z(int x) {
        a = x +1;
        b = "Hallo" + x;
    }
   
    private Z() {
    }
   
    private String y() {
        return b + a;
    }
   
    public int c() {
        return a * 2;
    }
}

public class Analyse {
    public static int z;
    private int a = 8;

    static void k(String z) {
        Z t = new Z(2);
        Z w = new Z(t.a + 3); // Wie ist denn t.a definiert? Ist das die Variable a aus Klasse Z? 
        int x = z; //ist sicherlich nicht möglich, weil String to Int 
        w.a = t.b + w.a; // hier werden doch int und Strings addiert? 
        w.b =t.b + t.a;
        t.b = w.y() + x; //Y ist privat und nicht sichtbar
        t = new Z(); // der Konstruktor ist auch in der Klasse Analyse nicht sichtbar
        a = x;
    }

}
 

httpdigest

Top Contributor
Wenn immer du solche Aufgaben hast, copy/paste doch den Code in eine IDE (z.B. Eclipse) und du bekommst instantly das Feedback, bzw. die entsprechenden Fehlermeldungen.
 

baker333

Bekanntes Mitglied
Stimmt, das mache ich, danke!

Dann bleibt mir nur doch die Frage zum Konstruktor. Wie ist denn t.a definiert? Übergebe ich damit die Variable a aus der Klasse Z?
 

httpdigest

Top Contributor
Also....
Java:
Z t = new Z(2);
Hier wird doch die Variable `t` mit einer neuen Instanz von `Z` initialisiert. Bei der Erzeugung dieser Z-Instanz wird 2 als Konstruktorargument übergeben. Dieses Argument wird im Konstruktor von Z folgendermaßen verwendet:
Java:
public Z(int x) {
  a = x + 1;
  b = "Hallo" + x;
}
Das heißt, `a` wird auf 2 + 1, also 3, initialisiert.
Somit wird also `t.a` 3 sein.
 

Ähnliche Java Themen

Neue Themen


Oben