2016-04-06 4 views
1

Ich bin mir nicht sicher, wie ich dieses Problem genau erklären soll, aber ich bin mir ziemlich sicher, dass ich einen sehr einfachen Fehler mache, der ziemlich schnell korrigiert werden kann. Auch ich dachte, es wäre bequemer, wenn dies als Screenshot gezeigt wurde. Die ersten beiden Registerkarten sind meine Schnittstelle und die Fehler auffangenden Klassen.Code scheint außerhalb des Geltungsbereichs zu liegen. (Einfaches Queue-ADT-Programm)

Wie Sie den Code sehen können, für Methoden in meiner ADT Queue zu verwenden scheint, den Gültigkeitsbereich zu sein. Also kann ich weitermachen und diesen Teil der Kursarbeit vervollständigen, kann mir jemand erklären, warum es außerhalb des Geltungsbereichs liegt?

Danke für jede Hilfe!

+1

diese Variablen als Instanzvariablen deklarieren nennen, nicht auf lokale Variablen der 'main' Methode. – Berger

+3

Bitte geben Sie Ihren Code in der Frage als Text ein, kein verknüpftes Bild. –

Antwort

2

Sie deklarieren diese Variablen in main Methode, also nur main lokalen Bereich kennen sie. Bewegen Sie die Erklärung zu Klassenstufe

public class QueueProgram { 
    private static int queuesize = 10; 

    public static void main(String[] args) { 
    } 
} 

Hinweis I queuesize als static erklärt, da die main es verwendet. Eine weitere Option ist getters und setters zu erstellen und sie mit einer Instanz von QueueProgram

public class QueueProgram { 
    private int queuesize = 10; 

    public int getQueuesize() { 
     return queuesize; 
    } 

    public void setQueuesize(int size) { 
     queuesize = size; 
    } 

    public static void main(String[] args) { 
     QueueProgram program = new QueueProgram(); 
     program.getQueuesize(); // return 10; 
     program.setQueuesize(5); 
     program.getQueuesize(); // now it is 5; 
    } 
} 
+0

Danke für den Hilfe-Freund: 3 – James

Verwandte Themen