Methoden Main-Methode erkennt meine Arrays nicht.

C60

Mitglied
Hallo,
ich bin recht neu, wenn es um programmieren geht.
Das Problem:
Ich habe mehrere Methoden geschrieben:
  1. Main Methode
  2. array Methode
  3. array2 Methode
  4. Entscheidungs Methode
  5. Ausgabe Methode
und das Problem ist, dass meine Main-Methode den Array nicht erkennt. Wie kann ich es dazu bringen, dass meine Main-Methode den Array von einer anderen Methode erkennt. Muss ich meine Arrays in die Main-Methode schreiben oder gibt es da auch eine andere Möglichkeit?


Hier der Java-Code:

Java:
public class MainMethodeArray {

    public static void main(String[] args) {
        
        Entscheidung();
        //Hier bei Ausgabe(int [] zahlen) kommt die Fehlermeldung
        Ausgabe(int [] zahlen);
        
    }
    
    public static void array() {
        
        int[] zahlen = {2,3,5,7,9};       
        

    }
    
    public static void array2() {
        
        int[] zahlen = {12,13,15,17,19};
    }
    
    public static void Entscheidung() {
        
        int Entscheidung;
        
        System.out.println("Für welches array möchtest du dich entscheiden? (1-2)");
        Entscheidung = StaticScanner.nextInt();
        
        if(Entscheidung == 1) {
            
        array();
            
        } else if(Entscheidung == 2) {
            
        array2();   
            
        }
        
    }
    
    public static void Ausgabe(int [] zahlen) {
        
        for(int i = 0; i < zahlen.length; i++){
            System.out.println(zahlen[i]);
        }
        
    }
    
    
}
 

temi

Top Contributor
Ja, das passt auch alles nicht so zusammen.

Zuerst mal: In Java beginnen die Namen von Methoden und Variablen mit einem Kleinbuchstaben. Klassennamen beginnen mit einem Großbuchstaben und sollten ein Substantiv sein. Methodennamen sollten ein Verb sein oder enthalten, aka "machDiesOderDas".

Du hast eine Methode "Ausgabe", die besser "ausgeben" heißen sollte, mit einem Parameter vom Typ int-Array. Beim Aufruf musst du natürlich ein int-Array angeben und nicht die Methodensignatur wiederholen.

Ich kommentiere mal in den Code hinein:
Java:
public class MainMethodeArray {

    public static void main(String[] args) {
  
        Entscheidung();
        //Hier bei Ausgabe(int [] zahlen) kommt die Fehlermeldung
        Ausgabe(int [] zahlen); // das sollte "Ausgabe(zahlen)" heißen, allerdings ist die Variable "zahlen" in dieser Methode nicht deklariert.
  
    }
 
    public static void array() {
        int[] zahlen = {2,3,5,7,9}; // hier wird eine lokale Variable "zahlen" deklariert und nie mehr verwendet
    } // hier endet die Gültigkeit der oben deklarierten Variablen und sie wird zerstört
 
    public static void array2() {
        int[] zahlen = {12,13,15,17,19}; // hier das selbe wie in der Methode vorher
    }
 
    public static void Entscheidung() {
  
        int Entscheidung; // Variablennamen sollte mit Kleinbuchstaben beginnen
  
        System.out.println("Für welches array möchtest du dich entscheiden? (1-2)");
        Entscheidung = StaticScanner.nextInt(); // Was ist StaticScanner?
  
        if(Entscheidung == 1) {
      
        array(); // hier ruftst du eine Methode auf, allerdings wird das nichts bewirken, außer
            // das in der Methode eine lokale Variable erstellt und wieder zerstört wird.
      
        } else if(Entscheidung == 2) {
      
        array2(); // desgleichen hier
      
        }
  
    }
 
    public static void Ausgabe(int [] zahlen) { 
        for(int i = 0; i < zahlen.length; i++){
            System.out.println(zahlen[i]);
        }
    }
}
 
