# Ergebnisse zweier Methoden vergleichen



## nuke87 (14. Apr 2019)

Hallo, 
ich habe zwei Methoden geschrieben, diese berechnen die monatliche Telefonrechnung.
Nun rufe ich die Methoden in einer main - Methode auf und möchte diese zwei Methoden vergleichen um zu gucken welcher Tarif der billigste ich, kriege aber eine Fehlermeldung. Hat vielleicht jemand ein Tipp.
Danke !
Hier mein Code von der main Methoden:

```
public class testtel{
    public static void main(String[] args) {
         

        double tarif1 = tarif1.x(5);
        double tarif2 = tarif2.y(5);

        if (tarif1 < tarif2) {
            System.out.println("Tarif 1 ist billiger");
        }else if (tarif1 == tarif2) {
            System.out.println("Beide Tarife sind gleich");
            
        }else{
            System.out.println("Tarif 2 ist billiger");
        }
        }
    }
```


----------



## JCODA (14. Apr 2019)

Weder die beiden Klassen/Methoden noch die Fehlermeldung hast du angegeben. Sollen wir nun raten? 
Gut, dann versuch ich mein Glück:
Du hast die Instanzen tarif1 und tarif2 nicht deklariert geschweige denn initialisiert.


----------



## nuke87 (14. Apr 2019)

ok sorry,
hier ist tarif1:

```
public class tarif1{
    public static void x(double m){
        double b = 12.75;
        double gm = 0.05;
        double preis1 = (m*gm)+b;

        System.out.println(preis1);
    }
}

und hier ist tarif2:
[code=java] 
public class tarif2{
    public static void y(double m){
        double b = 22.98;
        double gm = 0.02;

        double preis2 = (0.02*m)+22.98;

        System.out.println(preis2);

    }

    } 

main code:
[code=java] 
public class testtel{
    public static void main(String[] args) {
               tarif1.x(5);
               tarif2.y(5);

        double tarif1 = tarif1.x(5);
        double tarif2 = tarif2.y(5);

        if (tarif1 < tarif2) {
            System.out.println("Tarif 1 ist billiger");
        }else if (tarif1 == tarif2) {
            System.out.println("Beide Tarife sind gleich");
            
        }else{
            System.out.println("Tarif 2 ist billiger");
        }
        }
    }


Fehlermeldung:   
testtel.java:6: error: double cannot be dereferenced
        double tarif1 = tarif1.x(5);
                              ^
testtel.java:7: error: double cannot be dereferenced
        double tarif2 = tarif2.y(5);
```


----------



## httpdigest (14. Apr 2019)

Das Problem ist, dass du eine double Variable deklarierst, die denselben Namen hat wie die Klasse, dessen x bzw. y Methode du aufrufen möchtest. Das geht nicht, da bereits bei dem Initialisierungs-Ausdruck einer Variablendeklaration die deklarierte Variable im Scope ist.
Nenne sie um.
EDIT: Außerdem liefern deine x bzw. y Methoden gar nichts zurück. Sie haben den Rückgabetyp 'void', sollte aber wohl eher 'double' sein.


----------



## nuke87 (14. Apr 2019)

Vielen Dank!


----------

