Tworzenie obiektu własnej klasy i błąd StackOverflowError

0

Witam,
mam problem z utworzeniem obiektu utworzonej przeze mnie klasy. Mam 2 klasy Walec i Kwadrat. Musze utworzyc metode zwracajaca obiekt
walca umieszczonego w bryle szescianu zbudowanego na podstawie tego kwadratu. Wyglada to nastepujaco:

class Walec
{
	int wysokosc;
	double promien;
	Walec(int h, float r)
	{
		promien = new Double(r);
		wysokosc = new Integer(h);
	}
//...
}
class Kwadrat{
	Integer bok;
	Kwadrat(int i)
	{
		bok = new Integer(i);		
	}
	void show()
	{
		int polekw = bok.intValue()*bok.intValue();
		int polesz = polekw*bok.intValue();
		System.out.printf("Pole kwadratu : \t%d\n",+ polekw );
		System.out.printf("Pole szescianu :\t%d",+ polesz);	
	}
	Walec przygotujWalec()
	{
		przygotujWalec().promien=bok.intValue()/2;  //!!!!!!!!!!!!
		this.przygotujWalec().wysokosc=bok.intValue();
		return this.przygotujWalec();
	}
}

i tutaj wywala mi blad w lini oznaczonej ! Co z tym moge zrobic.

1

No a co ta linia niby oznacza? o_O To jest jakiś WTF. Co ty tam chciałes zrobić? Bo póki co piszesz definicje funkcji przygotujWalec() w której wywołujesz tą funkcję. A w tym wywołaniu znów ją wywołujesz i tak dalej aż sie nie skończy stos. Cała ta twoja funkcja nie ma najmniejszego sensu. Może chciałeś coś takiego:

    Walec przygotujWalec()
    {
        Walec walec = new Walec(bok.intValue(), bok.intValue()/2.0);
        return walec;
    }

?

0
Walec przygotujWalec()
	{
		Walec wal = new Walec(bok.intValue(), bok.intValue()/2);
		return wal;
	}

Nie wiem o co mi chodzilo..
Pisze zamiast pomyslec, a pozniej wstyd.. Sry grypa

1 użytkowników online, w tym zalogowanych: 0, gości: 1