Frage von Rythonixx, 25

Zahlen in einer Methode aus anderer Klasse verwenden (Java)?

Guten Abend alle zusammen! Sitze gerade vor meiner HÜ und so wie ich bin, mag ich immer alles am kompliziertesten Weg machen! Ich möchte gerne eine Zufallszahl, die in der Klasse Menue berechnet wird(klappt bereits), in der Klasse Schaltjahr verwenden und diese Methode dann wieder in der Klasse Menue hernehmen! Da ich aber neu im Programmier-Bereich bin, weis ich nicht wirklich wie es geht oder überhaupt klappen könnte! Würde mich freuen wenn es gehen würde und jemand weis wie :D Schon mal vielen Dank!

Antwort
von Dory1, 15

Wie wäre es wenn du uns deinen bisherigen Quellcode mal zeigst?

Kommentar von Rythonixx ,

public class Schaltjahr
{
    // instance variables - replace the example below with your own
    private int jahr;
   
    int Zufallszahl;
    public void istSchaltjahrKonsole ()
    {
        IO io = new IO();
        io.println ("Geben Sie eine beliebige Jahreszahl ein, um herauszufinden, ob es sich um ein Schaltjahr handelt");
        jahr = io.readInt ();
       
        if (jahr % 4 == 0)
        {
            if (jahr % 400 != 0)
            {
                if (jahr %100 == 0)
                {
                    io.println ("");
                    io.println ("false");
                }
                else
                {
                    io.println ("");
                    io.println ("true");
                }   
            }
            else
            {
                io.println ("");
                io.println ("true");
            }
        }
        else
        {
            io.println ("");
            io.println("false");
        }
    } 
   
    public void istZufallszahlSchaltjahr ()
    {
        IO io = new IO();
        io.println ("Berechne...Berechne...Berechne...Ihre Zufalls-Jahreszahl wurde berechnet");
        Zufallszahl = io.readInt ();
       
        if (Zufallszahl % 4 == 0)
        {
            if (Zufallszahl % 400 != 0)
            {
                if (Zufallszahl %100 == 0)
                {
                    io.println ("");
                    io.println ("false");
                }
                else
                {
                    io.println ("");
                    io.println ("true");
                }   
            }
            else
            {
                io.println ("");
                io.println ("true");
            }
        }
        else
        {
            io.println ("");
            io.println("false");
        }
    }
}

 

 

 

 

 

 

public class Menue
{
    // instance variables - replace the example below with your own
    private int read;
    Schaltjahr S = new Schaltjahr();
    int Jahr;
    int Zufallszahl;
    IO io = new IO();
    int Antwort;
   
   
    public void zeigeMenue()
    {
        // put your code here
        io.println ("Bitte wählen Sie eine der folgenden Optionen aus:");
        io.println ("1 .. Jahr zum Testen eingeben");
        io.println ("2 .. Jahr zum Testen zufällig generieren");
        io.println ("3 .. Nächstes Schaltjahr anzeigen");
        io.println ("");
        read = io.readInt();
       
        if (read == 1)
        {
            io.println ("Sie haben sich für 1 (Jahr zum Testen eingeben) entschieden");
            io.println ("");
            S.istSchaltjahrKonsole();
                          
        }
       
        if (read == 2)
        {
           
            io.println ("Sie haben sich für 2 (Jahr zum Testen zufällig generieren) entschieden");
            int Zufallszahl = (int)((Math.random()*2100)+1);
            io.println ("Hier ist ihre Zufalls-Jahreszahl:");
            io.println (Zufallszahl);
            io.println ("");
            io.println ("Möchten Sie wissen, ob diese Jahreszahl ein Schaltjahr ist?");
            io.println ("");
            io.println ("Drücken Sie bitte 3 für ja");
            io.println ("oder");
            io.println ("Drücken sie 4 für Nein");
           
            Antwort = io.readInt();
            if (Antwort == 3)
            {
             io.println ("Sie möchten wissen, ob es sich um ein Schaltjahr handelt!");
             S.istZufallszahlSchaltjahr();
            
            }   
        }
           
        
           
    }
}

Kommentar von Dory1 ,

Warum erstellst du für den Schaltjahr-Check nicht eine static Methode in Schaltjahr?

public static boolean isSchaltjahr(int jahr) {
   // checken und true oder false zurückgeben
}

Diese Methode kannst du dann in Menue verwenden:

boolean istEinSchaltjahr = Schaltjahr.isSchaltjahr(zufallszahl);

Ich sehe da keinen Grund mit Instanzen zu arbeiten.

Antwort
von Destranix, 18

Schildere bitte nochmal ausführlich die Beziehungen t´zwischen den Klassen.

So ist das total unverständlich!

Kommentar von Rythonixx ,

Ich habe zwei Klassen, eine namens Schaltjahr und die andere namens Menue! Ich habe in der Klasse Menue bereits eine Jahreszahl generiert und möchte diese Zahl in der Klasse Schaltjahr verwenden, damit ich mit einer Methode (die steht schon schon in der Klasse Schaltjahr steht) herausfinden kann, ob es sich um ein Schatjahr handelt! Diese Methode möchte ich dann in der anderen Klasse hernehmen!

 

Also will ich zuerst etwas von der Klasse Menue für die Klasse Schaltjahr und dann die Methode aus der Klasse Schaltjahr für die Klasse Menue!

 

Ich denke nicht dass es jetzt besser verständlich ist! Falls nicht ist es auch nicht schlimm, trotzdem danke :D

Kommentar von Destranix ,

Statt der Klasse Schaltjahr solltest du lieber eine Methode in Meuue einfügen, die istSchaltjahr heißt und das ganze so prüft.

Andernfalls, Um die Variable in Schaltjahr zu bekommen, musst du eine Getter-Methode schreiben, die die Zufallszahl Als Rückgabewert ausgibt.

Um die Methode der Klasse Schaltjahr in Menue zu benutzen, benötigst du ein Objekt der Klasse Schaltjahr in Menue.

Du kannst aber auch der Methode die Zufallszahl als eingangsparameter geben. Dann benötigst du aber trotzdem das Objekt der Klasse Schaltjahr in Menue.

Kommentar von Rythonixx ,

Dankeschön, hat mir sehr geholfen!

Kommentar von Destranix ,

Bitteschön,Immer Gern!

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten