Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Vesporigo
    aktív tag

    Amikor deklarálsz egy metódust, mindig meg kell adni a visszatérési értékének típusát vagy a voidot.

    Vegyünk két metódust:
    void m1() {
    }

    String m2() {
    return "visszatérési érték";
    }

    m1 void, ami azt jelenti, hogy nincs visszatérési értéke, azaz a metódus hívás nem használható olyan kontextusban, ahol egy értéket várunk.

    pl.
    String x = m1(); //hibás, mert m1 nem tér vissza értékkel.
    System.out.println(m1()); //hibás, mert m1 nem tér vissza értékkel.

    x = m2(); // ok, x értéke "visszatérési érték" lesz

    Ugyanígy m1 metódus törzsében nem adhatsz meg pl. return "xyxy"; utasítást, mert nem térhetünk vissza értékkel, ellenben megadhatunk return; utasítást, amivel jelezzük, hogy adott ponton térjen vissza a metódus (visszatérési érték nélkül).
    pl.
    void m1() {
    return "xyxy"; //hiba
    return; //ok, de nem kötelező, itt felesleges
    }

    Többször nekifutottam annak, amit írtál, plusz még utánaolvastam pár helyen és végre értem. A példákat - amiket felhoztál - nagyon köszönöm, így már sokkal egyszerűbb volt megértenem!
    Még1x nagyon köszi! :R

    (#9703) Aethelstone: Neked is köszönöm a segítséget! Én is így gondolom.

    Apropó, hogyhogy nem készült még nyitó hsz? Pár gondolatot, könyvet, ajánlást bele lehetne tenni. Persze eddig a keresővel nagyjából mindent megtaláltam, de szerintem érdemes lenne.

  • Aethelstone
    addikt

    Amikor deklarálsz egy metódust, mindig meg kell adni a visszatérési értékének típusát vagy a voidot.

    Vegyünk két metódust:
    void m1() {
    }

    String m2() {
    return "visszatérési érték";
    }

    m1 void, ami azt jelenti, hogy nincs visszatérési értéke, azaz a metódus hívás nem használható olyan kontextusban, ahol egy értéket várunk.

    pl.
    String x = m1(); //hibás, mert m1 nem tér vissza értékkel.
    System.out.println(m1()); //hibás, mert m1 nem tér vissza értékkel.

    x = m2(); // ok, x értéke "visszatérési érték" lesz

    Ugyanígy m1 metódus törzsében nem adhatsz meg pl. return "xyxy"; utasítást, mert nem térhetünk vissza értékkel, ellenben megadhatunk return; utasítást, amivel jelezzük, hogy adott ponton térjen vissza a metódus (visszatérési érték nélkül).
    pl.
    void m1() {
    return "xyxy"; //hiba
    return; //ok, de nem kötelező, itt felesleges
    }

    Sőt szerintem a return; nem csak felesleges, hanem kifejezetten bad practice. Főleg ha több is szerepel benne az adott metódusban. Mondjuk több, normális return is szerintem erős antipattern.

Új hozzászólás Aktív témák