Methoden warum wird bei c und d, der Wert 3 ausgegeben ? (Methoden)

g_gex

Mitglied
Java:
public class Aufg4 {
	
	int n = 2;
	
	void f(int n) 
	{
		this.n = 3;
		n = 5;
	}
	void g() {
		int n;
		n = 7;
	}
	static void h(Aufg4 o) {
		o.n = 11;
	}
	public static void main(String[] args) {
	
		Aufg4 x = new Aufg4();
		
		System.out.println("a)" +x.n); // a)
		
		int n = 13;
		
		x.f(n);
		System.out.println("b)" + n); // b)
		
		System.out.println("c)" + x.n); // c)
		
		x.g();
		System.out.println("d)" + x.n); // d)
		
		h(x);
		System.out.println("e)" + x.n); // e)
		
		System.out.println("f)"+ n); // f)
		
	}
}

warum wird bei c und d, der Wert 3 ausgegeben ?
was bedeutet call by value und call by reference?
 
Java:
void f(int n)
    {
        this.n = 3;
        n = 5;
    }
Die Methode f hat eine lokale Variable n, dieser wird der Wert 5 zugewiesen. Der globalen Variable n wird der Wert 3 zugewiesen.
Daher kommt c = 3, wenn du vorher die Methode f aufrufst.

Java:
    void g() {
        int n;
        n = 7;
    }
Die Methode g hat nur die lokale Variable n, die mit 7 initialisiert wird. Dies hat keine Auswirkungen auf die globale Variable n.
Daher bleibt bei d) der Wert von n unverändert.
 
Ja eigentlich schon, aber durch
Code:
this.
kannst du explizit angeben, das die Instanzvariable (Achtung: der Ausdruck globale Variable ist falsch!!!) und nicht die lokale verwendet werden soll
 

Neue Themen


Zurück
Oben