Referenzparameter

brauni18

Mitglied
Hi Leute

also ich hab mir schon n haufn beiträge im Internet durchgelesen was Referenzparameter in Java angeht.
nur leider sind die meisten auf englisch und für die anderen ist mein Geist vll zu beschränkt....weil ich ziemlich bockig bin falls mir etwas sinnlos erscheint....und mir erscheint das sowas von sinnlos
und jetzt brauch ich jemand der mir sagt wie unglaublich cool Java Parameter behandelt und dass es doch irgendwie einen Weg gibt übergebene Parameter innerhalb einer Prozedur zu ändern
Ich glaub mein Problem ist dass ich vorher ziemlich gut in Delphi dabei war...wo das mit den Parametern, wie ich finde so einleuchtend gestaltet ist...


Hiiiilffeee^^
 

Der Müde Joe

Top Contributor
>d dass es doch irgendwie einen Weg gibt übergebene Parameter innerhalb einer Prozedur zu ändern

alle ausser primitive....

Java:
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;


public class NumberCounter {

	public static void main(String... _) {
		List<Integer> list = new ArrayList<Integer>();
		System.out.println(list.size());
		add(list);
		System.out.println(list.size());
	}

	static void add(Collection<Integer> collection) {
		collection.add(Integer.valueOf(1));
	}
}
 

brauni18

Mitglied
Schade das hätte ich als Aufbau gebraucht^^

Ich hab das irgendwie nich verstanden....nur dass man über Objekte Referenzen übergeben kann..diese können dann zwar nicht verändert werden, aber die Objekte auf die sie verweisen......heißt das ich muss mir ein Objekt bauen dass einen primitiven Typ immitieren kann um z.b. einen Integer übergeben und in der übergebenen Prozedur nachhaltig ändern zu können?
 

Der Müde Joe

Top Contributor
>diese können dann zwar nicht verändert werden

-> die Referenz !!

>aber die Objekte auf die sie verweisen

-> das Objekt auf welches die Referenz zeigt!!

Java:
public class NumberCounter {

	public static void main(String... _) {
		Test test = new Test();
		test.s = "Hallo ";
		test.print();
		add(test);
		test.print();
	}

	static void add(Test test) {
		// obekt kann man biegen
		test.s = " welt";
		// referenz net
		test = new Test();
		test.s = "blub";
	}

	static class Test {
		String s;

		void print() {
			System.out.println(s);
		}
	}
}
 

brauni18

Mitglied
Okay ganz langsam kommts....
kannst du mir das in der mitte jetzt nochmal erklären?

static void add(Test test) {
// obekt kann man biegen
test.s = " welt";
// referenz net
test = new Test();
test.s = "blub";

also ist die übergebene Variable das Objekt?...und das kann ich verändern?

und was genau ist die Referenz?
 

Ähnliche Java Themen

Neue Themen


Oben