# Scanner Int Wert aus anderer Klasse holen?



## NostalgieTape (25. Mai 2022)

Moin liebe Gemeinde,

ich möchte einen Wert in eine andere Klasse abfragen und diesen in der Main Klasse weiter verwenden.

Irgendwie komme  ich da nicht weiter....   Ich möchte den Wert Jahr in der Main Klasse verwenden, bekomme aber nur Fehlermeldenungen...


```
lass Osterberechnung {

    public static void main(String[] args) {

        Testmethode intHolen = new Testmethode();
        intHolen.verbinden();

        int KlasseAInt = intHolen.b;

        System.out.println("Wert aus Klasse B : " + KlasseAInt);

    }

}



import java.util.Scanner;

class Testmethode {


    int  jahr; // variable als int für das gewählte Jahr

    Scanner eingabewert = new Scanner(System.in); // eingabe des gewünschten jahres

       System.out.println("********************");
       System.out.println("* Feiertagsrechner *");
       System.out.println("********************");
       System.out.println("");
       System.out.println("Bitte das gewünschte Jahr eingeben : ");
    jahr = eingabewert.nextInt();




    public void verbinden(){

    }

}
```

Irgendwelche Ideen oder Hilfestellungen hier?

Vielen Dank im Voraus.


LG Mario


----------



## Robert Zenz (25. Mai 2022)

Was fuer Fehlermeldungen bekommst du denn?


----------



## NostalgieTape (25. Mai 2022)




----------



## wer112 (25. Mai 2022)

Ich bin überhaubt kein Experte und eher Anfänger, aber ich habe da ne Frage.

Wieso ist da kein return jahr; ? 

Ich hoffe ich liege etwas richtig. Den genauen und richtigen Ansatz wird von den anderen gezeigt...


----------



## Robert Zenz (25. Mai 2022)

Also, das sind Syntaxfehler, das bedeutet die Syntax von deinem Programm ist nicht richtig. Sehen wir uns das mal an:


```
// Klasse.
class Osterberechnung {
    // Methode
    public static void main(String[] args) {
        // Methodenkoerper
        Testmethode intHolen = new Testmethode();
        intHolen.verbinden();

        int KlasseAInt = intHolen.b;

        System.out.println("Wert aus Klasse B : " + KlasseAInt);
    } // Ende Methode
} // Ende Klasse

// ------------------------------------------------------------------------

// Imports
import java.util.Scanner;

// Klasse
class Testmethode {
    // Klassenvariablen
    int  jahr; // variable als int für das gewählte Jahr
    Scanner eingabewert = new Scanner(System.in); // eingabe des gewünschten jahres

    // ???
       System.out.println("********************");
       System.out.println("* Feiertagsrechner *");
       System.out.println("********************");
       System.out.println("");
       System.out.println("Bitte das gewünschte Jahr eingeben : ");
    jahr = eingabewert.nextInt();
    
    // Methode
    public void verbinden(){
        // Methodenkoerper
    } // Ende Methode
} // Ende Klasse
```

Faellt dir dabei etwas auf?


----------



## NostalgieTape (25. Mai 2022)

Ähmmm, nein ?!


----------



## Robert Zenz (25. Mai 2022)

Komm, ich habe es dir sogar angestrichen, das schaffst du alleine. Wenn du das Jahr vom Benutzer einlesen willst, rufst du die *Methode* "verbinden" auf, und was machst du in der *Methode* "verbinden"?


----------



## NostalgieTape (25. Mai 2022)

D A N K E ! Ich werd es nie lernen.....


----------



## NostalgieTape (25. Mai 2022)

Wenn ich den Int aus der Klasse Testmethode in einer dritten Klasse verarbeiten will, wie stelle ich das an, bzw. kann man die nicht direkt in alle Klassen nutzen, wenn die Public ist?


----------



## Robert Zenz (25. Mai 2022)

Du brauchst immer eine Instanz. Also entweder erstellt die dritte Klasse eine neue Instanz fuer sich, oder du reichst die Instanz welche du in der ersten erzeugst an die dritte weiter, zum Beispiel als Methodenparameter.


----------