Zuletzt bearbeitet:

temi

Top Contributor
Noch ein Hinweis: Nur, weil die Variablen in deinem Code alle "zahlen" heißen, bedeutet das nicht, dass diese Variable überall gültig ist, bzw es sich immer um die selbe Variable handelt. Tatsächlich sind alle Variablen "zahlen" in deinem Code eigenständige Variablen in ihrem jeweiligen Gültigkeitsbereich, auch, wenn sie zufällig (oder auch nicht) gleich benannt sind.

Innerhalb eines Gültigkeitsbereichs kann es einen Variablennamen nur einmal geben.
Java:
static void doSomething(int par) {
    int par = 2; // geht nicht, weil der Parameter "par" im gleichen Gültigkeitsbereich ist
} // Gültigkeit endet hier

In unterschiedlichen Bereichen geht das sehr wohl:
Java:
class Main {
  
    static void doSomething(int par) { // Deklaration der Parameter-Variablen "par"
        //...
    }
  
    static void doSomethingElse(int anotherPar) {
        int par = 42; // geht, weil es eine lokale Variable der Methode ist
    }
}
 
Zuletzt bearbeitet:

C60

Mitglied
Ja, das passt auch alles nicht so zusammen.

Zuerst mal: In Java beginnen die Namen von Methoden und Variablen mit einem Kleinbuchstaben. Klassennamen beginnen mit einem Großbuchstaben und sollten ein Substantiv sein. Methodennamen sollten ein Verb sein oder enthalten, aka "machDiesOderDas".

Du hast eine Methode "Ausgabe", die besser "ausgeben" heißen sollte, mit einem Parameter vom Typ int-Array. Beim Aufruf musst du natürlich ein int-Array angeben und nicht die Methodensignatur wiederholen.

Ich kommentiere mal in den Code hinein:
Java:
public class MainMethodeArray {

    public static void main(String[] args) {
 
        Entscheidung();
        //Hier bei Ausgabe(int [] zahlen) kommt die Fehlermeldung
        Ausgabe(int [] zahlen); // das sollte "Ausgabe(zahlen)" heißen, allerdings ist die Variable "zahlen" in dieser Methode nicht deklariert.
 
    }
 
    public static void array() {
        int[] zahlen = {2,3,5,7,9}; // hier wird eine lokale Variable "zahlen" deklariert und nie mehr verwendet
    } // hier endet die Gültigkeit der oben deklarierten Variablen und sie wird zerstört
 
    public static void array2() {
        int[] zahlen = {12,13,15,17,19}; // hier das selbe wie in der Methode vorher
    }
 
    public static void Entscheidung() {
 
        int Entscheidung; // Variablennamen sollte mit Kleinbuchstaben beginnen
 
        System.out.println("Für welches array möchtest du dich entscheiden? (1-2)");
        Entscheidung = StaticScanner.nextInt(); // Was ist StaticScanner?
 
        if(Entscheidung == 1) {
     
        array(); // hier ruftst du eine Methode auf, allerdings wird das nichts bewirken, außer
            // das in der Methode eine lokale Variable erstellt und wieder zerstört wird.
     
        } else if(Entscheidung == 2) {
     
        array2(); // desgleichen hier
     
        }
 
    }
 
    public static void Ausgabe(int [] zahlen) {
        for(int i = 0; i < zahlen.length; i++){
            System.out.println(zahlen[i]);
        }
    }
}
Ich habe jetzt meinen Code etwas geändert. Also alle Variablen und Methoden fangen bei mir jetzt mit Kleinbuchstaben an.
Die Methode habe ich jetzt auch "ausgeben" statt "Ausgabe" genannt. Soll ich beim Parameter jetzt: "public static void ausgeben(int zahlen)" eingeben?

Ich nutze den "Entscheidung = StaticScanner.nextInt();" damit der User (Also Ich) einen Int-Wert in die Konsole eintragen kann. Ich weiß nicht wie man es sonst machen sollte. (Also so wurde es mir zumindest gezeigt)

