Kann methode aus anderer Klasse nicht aufrufen

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo!
Ich habe binarySearch mit einer Rekursiven funktion nachprogrammiert. Aber ich kann jetzt in meiner Testklasse eine Methode nicht aufrufen...hier mal der Code:

Testklasse:
Code:
/*
 * Das ist die Testklasse zu Searcher.java
 *
 * @author Manuel
 * @version 11.11.2005
 */
public class Testklasse {
    public static void main(String args[]){
        int test[] = new int[20];
        
        for(int i = 0, z = 1; i < 20; i++, z++){
            test[i] = z;
        }
        
        Searcher zahlenSuche = new Searcher(test, true);
        System.out.println(zahlenSuche.binarySearch(0));
    }
    
}
Hier zeigt er mir an "Cannot find Symbol":
Code:
System.out.println(zahlenSuche.binarySearch(0));

und hier ist die Klasse zu der Testklasse:
Code:
import java.util.*;
/*
 * Es gibt ein Array, in dem nach einer bestimmten Zahl gesucht werden soll. Die
 * Suche erfolgt durch ständiges Halbieren. Man prüft in welcher Hälfte des Arrays
 * sich die Zahl befindet danach halbiert man diese Hälfte nocheinmal und prüft
 * wieder in welcher Hälfte sich die Zahl befindet usw... bis man die Zahl findet.
 * Wenn die Zahl nicht gefunden wird soll -1 ausgegeben werden.
 * @author Manuel
 * @version 11.11.2005
 */
public class Searcher
{
    private int [] array;

    /** 
     * Das Array wird initialisiert und bei Bedarf wird das Array auch sortiert
     * @param   int [] a    Zum initialisieren des Arrays
     * @param   sort        Falls sort true ist wird das Array sortiert
     */
    public Searcher(int [] a, boolean sort)
    {
        array = a;
        if (sort){
           Arrays.sort(a);
        }
    }
    /**
     * Diese Methode sucht nach einer int Zahl in einem Array. Es wird zuerst verglichen
     * ob diese Zahl exakt die Mitte ist, wenn nicht dann wird überprüft in welcher
     * Hälfte weitergesucht werden soll.
     *
     * @param  untereSchranke    Der untere Bereich des Arrays, die untere Schranke
     * @param  obereSchranke     Der obere Bereich des Arrays, die obere Schranke
     * @param  gesuchteZahl      Die Zahl die zu suchen ist
     * @return                   Entweder der Index der gesuchten Zahl und falls diese nicht vorkommt -1
     */
    public int binary(int untereSchranke, int obereSchranke, int gesuchteZahl)
    {
        double mitte = array[(obereSchranke + untereSchranke)/2];
        
        if(mitte == gesuchteZahl){
            return (obereSchranke + untereSchranke)/2;
        }
        
        if(mitte < gesuchteZahl && array[array.length-1] >= gesuchteZahl){
            return binary((obereSchranke + untereSchranke)/2+1, array[array.length-1], gesuchteZahl);
        }
        
        if(mitte > gesuchteZahl && array[0] <= gesuchteZahl){
            return binary(array[0], (obereSchranke + untereSchranke)/2-1, gesuchteZahl);   
        }
        else{
            return -1;
        }
    }
    /**
     * Diese Methode ruft die Methode binary auf und gibt die Gesuchte Zahl aus oder
     * falls diese nicht im Array enthalten ist -1
     * @param gesuchteZahl   Die gesuchte Zahl des Arrays
     * @return               Index nachdem gesucht wurde.
     */
    public int binarySearch(int gesuchteZahl){
        return binary(0, array.length-1, gesuchteZahl);
    }
}
[/code]
 

Sky

Top Contributor
Sind die Dateien im gleichem package ? im gleichem/richtigem Verzeichnis ?

Arbeitest Du mit einer IDE oder nutzt du händich den javac ? falls ja: übersetzt mal zuerst die Searcher und dann deine TestKlasse
 
G

Guest

