1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

[Java] Hilfe mit static

    • Frage
  • Shade
  • 26. April 2003 um 20:30
  • Unerledigt
  • Shade
    9
    Shade
    Mitglied
    Reaktionen
    1
    Punkte
    801
    Beiträge
    127
    • 26. April 2003 um 20:30
    • #1

    ist vielleicht ne blöde frage,aber wie schaff ichs den aus einer statischen methode eine nicht-statische methode aufzurufen?
    konkret will ich aus der main methode den konstruktor von einer klasse aufrufen.
    hab schon verschiedenste sachen ausprobiert aber ohne erfolg

    ALL GLORY TO THE HYPNO TOAD...

  • jjan
    6
    jjan
    Mitglied
    Reaktionen
    8
    Punkte
    293
    Beiträge
    57
    • 26. April 2003 um 21:13
    • #2
    Zitat von Shade

    ist vielleicht ne blöde frage,aber wie schaff ichs den aus einer statischen methode eine nicht-statische methode aufzurufen?
    konkret will ich aus der main methode den konstruktor von einer klasse aufrufen.
    hab schon verschiedenste sachen ausprobiert aber ohne erfolg



    Entschuldige, aber ist das ein Scherz, oder verstehe ich die Frage nicht richtig?

    public class Foo {
    public Foo(int baz) {
    }
    }


    public class Main {
    public static void main(String[] args) {
    Foo foo = new Foo(0);
    }
    }

    Eins Zwei Gras Bär Hund Vier Muh Macht Die Kuh

  • Flowyes
    9
    Flowyes
    Mitglied
    Punkte
    750
    Beiträge
    116
    • 26. April 2003 um 21:19
    • #3

    Theoretisch ist es ja sehr wohl möglich aus einer statischen Methode eine nicht-statische aufzurufen oder Konstruktoren oder was auch immer...
    Was meldet denn der Compiler?
    Oder wird der Zugriff irgendwie eingeschränkt?

    The idea behind this technique is surprisingly simple: just go ahead and do whatever you want to without paying attention to what anybody else is doing. If there is a problem, worry about it later. (Many politicians use this algorithm, too) -- A. S. Tanenbaum, M. v. Steen, Distributed Systems

  • Shade
    9
    Shade
    Mitglied
    Reaktionen
    1
    Punkte
    801
    Beiträge
    127
    • 26. April 2003 um 21:41
    • #4

    hab mich auch gewundert das dass nicht geht.aber ich bekomm immer den fehler:
    non-static variable this cannot be referenced from a static context
    in der zeile

    public static void main(String[] args)
    {...
    search bla=new search(first,name); <-Fehler!!!!
    ...}

    private class search implements Runnable
    {
    private File in;
    private String se;

    private search(File is,String si)
    {
    in=is;
    se=si;

    }
    ...
    }

    ALL GLORY TO THE HYPNO TOAD...

  • ghost dog
    6
    ghost dog
    Mitglied
    Reaktionen
    1
    Punkte
    386
    Beiträge
    69
    • 26. April 2003 um 21:45
    • #5
    Zitat von Shade

    hab mich auch gewundert das dass nicht geht.aber ich bekomm immer den fehler:
    non-static variable this cannot be referenced from a static context
    in der zeile

    public static void main(String[] args)
    {...
    search bla=new search(first,name); <-Fehler!!!!
    ...}

    private class search implements Runnable
    {
    private File in;
    private String se;

    private search(File is,String si)
    {
    in=is;
    se=si;

    }
    ...
    }

    Alles anzeigen

    hmmm. kann es sein, dass du private auf public andern musst??

  • catwoman
    4
    catwoman
    Mitglied
    Punkte
    155
    Beiträge
    30
    • 26. April 2003 um 21:48
    • #6

    kommt mir komisch vor.

    vielleicht die main-methode als methode der klasse search definieren??

    sonst mehr code.

    grüße
    ines

    :catwoman: der unterschied zw. reifen & politikern ist, daß reifen ein mindestprofil brauchen.

  • Shade
    9
    Shade
    Mitglied
    Reaktionen
    1
    Punkte
    801
    Beiträge
    127
    • 26. April 2003 um 22:00
    • #7
    Zitat von ghost dog

    hmmm. kann es sein, dass du private auf public andern musst??


    hab ich schon versucht,bringt nix.


    zum code:

    Java
    import java.io.*;
    import java.lang.reflect.Array;
    
    
    class file
    {
    public static void main(String[] args)
    {
    try{
    		String path,name;
    		BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
    		System.out.println("Enter search path: ");
    		path=input.readLine();
    		System.out.println("Enter filename: ");
    		name=input.readLine();
    		File first=new File(path);
    		search bla=new search(first,name);
    		//Thread start=new Thread(begin);
    		//start.start();
    	 }
    catch(IOException x)
     {System.out.println(x);}
    }//ende main
    
    
    
    
    
    
    
    
    public class search implements Runnable
    {
    private File in;
    private String se;
    
    
    public search(File is,String si)
    {
    in=is;
    se=si;
    
    
    }
    
    
    public void run()
    {
    try{
    		if(in.listFiles() != null)
    		  {
    			 File[] filearr=in.listFiles();
    			 int size=Array.getLength(filearr); 
    			 for (int a=0;a<size;a++)
    				{
    				 if(se.equals(filearr[a].getName() ) )
      	      System.out.println("File found at: "+ filearr[a].getCanonicalPath() );
     		     if(filearr[a].isDirectory() )
    					{
    					 		search foo = new search(filearr[a],se);
    		         Thread boo=new Thread(foo);
    		         boo.start();
    					}
    				}//ende for
    			 }//ende if
    		else
     		 System.out.println("Falscher Search string!!");
    	 }
    catch(IOException x)
     {System.out.println(x);
    	System.out.println(in.getPath());}		
    
    
    }//ende run
    
    
    }//ende search
    
    
    }//ende class file
    Alles anzeigen

    ALL GLORY TO THE HYPNO TOAD...

  • catwoman
    4
    catwoman
    Mitglied
    Punkte
    155
    Beiträge
    30
    • 26. April 2003 um 22:15
    • #8

    ah!
    wenn ich das richtig sehe, ist search eine inner class. & die kannst von nirgends ansprechen!!

    ein fehler "main cannot declared static" kommt, wenn du die main-methode in die inner class search gibst.

    also: aus der klasse search ein "normale" klasse machen. dann müßte es funkts. dann is aber die klasse file unnötig, weil das main kannst auch in search geben. (wenn sonst nix in file drinnen ist, wenn das der ganze code ist.)

    grüße
    ines

    :catwoman: der unterschied zw. reifen & politikern ist, daß reifen ein mindestprofil brauchen.

  • bla
    4
    bla
    Mitglied
    Punkte
    105
    Beiträge
    20
    • 26. April 2003 um 22:28
    • #9

    probier mal:

    Code
    search bla= new file().new search(first,name);

    weil auf eine nicht statische inner class kannst du nur mit hilfe einer instanz der outer class zugreifen.

  • jjan
    6
    jjan
    Mitglied
    Reaktionen
    8
    Punkte
    293
    Beiträge
    57
    • 26. April 2003 um 22:30
    • #10
    Zitat von Shade

    hab ich schon versucht,bringt nix.


    zum code:

    Code
    public class search implements Runnable



    Hier liegt der Hund begraben ...

    Code
    public static class search implements Runnable



    ... dann funktioniert's.

    Ansonsten hast Du eine "Inner Class", und die gehört sozusagen jeweils zu einer Instanz Deiner äußeren Klasse, folglich kannst Du sie nicht von einer statischen Methode aus instanziieren.

    HTH.

    Eins Zwei Gras Bär Hund Vier Muh Macht Die Kuh

  • Shade
    9
    Shade
    Mitglied
    Reaktionen
    1
    Punkte
    801
    Beiträge
    127
    • 26. April 2003 um 23:34
    • #11

    hmm,ein static davor setzen...
    manchmal sieht man den wald vor lauter bäumen nicht.
    naja hauptsache es funktzioniert jetzt.vielen dank nochmal für all die hilfe :thumb:
    jetzt nur noch regex einbauen und ich bin fertig.

    ALL GLORY TO THE HYPNO TOAD...

  • Maximilian Rupp 27. Dezember 2024 um 12:08

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung