2017-02-15 3 views
1

Nun, ich habe auch nur eine einfache Frage auf der Client-Klasse unten, einen Fehler Ich erhalte, wie diese Fehler zu beheben, und drucken Sie richtig (this.toString())Client-Klasse Fehler in Java

import java.io.*; 
import java.util.Scanner; 
public class IndexClient 
{ 
    File file = new File("file.txt"); 
    System.out.println(this.toString()); 
} 

Grundsätzlich bekomme ich einen Fehler in der vorletzten Zeile, die besagt, dass der Bezeichner genau vor dem nach dem println und vor den ersten Klammern erwartet wird. Warum bekomme ich diesen Fehler, wie würde ich diesen Fehler beheben und wie würde ich dann erfolgreich drucken (this.toString())?

-Update Nummer 1:

Ich bin nicht sicher, dass dies absolut notwendig ist; jedoch, wenn Sie es brauchen, meine Methode toString() ist unter:

public String toString() 
{ 
    String sb = ""; 
    for (int d = 0; d < words.size(); d++) 
    { 
     sb += "The word: " + words.get(d) + System.lineSeparator(); 
    } 
    return sb; 
} 

Update-Nummer 2:

ich wirklich zu schätzen alle Hilfe und konstruktive Kritik an dem Code, den ich bekommen kann. Ich hoffe, ich habe diese einfache Frage nicht zu komplex gemacht. Vielen Dank :)

Update-Nummer 3:

Es tut mir leid für so viele Notizen. Wie auch immer, ich habe mich nur gefragt, ob das eine häufige Frage ist, die jeder von euch sieht, weil es so aussieht, als käme das viel im Unterricht auf, und der Lehrer kann die Frage nicht beantworten. Thanks again :)

+1

'Lehrer assisstant die question' nicht beantworten kann, das ist wirklich traurig, das, was Sie falsch tat Programm innerhalb Ihrer Klasse, aber nicht mit einer Methode. Wirf diese Druckzeile in eine Methode und es geht dir gut – SomeJavaGuy

Antwort

3

Sie können nicht verwenden:

System.out.println(toString()); 

Out Seite eine Methode, können Sie es innerhalb einer Methode verwenden können, oder Sie können Ihre Hauptmethode erstellen:

public void myMethod(){ 
    System.out.println(toString()); 
} 

Oder

public static void main(String args[]){ 
    System.out.println(toString()); 
} 
+2

Oh mein Gott, ich habe vergessen, öffentliche statische void main String [] args zu setzen. Ich bin so dumm –

+0

'this.toString()' funktioniert nicht in einer statischen Methode. – BetaRide

+0

oops @BetaRide Ich habe diesen Punkt vergessen ich bearbeite es jetzt danke –

2
  1. Sie können nicht außerhalb einer Methode in einer Java-Klasse haben Code.
  2. Sie müssen ein Objekt Ihrer Klasse erstellen, um auf this zuzugreifen.

Eine korrekte minimale Implementierung wie die (von der Online Java IDE genommen) aussehen:

import java.lang.Math; // headers MUST be above the first class 

public class HelloWorld 
{ 
    // arguments are passed using the text field below this editor 
    public static void main(String[] args) 
    { 
    OtherClass myObject = new OtherClass("Hello World!"); 
    System.out.print(myObject); 
    } 
} 

// you can add other public classes to this editor in any order 
public class OtherClass 
{ 
    private String message; 
    private boolean answer = false; 
    public OtherClass(String input) 
    { 
    message = "Why, " + input + " Isn't this something?"; 
    } 
    public String toString() 
    { 
    return message; 
    } 
}