Gast
So, das erste Problem habe ich mittlerweile gelöst. Aber jetzt habe ich noch eines.
Wenn ich der Testklasse nach mehreren Werten suche wie hier z.B.:
Code:
/* 
* Das ist die Testklasse zu Searcher.java 
* 
* @author Manuel 
* @version 11.11.2005 
*/ 
public class Testklasse { 
    public static void main(String args[]){ 
        int test[] = new int[20]; 
        
        for(int i = 0, z = 1; i < 20; i++, z++){ 
            test[i] = z; 
        } 
        
        Searcher zahlenSuche = new Searcher(test, true); 
        System.out.println(zahlenSuche.binarySearch(0)); 
    } 
    
}

Da bekomme ich immer eine Fehlermeldung: java.lang.StackOverflowError
Meine Frage ist nun was muss ich in der anderen Klasse (also nicht in der Testklasse) verändern damit statt Stack.OverflowError die Zahl -1 returnt wird und nicht der Fehler....
 

Oni

Top Contributor
wo suchst du den hier nach mehrern werten? ???:L
Code:
/*
* Das ist die Testklasse zu Searcher.java
*
* @author Manuel
* @version 11.11.2005
*/
public class Testklasse {
    public static void main(String args[]){
        int test[] = new int[20];
       
        for(int i = 0, z = 1; i < 20; i++, z++){ // hier fehlt ein int (int z = 1)
            test[i] = z;
        }
       
        Searcher zahlenSuche = new Searcher(test, true);
        System.out.println(zahlenSuche.binarySearch(0));
    }
   
}
 
G

Guest

Gast
Bleiglanz hat gesagt.:
musst halt schauen, dass deine Rekursion wirklich abbricht, Fehler ist in Methode binary(...)

das weiss ich auch Bleiglanz. Ich habe es jetzt so gelöst indem ich vorher eine Variable auf -1 gesetzt habe und diese in der Methode binary immer um 1 erhöht wird (zaehler++) und falls zaehler > als array.length/2 ist dann soll er -1 returnen.

Hat jemand ne bessere Lösung?
 
B

bygones

Gast
rekursiv ? sicher dass du immer den gleichen counter behältst?

zeig mal den code von binary....


nur so nebenbei: die Klasse Arrays hat schon eine binäre Suche implementiert
 
G

Guest

Gast
nur so nebenbei: die Klasse Arrays hat schon eine binäre Suche implementiert
Ich weis, das war aber unsere Aufgabe in der Schule bis morgen...*gg*

Hier ist die aktuelle Methode binary:
Code:
//ich habe vorher die Variable overflow auf -1 gesetzt.

public int binary(int untereSchranke, int obereSchranke, int gesuchteZahl)
    {
        overflow++;
        double mitte = array[(obereSchranke + untereSchranke)/2];
        
        if(overflow > array.length/2){
            return -1;
        }
        if(mitte == gesuchteZahl){
            return (obereSchranke + untereSchranke)/2;
        }
        
        if(mitte < gesuchteZahl && array[array.length-1] >= gesuchteZahl){
            return binary((obereSchranke + untereSchranke)/2+1, array[array.length-1], gesuchteZahl);
        }
        
        if(mitte > gesuchteZahl && array[0] <= gesuchteZahl){
            return binary(array[0], (obereSchranke + untereSchranke)/2-1, gesuchteZahl);   
        }
        else{
            return -1;
        }
    }