Mein Code sieht jetzt so aus:

Java:
public class MainMethodeArray {

    public static void main(String[] args) {
        
        int [] zahlen;
        
        entscheiden();
        
        ausgeben(zahlen);
        
    }
    
    public static void array() {
        
        int[] zahlen = {2,3,5,7,9};       
        

    }
    
    public static void array2() {
        
        int[] zahlen = {12,13,15,17,19};
    }
    
    public static void entscheiden() {
        
        int entscheidung;
        
        System.out.println("Für welches array möchtest du dich entscheiden? (1-2)");
        entscheidung = StaticScanner.nextInt();
        
        if(entscheidung == 1) {
            
        array();
            
        } else if(entscheidung == 2) {
            
        array2();   
            
        }
        
    }
    
    public static void ausgeben(int zahlen) {
        
        for(int i = 0; i < zahlen.length; i++){
            System.out.println(zahlen[i]);
        }
        
    }
    
    
}
 
K

kneitzel

Gast
Das ändert aber nichts daran, dass Du lokale Variablen hast, die nicht weiter verwendet werden. Schau Dir noch mal die Kommentare von @temi an zu der Methode array.

Was Du z.B. machen könntest: array und array2 geben das Array zurück. Rückgabe ist also nicht void sondern int[].
Und die Rückgabe vom array / array2 Aufruf würde die Methode entscheiden dann auch zurück geben.
Beim Aufruf von entscheiden wäre dann z.B. die Rückgabe in der Variable zahlen zu speichern.
 

C60

Mitglied
Das ändert aber nichts daran, dass Du lokale Variablen hast, die nicht weiter verwendet werden. Schau Dir noch mal die Kommentare von @temi an zu der Methode array.

Was Du z.B. machen könntest: array und array2 geben das Array zurück. Rückgabe ist also nicht void sondern int[].
Und die Rückgabe vom array / array2 Aufruf würde die Methode entscheiden dann auch zurück geben.
Beim Aufruf von entscheiden wäre dann z.B. die Rückgabe in der Variable zahlen zu speichern.
Danke für die Antwort.
Ich habe jetzt für beide Methoden (array & array2) das "Void" mit dem "int[]" ersetzt. Was genau sollte ich dann bei return eintragen? Etwa "entscheiden();" ?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Problem mit Eclipse: erkennt vorhandene Main-Methode nicht Java Basics - Anfänger-Themen 13
P Main Methode scheint Constructor aufzurufen, ohne dass es so gecoded ist Java Basics - Anfänger-Themen 2
N Throw an Main Methode übergeben Java Basics - Anfänger-Themen 7
J Die statische Main-Methode ändert Instanzvariable? Java Basics - Anfänger-Themen 10
D Array in Main Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 3
G jButton führt Main Methode nicht richtig aus Java Basics - Anfänger-Themen 3
G Main Methode wird beim ersten Aufruf nicht richtig ausgeführt Java Basics - Anfänger-Themen 1
C Kein Zugriff auf Klassenmethoden in Main Methode Java Basics - Anfänger-Themen 23
N Wozu nutzt man in der Main Methode das args Array? Java Basics - Anfänger-Themen 10
H Warum kann man keine Parameter in die main-Methode packen? Java Basics - Anfänger-Themen 4
KogoroMori21 Methode in der main ausgeben Java Basics - Anfänger-Themen 2
s_1895 zu viele Zeilen in der Main Methode Java Basics - Anfänger-Themen 4
B Wie kann ich etwas vor der Main-Methode ausführen? Java Basics - Anfänger-Themen 21
K Übergabe von Werten (zweidimensionales Array) aus einer Methode an zweidimensionales Array in main() Java Basics - Anfänger-Themen 3
G main Methode Java Basics - Anfänger-Themen 5
1 main-Methode erweitern, Nachfrage nach wiedeholung Java Basics - Anfänger-Themen 2
J main methode Java Basics - Anfänger-Themen 1
E Was kommt in ein Objekt und was in die Main Methode? Java Basics - Anfänger-Themen 8
D java main methode kann nicht kompiliert werden (Erstellen eines Objekts) Java Basics - Anfänger-Themen 6
M String außerhalb der main-Methode Java Basics - Anfänger-Themen 4
scratchy1 ArrayOutOfBoundException in main-Methode Java Basics - Anfänger-Themen 17
P Parameterübergabe, von Methode zu Methode zu main Java Basics - Anfänger-Themen 4
D Compiler-Fehler Aufrufen einer Methode von Main Java Basics - Anfänger-Themen 4
M Methode mit Array als Parameter an Main übergeben Java Basics - Anfänger-Themen 1
W Exception in Main abfangen oder in der Methode? Java Basics - Anfänger-Themen 10
J Timer bauen, Main Methode immer wieder neu starten Java Basics - Anfänger-Themen 13
M Maven Main-Methode Interface und Klasse Java Basics - Anfänger-Themen 2
G Instanzvariable in main-Methode verboten? Java Basics - Anfänger-Themen 3
M Objekt starten von der main-Methode Java Basics - Anfänger-Themen 1
A Methode aufrufen in main-Methode Java Basics - Anfänger-Themen 5
AssELAss Klassen Java Klasse in main-methode ausführen Java Basics - Anfänger-Themen 7
R Methoden Nicht statische Methode aus Main aufrufen Java Basics - Anfänger-Themen 2
J Methode in main-Methode aufrufen Java Basics - Anfänger-Themen 5
M Klassen Main Methode in einer anderen Klasse aufrufen Java Basics - Anfänger-Themen 13
TheMenox Methoden Auslagerung von Code aus der "main" Methode sinnvoll? Java Basics - Anfänger-Themen 70
S Methode auf Main zugreifen Java Basics - Anfänger-Themen 5
S Methoden main-Methode integrieren Java Basics - Anfänger-Themen 2
K Methoden Programm ohne Main Methode starten Java Basics - Anfänger-Themen 2
F Erste Schritte (Gelöst) Anfängerfrage Arraylist ausserhalb der Main Methode Java Basics - Anfänger-Themen 2
N Variablen Variable in Main deklarieren und in anderer Methode nutzen Java Basics - Anfänger-Themen 12
T Mehrere Methoden in der main-Methode verknüpfen und aufeinander anwenden Java Basics - Anfänger-Themen 2
A Methoden Zugriff auf eingelesene Variablen in der main Methode (ohne Änderung der Parameterliste) Java Basics - Anfänger-Themen 4
U Umschreiben ohne main methode ;-) Java Basics - Anfänger-Themen 8
A Fehlermeldung beim aufruf der main Methode Java Basics - Anfänger-Themen 17
F Threads Variable aus einem Thread in main Methode? Java Basics - Anfänger-Themen 9
B Java Programm ohne statische Main Methode aufrufen Java Basics - Anfänger-Themen 5
V Arrays aus eigener Klasse erstellt, zuweisung aber spuckt Fehler in verbindung mit main Methode aus. Java Basics - Anfänger-Themen 3
M Exception von main Methode weiterwerfen? Java Basics - Anfänger-Themen 1
D main-Methode und Tread parallel ausführen Java Basics - Anfänger-Themen 0
A Was stimmt mit Main-Methode nicht? Java Basics - Anfänger-Themen 4
T In main-Methode Parameter übergeben Java Basics - Anfänger-Themen 3
R Methoden Main-Methode verhält sich in .jar anders als in Eclipse Java Basics - Anfänger-Themen 2
P Verständnisproblem main Methode Java Basics - Anfänger-Themen 9
O Main-Methode static modifier umgehen Java Basics - Anfänger-Themen 10
P Verwirrung mit AWT Frame und main Methode Java Basics - Anfänger-Themen 19
T Threads Neuen Thread nicht aus main-Methode starten Java Basics - Anfänger-Themen 3
iB0T Main Methode Variablen übergeben Java Basics - Anfänger-Themen 6
H Applet - main()-Methode Java Basics - Anfänger-Themen 4
S Constructor und Main Methode Java Basics - Anfänger-Themen 3
N Methoden Main Methode Java Basics - Anfänger-Themen 7
B main methode ohne public Java Basics - Anfänger-Themen 5
E Methoden Methode in main-Methode ausführen Java Basics - Anfänger-Themen 3
R Fragen über Fragen, main-Methode und Co. Java Basics - Anfänger-Themen 32
1 Werte zur main Methode übergeben Java Basics - Anfänger-Themen 5
J Main-Methode Java Basics - Anfänger-Themen 14
B Erste Schritte ergebnis der funktion in der main-methode ausgeben Java Basics - Anfänger-Themen 7
T Klasse in Main Methode Java Basics - Anfänger-Themen 3
C Main Methode überschreibt Werte Java Basics - Anfänger-Themen 3
D Von einer Methode auf eine lokale Variable in der Main zugreifen? Java Basics - Anfänger-Themen 15
M andere Main Methode Java Basics - Anfänger-Themen 5
I Nur main-Methode über Konsole aufrufbar? Java Basics - Anfänger-Themen 3
J Programm in main Methode testen Java Basics - Anfänger-Themen 29
D Jar klappt nicht trotz main Methode Java Basics - Anfänger-Themen 19
D main Methode? Java Basics - Anfänger-Themen 19
M Main methode innerhalb von Java aufrufen Java Basics - Anfänger-Themen 11
M Frage zu main Methode Java Basics - Anfänger-Themen 11
B Problem bei dem erstellen einer Main Methode Java Basics - Anfänger-Themen 4
S Main Methode String... args Java Basics - Anfänger-Themen 2
S Main-Methode aus anderer Klasse heraus starten Java Basics - Anfänger-Themen 8
X Array von Methode in Main übergeben? Java Basics - Anfänger-Themen 11
G Immer mehr Threads beim Selbstaufruf der main-Methode Java Basics - Anfänger-Themen 3
K Variable von main- Methode in Untermethode "holen" Java Basics - Anfänger-Themen 3
A main Variable in Methode ansprechen Java Basics - Anfänger-Themen 4
T Datentypen Verständnisproblem mit main Methode Java Basics - Anfänger-Themen 3
Y Ergebnis einer Berechnung an die Main Methode übergeben Java Basics - Anfänger-Themen 11
N main Methode und String Java Basics - Anfänger-Themen 11
W Parameter für die main-Methode Java Basics - Anfänger-Themen 7
C Konstanten zu einfachen Berechnungen unterhalb Main Methode Java Basics - Anfänger-Themen 19
J arraylist ausserhalb der main Methode zugänglich machen (Elemente adden und updaten) Java Basics - Anfänger-Themen 4
A Fehlende Main-Methode? Java Basics - Anfänger-Themen 12
Z Funktionsaufruf in der main-Methode Java Basics - Anfänger-Themen 12
S Problem mit main Methode Java Basics - Anfänger-Themen 2
V Wofür steht das args / arguments in Main Methode Java Basics - Anfänger-Themen 4
I Fehlendes Argument in Main-Methode abfangen Java Basics - Anfänger-Themen 15
S main-Methode gibt unerwartetes Ergebnis aus Java Basics - Anfänger-Themen 4
M Parameter an main()-Methode Java Basics - Anfänger-Themen 6
M Unterschied main-Methode und Konstruktor Java Basics - Anfänger-Themen 13
Spin class und main Methode Java Basics - Anfänger-Themen 6
J unterprogramm in main-methode einbinden Java Basics - Anfänger-Themen 9
A Klassen: Ein Testprogramm mit der main Methode schreiben? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben