Dobry den,
chtel bych se zeptat jestli nekdo nevite jak udelat aby mi v Jave vratila metoda dve a vice navratovych hodnot.
Predem diky za odpoved
Java metody
- Pulec1337
- Nováček

- Registrován: 15. čer 2006
- Bydliště: Louny
- Kontaktovat uživatele:
Java metody
Cogito, ergo sum.
- €agle
- Středně pokročilý

- Registrován: 13. lis 2003
- Bydliště: Vlastní 3D svět :)
- Kontaktovat uživatele:
- Pulec1337
- Nováček

- Registrován: 15. čer 2006
- Bydliště: Louny
- Kontaktovat uživatele:
- €agle
- Středně pokročilý

- Registrován: 13. lis 2003
- Bydliště: Vlastní 3D svět :)
- Kontaktovat uživatele:
Ja nemam Javu moc rad
Ale rekneme, ze budes mit v tride metodu a chces z ni vratit 3x Integer, 1x Double a 1x String. Nejprve si deklarujes tridu, ktera bude obsahovat pozadovane navratove hodnoty. Je jedno, jestli ji deklarujes uvnitr puvodni tridy, nebo mimo, ale musi byt pristupna v dane metode a v miste, kde metodu volas (takze pozor na public/private/static...). Metodu deklarujes tak, aby jeji navratovy typ byla predtim vytvorena navratova trida. Uvnitr metody pak vytvoris novou instanci navratove tridy a postupne ji prirazujes pozadovane hodnoty. Na konci uz jen vyslednou instanci pomoci return vratis jako vysledek dane metody. Pri volani metody pak musis pocitat, ze navratova hodnota je dana trida a podle toho s ni pracovat... Snad ti tenhle (narychlo splacnuty) priklad nejak pomuze pochopit.
Main.java
NewClass.java
Main.java
Kód: Vybrat vše
public class Main
{
public static void main(String[] args)
{
//vytvori instanci puvodni tridy
NewClass MyClass = new NewClass();
//deklarace promenne typu NewClass.ReturnClass, ktera bude obsahovat vysledne hodnoty
NewClass.ReturnClass retVal;
//zavola MyClass.myMethod a vyslednou tridu ulozi do retVal
retVal = MyClass.myMethod(10, 5, "Test");
//vypise vysledek, k hodnotam v retVal se pristupuje jako k bezne tride
System.out.println("Hodnota a: " + retVal.a + " b: " + retVal.b + " c: " + retVal.c + " d: " + retVal.d + " s: " + retVal.s);
}
}Kód: Vybrat vše
public class NewClass
{
//trida pouzita pro navrat vice hodnot
public class ReturnClass
{
//deklarace pozadovanych navratovych promennych
int a, b, c;
double d;
String s;
}
//metoda myMethod, deklarovana jako ReturnClass
public ReturnClass myMethod(int x, int y, String text)
{
//vytvori instanci tridy ReturnClass, do ktere se budou ukladat navratove hodnoty
ReturnClass tmp = new ReturnClass();
//priradi pozadovane navratove hodnoty
tmp.a = x;
tmp.b = y;
tmp.c = x + y;
tmp.d = x / y;
tmp.s = text;
//vrati pozadovane hodnoty ulozene v instanci tridy ReturnClass
return tmp;
}
}Eagle3D Engine under developement
Hledáme do firmy schopného ASP/VB.NET/C# programátora, více po SZ
Hledáme do firmy schopného ASP/VB.NET/C# programátora, více po SZ
- Pulec1337
- Nováček

- Registrován: 15. čer 2006
- Bydliště: Louny
- Kontaktovat uživatele: