Mám problém. Vše mám bez sintaktických chyb a program se bez problémů přeloží. Ale při požádání o vytvoření objektu v rozhraní BlueJ mi vyskočí StackOverflowError a ve zdrojovém kódu se označí řádek kde vytvářím objekt třídy druhé.
Nevíte někdočím by to mohlo být??
Fórum › Java
Problém se StackOverflowError
public mince()
{ aut = new automat(); // tady to vyhazuje tu chybu
cenaj = aut.cenaJizdenek();
if (cenaj == 0)
System.out.println( "neni vybrana jizdenka");
}
jinak aby si se nedivil co to jako ma bejt. tak je to takova simulace automatu na jizdenky-prace do skoly
tady to je cely
Jak už jsem napsal v minulém threadu, který si vytvořil, použij na to statické funkce. Problém je následující:
public mince() {
aut = new automat();
cenaj = aut.cenaJizdenek();
if (cenaj == 0)
System.out.println( "neni vybrana jizdenka");
}
public automat()
{
hodnota = new mince();
}
Všechno se Ti zacyklí při průchodu konstruktorem první třídy, který pomocí "new" zavolá konstruktor druhé třídy. Ten ovšem při konstrukci opět zavolá konstruktor první třídy a tímhle způsobem si úplně krásně zahltíš paměť, protože dokola vytváří instance obou objektů. Proto ta chyba s přetečením zásobníku.
supr diky moc. Mas to u me i kdyz nevim jak bych ti to moh vratit
a zadnej jinej thread sem nevytvarel.
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 6 hostů
Podobná vlákna
StackOverflowError — založil deli
Problem s < a > — založil 7raul
Problem — založil Ghosta
Problem s C++ — založil ower
Moderátoři diskuze