NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
petrdolan8693:26.5.2015 17:44

Ahoj všem ve svém zdrojovém kódu, na kterém teď pracuji v rámci seminární práce, jsem si napsal metodu pro naplnění matice náhodnými čísly od 5 do 10. Problém je v tom, že tuto metodu nemohu v hlavní třídě zavolat. Namísto toho mi NetBeans nabízí vytvoření metody znovu. Podotýkám, že nejsem jeden z lidí, který Vám tu napíše zadání práce, a bude prosit o vypracování. Jde spíše o to, že v některých věcech potřebuju postrčit správným směrem. Tenhle problém mám i ve škole, bylo mi řečeno, že mám správné, ale moc složité myšlení. Možná je to dáno i tím, že mám dětskou mozkovou obrnu, ale počítače jsou můj koníček, tak jsem se rozhodl bojovat. Díky za případnou pomoc.

 
Odpovědět
26.5.2015 17:44
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na petrdolan8693
Jan Vargovský:26.5.2015 17:54

Ty metody jsou vázané k instanci, takže musíš nejdřív vytvořit instanci na třídě Matice a pak to na ní zavolat. Ale ten návrh je takový divný, ale na to snad přijdeš, jestli ne tak se ozvi :)

Matice m = new Matice(...);
m.NaplnMatici(...);
 
Nahoru Odpovědět
26.5.2015 17:54
Avatar
Odpovídá na Jan Vargovský
petrdolan8693:26.5.2015 18:18

Napadá mě, zda by nebylo lepší vytvořit samstatnou metodu pro vytvoření matice, které pak předám ten načtený rozměr od uživatele :)

 
Nahoru Odpovědět
26.5.2015 18:18
Avatar
MrPabloz
Člen
Avatar
Odpovídá na petrdolan8693
MrPabloz:27.5.2015 10:00

Tak samozřejmě můžeš, např si to udělat v konstruktoru samotné třídy matice, zadáš dva vstupní parametry x, y, a rovnou v konstroktoru si zavoláš funkci nalnMatici(). Akorát to budešm uset trochu přkopat, to je vše :)
Tudíž to bude pak něco ve stylu:

public Matice(int x, int y)
{
    matice = new int[x][y];
    naplnMatici();
}
public void naplnMatici()
{
//a zde naplníš... nezapomen, že v javě si velikost pole zjistíš pomocí       matice.length popř matice[].length. takže to stačí zadat jen v konstruktoru, poté si to taháš pomocí pole.length :)
}

Druhá možnost je udělat to ve statické metodě která ti bude vracet instanci objektu Matice.

public static Matice createMatice(int x, int y)
{
    //vytvoření instance
    //naplnění matice, volání viz. víše od Jan Vargovský
    //return instance matice
}
Nahoru Odpovědět
27.5.2015 10:00
Harmonie těla a duše, to je to, oč se snažím! :)
Avatar
petrdolan8693:30.5.2015 17:10

Děkuji všem za rady :)

 
Nahoru Odpovědět
30.5.2015 17:10
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.