# Objekte tauschen



## Xpisto (6. Feb 2011)

Hallo Ihr lieben, ich bereite mich auf die anstehende Klausur vor und mache gerade alte Klausuraufgaben wofür es leider keine Musterlösungen gibt.

Ich habe folgendes Problem, in der Aufgabenstellung steht, das zwei Personen ihr handy tauschen, das kriege ich nicht vernünftig hin. 

Das Tauschen bei z.b. einfachen variablen sieht ja so aus wenn ich mich nicht irre:

[Java]

int a = 1;
int b = 2;

int tmp= b;
b= a;
a= tmp

[/Java]

Nun das ganze mit Objekten, hmm... Also hier die Aufgabenstellung, würde mich auch freuen wenn Ihr einen Blick über das ganze Programm werfen könnten, aber vorher die Aufgabe:







Das ist mein Code:


```
public class Handy {
	
	private String typ;
	private String nr;
	
	Handy(String typ, String nr)
	{
		this.typ = typ;
		this.nr= nr;
	
	}
	
	public void anzeigen()
	{
		System.out.println("Das Handy: " + this.typ + " hat die Nummer: " + this.nr);
	}
	
	public String getHandyNr()
	{
		return this.nr;
	}

}


_________________________________


public class Person {
	
	private String name;
	private Handy dasHandy;
	
	Person(String name, Handy dasHandy)
	{
		this.name = name;
		setHandy(dasHandy);
	}
	
	public void zeigeTelefonNummer()
	{
		
		System.out.println(dasHandy.getHandyNr());
	}
	
	
	public void tauscheHandys(Person p)
	{
		Handy tmp = p.getHandy(p);
		p.setHandy(tmp);
		
	}
	
	public void setHandy(Handy dasHandy)
	{
		this.dasHandy = dasHandy;
	}
	
	public Handy getHandy(Person p)
	{
		return this.dasHandy;
	}
	
	public String getName()
	{
		return this.name;
	}
	
	public void setName(String name)
	{
		this.name = name;
	}

}


_________________________________


public class test {
	
	public static void main(String args[])
	{
		Handy h1 = new Handy("HTC Desire", "0152111111");
		Handy h2 = new Handy("Iphone 3G","015222222");
		Person p1 = new Person("Christos",h1);
		Person p2 = new Person ("Dennis", h2);
		
		p1.zeigeTelefonNummer();
		p2.zeigeTelefonNummer();
		
		h1.anzeigen();
		
		
		p1.tauscheHandys(p2);
		
		p1.zeigeTelefonNummer();
		p2.zeigeTelefonNummer();
		
		
	}

}
```

Würde mich über antworten freuen.


----------



## ARadauer (6. Feb 2011)

public Handy getHandy(Person p)
die Person musst du da nicht mitgeben... benötigst du auch nicht..


```
int tmp= b;
b= a;
a= tmp
```
ja stimmt, sind 3 schritte..


deine tausch methode...


```
public void tauscheHandys(Person p)
    {
        Handy tmp = p.getHandy(p);
        p.setHandy(tmp);
        
    }
```
mhn naja das sind 2 schritte

eher so ungefähr.. nicht getestet..

```
public void tauscheHandys(Person p)
    {
        Handy tmp = this.getHandy(); //meines merke ich mir temporär
        this.setHandy(p.getHandy()); //ich gebe mir seins
        p.setHandy(tmp); //und gebe ihm meines..
        
    }
```


----------



## Xpisto (6. Feb 2011)

ahh das klingt sehr sehr einleuchtend  super dankeschön ich teste es gleich 
Sieht der restliche code soweit inordnung aus?  Danke nochmal!


----------

