Java metody

Vývojová prostředí, aplikace, skripty, http://www... síťové programy, internet, sdílení...
Odpovědět
Pulec1337
Nováček
Nováček
Uživatelský avatar
Registrován: 15. čer 2006
Bydliště: Louny
Kontaktovat uživatele:

Java metody

Příspěvek od Pulec1337 »

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
Cogito, ergo sum.
€agle
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 13. lis 2003
Bydliště: Vlastní 3D svět :)
Kontaktovat uživatele:

Příspěvek od €agle »

Bud vracet pole, nebo vracet tridu, nebo pouzit pro navratove hodnoty parametry metody...
Eagle3D Engine under developement

Hledáme do firmy schopného ASP/VB.NET/C# programátora, více po SZ
Pulec1337
Nováček
Nováček
Uživatelský avatar
Registrován: 15. čer 2006
Bydliště: Louny
Kontaktovat uživatele:

Příspěvek od Pulec1337 »

Dekuji za odpoved.
Chci se zeptat na to jak by vypadalo ze by vracela tridu, dost dobre si to nedokazu predstavit predpokladam ze by to byl objekt ale co bude navratovy typ a jak ho specifikuju?
Cogito, ergo sum.
€agle
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 13. lis 2003
Bydliště: Vlastní 3D svět :)
Kontaktovat uživatele:

Příspěvek od €agle »

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

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);
    }
}
NewClass.java

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
Pulec1337
Nováček
Nováček
Uživatelský avatar
Registrován: 15. čer 2006
Bydliště: Louny
Kontaktovat uživatele:

Příspěvek od Pulec1337 »

Diky,
moc pekna ukazka. Mysilm ze jsem to pochopil, jeste si to sam vyzkousim ale myslim ze je to jasne.
Jeste jednou Diky.
Cogito, ergo sum.
Odpovědět

Zpět na „Programování a web“