[/code]
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Array in Main Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 3
M Von einem Menü Methode aus anderer Klasse ausführen, die errechnete Werte in Datei schreibt. Java Basics - Anfänger-Themen 8
M Klassen Methode in anderer Klasse aufrufen? Java Basics - Anfänger-Themen 3
M Methode in anderer Klasse aufrufen Java Basics - Anfänger-Themen 5
B Mit methode Objekt aus anderer Klasse erstellen Java Basics - Anfänger-Themen 6
A OOP Variable in anderer Klasse durch Methode aufrufen und einer anderen Variable gleichsetzen Java Basics - Anfänger-Themen 2
J Methoden Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 12
L Klassen Methode aus anderer Klasse Java Basics - Anfänger-Themen 13
M Klassen Methode aus anderer Klasse nicht aufrufbar Java Basics - Anfänger-Themen 11
F Methode anderer Klasse aufrufen Java Basics - Anfänger-Themen 1
P Aufruf Methode anderer Klasse Java Basics - Anfänger-Themen 5
I Rückgabewert einer Methode in anderer Klasse verwenden Java Basics - Anfänger-Themen 2
M Dynamische Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 11
T [Erledigt] Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 0
L Erste Schritte Methode aus anderer Klasse verwenden Java Basics - Anfänger-Themen 16
C Problem mit Zugriff auf Variable bzw. get-Methode in anderer Klasse Java Basics - Anfänger-Themen 2
A Methode aus anderer Klasse Java Basics - Anfänger-Themen 5
H Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 7
C Objekt X über Methode aus anderer Klasse verändert Java Basics - Anfänger-Themen 3
I Von einer Methode eines Objektes auf Attribut eines Objektes anderer Klasse zugreifen Java Basics - Anfänger-Themen 4
S Main-Methode aus anderer Klasse heraus starten Java Basics - Anfänger-Themen 8
S Zugriff auf Methode anderer Klasse Java Basics - Anfänger-Themen 6
T Aufrufen von get-Methode aus anderer Klasse (absolute Anfängerfrage) Java Basics - Anfänger-Themen 2
J Methode anderer Klasse aufrufen ;-) Java Basics - Anfänger-Themen 5
B Methode aus anderer Klasse verwenden Java Basics - Anfänger-Themen 11
E Methode aus anderer Klasse ausführen Java Basics - Anfänger-Themen 3
I Festellen wann Methode in anderer Klasse fertig ist Java Basics - Anfänger-Themen 5
G private methode wird aus anderer klasse aufgerufen? Java Basics - Anfänger-Themen 3
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
julian0507 Array aus Methode in anderer Methode sichtbar machen Java Basics - Anfänger-Themen 10
J Methoden Frage: Array-Werte in anderer Methode ändern Java Basics - Anfänger-Themen 4
B Schleife von anderer Methode stoppen? (Start continue) Java Basics - Anfänger-Themen 18
PaperHat Methoden als Parameter anderer Methode verwenden Java Basics - Anfänger-Themen 11
T Methoden Auf Variabler aus anderer Methode zugreifen Java Basics - Anfänger-Themen 5
N Variablen Variable in Main deklarieren und in anderer Methode nutzen Java Basics - Anfänger-Themen 12
P Methoden Methode in anderer Methode aufrufen Java Basics - Anfänger-Themen 4
Mr. Pink Graphics2D in anderer Methode aufrufen Java Basics - Anfänger-Themen 6
I Im JFrame Inhalte verändern per Methode aus anderer Class Java Basics - Anfänger-Themen 5
D Methoden Methode in anderer .class Datei Funktioniert nicht. Java Basics - Anfänger-Themen 11
M OOP ActionPerformed Methode aus anderer AP aufrufen? Java Basics - Anfänger-Themen 5
M Aus anderer Methode painten Java Basics - Anfänger-Themen 2
I Kein Zugriff auf erstelltes Objekt aus anderer Methode Java Basics - Anfänger-Themen 6
H Methode aus anderer Datei aufrufen Java Basics - Anfänger-Themen 11
D Variable einer Methode in anderer Methode aufrufen Java Basics - Anfänger-Themen 19
G JTabbedPane zugriff von anderer Methode Java Basics - Anfänger-Themen 2
S JTextField in anderer Classe mit getter Methode auslesen. Java Basics - Anfänger-Themen 2
A Auf ausgewählte Items der Liste in anderer Methode zugreifen Java Basics - Anfänger-Themen 3
EagleEye methode in anderer java datei aufrufen Java Basics - Anfänger-Themen 27
T Rekursive Methode Java Basics - Anfänger-Themen 13
Ü Methode soll Quadrat aus der Summer zurückgeben Java Basics - Anfänger-Themen 10
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
Leyla Spezifischte Methode Java Basics - Anfänger-Themen 16
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
L Variablenwerte aus einer Methode übergeben Java Basics - Anfänger-Themen 2
T Methode soll etwas ausrechnen und zurückgeben (klappt nd) hat wer eine Idee? Java Basics - Anfänger-Themen 11
P Main Methode scheint Constructor aufzurufen, ohne dass es so gecoded ist Java Basics - Anfänger-Themen 2
T Aufruf der Methode einer Oberklasse, wenn sie in der Unterklasse überschrieben ist. Polymorphie. Java Basics - Anfänger-Themen 2
C Zugriff auf Methode Java Basics - Anfänger-Themen 2
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18
M Methode sperren bis ein Kriterium erfüllt wurde Java Basics - Anfänger-Themen 3
D Switch Case Methode aufrufen Java Basics - Anfänger-Themen 3
C Unbekannte Methode add bei Klasse die JTree erweitert Java Basics - Anfänger-Themen 14
M methode aufrufen ohne parameter Java Basics - Anfänger-Themen 1
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
monsterherz einfache Methode mit Fehler den ich nicht finde Java Basics - Anfänger-Themen 21
Ostkreuz Wieso wird die Methode nochmal aufgerufen? Java Basics - Anfänger-Themen 5
G Variable aktualisiert sich nicht in rekursiver Methode Java Basics - Anfänger-Themen 4
Say super.methode / super.variable und super(variable) Java Basics - Anfänger-Themen 2
B Wie kann ich folgende Klasse/Methode per Button ausführen? Java Basics - Anfänger-Themen 1
D Interface Methode wird ungewollt in der Subklasse überschrieben Java Basics - Anfänger-Themen 5
L Methoden Eine Methode um zu testen ob es ein Nachbar gibt Java Basics - Anfänger-Themen 10
til237 Iterative Methode in rekursive Methode umschreiben Java Basics - Anfänger-Themen 4
M Daten aus errechneter Methode in Datenbank(SQLite) schreiben Java Basics - Anfänger-Themen 60
D next() Methode mehrfach verwenden Java Basics - Anfänger-Themen 1
Ostkreuz Methoden Von Dezimal zu Hexadezimal Methode toHex Java Basics - Anfänger-Themen 2
I Entity Objekt nicht gefunden -> Webhook empfangen in der gleichen Methode (Transaktion) Java Basics - Anfänger-Themen 37
N Throw an Main Methode übergeben Java Basics - Anfänger-Themen 7
M Methoden Methode 'wiederhole' nicht gefunden (Uebersetzungsfehler) Java Basics - Anfänger-Themen 1
H Zu langen String aufteilen - bequeme Methode? Java Basics - Anfänger-Themen 14
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
S Array mit Methode löschen Java Basics - Anfänger-Themen 2
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
T Variable von Objekten in einer Methode überprüfen Java Basics - Anfänger-Themen 26
M Anzahl Kommandozeilenparamter mittels Methode Java Basics - Anfänger-Themen 11
D Methode: Array Reihenfolge tauschen Java Basics - Anfänger-Themen 3
frager2345 Problem mit Methode Java Basics - Anfänger-Themen 4
J Die statische Main-Methode ändert Instanzvariable? Java Basics - Anfänger-Themen 10
D Methode aus dem Aufrufer aufrufen Java Basics - Anfänger-Themen 1
T IOStreams read(byte[]b) methode Java Basics - Anfänger-Themen 2
frager2345 Java Singleton Muster -> Methode für Konstruktor mit Parametern Java Basics - Anfänger-Themen 3
U Beispiel Methode size() vom "Collection"-interface... Wie kann man sichtbar machen, was die Methode unter der Haube macht? Java Basics - Anfänger-Themen 8
D Warum kann ich hier nicht auf die Methode zugreifen? Java Basics - Anfänger-Themen 5
M generate Methode für Streams Java Basics - Anfänger-Themen 6
M Methoden Zweidimensionaler Array mit Setter Methode ändern Java Basics - Anfänger-Themen 4
I Optionaler Parameter bei Methode, der nur optional ist? Java Basics - Anfänger-Themen 6
berserkerdq2 Wozu benötigt man den BiPredicate, kann ich nicht einfach eine normale Methode nutzen, statt BiPredicate? Java Basics - Anfänger-Themen 3
T Linked List set-Methode Java Basics - Anfänger-Themen 2
D Arrays an replaceAll-Methode übergeben Java Basics - Anfänger-Themen 12
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32

Ähnliche Java Themen

Neue Themen


Oben