Gyakorlati alapok II.

Összetett példa a metódus-túlterhelésre

 

Az előző, Ahol az elnevezésnek köze nincs a tartalomhoz: a metódus-túlterhelés című fejezet már megmutatta a metódus "túlterhelésének" nem oly bonyolult lehetőségét. Ebben a fejezetben egy fokkal bonyolultabb gyakorlati példát nézünk meg a helyzet vizsgálatára.

 

Adott egy egyszerű kiiras() nevű eljárás, amelyet azonban konzolkiírás végett sokféle típusú bemeneti adattal "terhelünk túl". Ezt a trükköt már előzőleg néhányszor megtettük, ám amit még nem, hogy bemeneti paraméterként egy működő objektumot küldünk be (kiiras(Object object) -> Igazi Para Péter: metódus, mint bemeneti paraméter). Ebben az esetben az objektum egy pontosan megfogalmazott függvény lesz egy adott művelet végrehajtására. Célszerű a 4 algebrai függvénnyel példálóznunk:

Ezenfelül megpróbálhatnánk egy tömbbel való játékot is...

 

int[] tomb = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

 

...néhány programozási alaptételes megoldással:

...és a végeredményeket szintúgy bevezethetnénk dedikált kiíró metódusunkba.

 

Nézzük meg a futtatható Java-kódot!

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

public class Main {

public static void kiiras() {
    System.out.println("Hello vilag!");
}

public static void kiiras(String szoveg){
    System.out.println(szoveg);
}

public static void kiiras(int szam){
    System.out.println(szam);
}

public static void kiiras(Object object){
    System.out.println(object);
}

public static void kiiras(int[] tomb){
    for(int i = 0; i < tomb.length; i++) {
        System.out.print(tomb[i] + " ");
    }
    System.out.println();
}

public static int osszeadas(int a, int b) {
    return a + b;
}

public static int kivonas(int a, int b) {
    return a - b;
}

public static int szorzas(int a, int b) {
    return a * b;
}

public static float osztas(int a, int b) {
    return (float)a / b;
}

public static int osszegzes(int[] tomb) {
    int osszeg = 0;
    for(int i = 0; i < tomb.length; i++) {
        osszeg += tomb[i];
    }
    return osszeg;
}

public static float atlagolas(int[] tomb) {
    float atlag;
    int osszeg = 0;
    for(int i = 0; i < tomb.length; i++) {
        osszeg += tomb[i];
        }
    atlag = (float)osszeg / tomb.length;
    return atlag;
}

 

public static int maximum(int[] tomb) {
    int maximum = tomb[0];
    for(int i = 0; i < tomb.length; i++) {
        if(maximum < tomb[i]) {
            maximum = tomb[i];
            }
    }
    return maximum;
}

public static int minimum(int[] tomb) {
    int minimum = tomb[tomb.length-1];
    for(int i = 0; i < tomb.length; i++) {
        if(minimum > tomb[i]) {
            minimum = tomb[i];
        }
    }
    return minimum;
}

public static void main(String[] args) {
    int[] tomb = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int a = 40;
    int b = 30;

    kiiras();
    kiiras("Hello vilag, mint bemeneti parameter");
    kiiras(a);
    kiiras(osszeadas(a, b));
    kiiras(kivonas(a, b));
    kiiras(szorzas(a, b));
    kiiras(osztas(a, b));
    kiiras(tomb);
    kiiras(atlagolas(tomb));
    kiiras(osszegzes(tomb));

    kiiras(maximum(tomb));

    kiiras(minimum(tomb));
    }
}

 

Végeredmény:

Hello vilag!
Hello vilag, mint bemeneti parameter
40
70
10
1200
1.3333334
1 2 3 4 5 6 7 8 9 10
5.5
55.0

10

1