2013-03-28 5 views
1

Каково использование метода toString()? У меня есть подкласс, и мне нужно использовать метод tostring(). Как я могу использовать его для печати «C10». Если я пытаюсь сделать лотки и лестничную игру. Это сообщение об ошибке, которое я получаюПонимание метода tostring()?

Chute.java:12: ошибка: несовместимые типы return System.out.print ("C10"); ^ требуется: String найдено: аннулируются 1 ошибка

код:

public String toString() 
{ 
return System.out.print("C10") ; 

} 

}

+0

Ваш метод говорит return 'String' ... – squiguy

+0

Вы никогда не должны печатать внутри метода - вместо этого верните строку, которую вы в противном случае распечатали, а затем вы можете использовать ее для других вещей, кроме печати. – Patashu

+0

@ Паташу: Никогда не говори «никогда». Бывают случаи, когда печать в методе полезна для (начального уровня) отладки. – Makoto

ответ

0

System.out.print является метод недействительным. Он ничего не возвращает, несмотря на то, что он печатает на вашем экране.

Если вы хотите что-то вернуть из своего метода toString(), вам нужно вернуть только то, что вы хотели, из метода System.out.print.

public String toString() { 
    return "C10"; 
} 
+0

Я попробовал это с использованием system.out.print, и он отлично работает. спасибо большое много – Mfali11

0

Ваш метод toString() должен возвращать строковое представление своего класса:

public String toString() 
{ 
    return "C10"; 
} 
0

В этом случае вы получаете эту ошибку, потому что вы aren я ничего не возвращаю. System.out.print() - это метод, который в качестве побочного эффекта печатает строку, предоставленную для стандартного вывода.

Чтобы вернуть строку, вам нужно сделать, это:

public String toString() { 
    return "C10"; 
} 
2

Идея toString производит String представление объекта. Печатать или использовать его каким-либо другим способом полностью зависит от вас.

class Snake { 
    public String toString() { 
     return "C10"; 
    } 
} 

public static void main() { 
    Snake mySnake = new Snake(); 
    // This prints "C10" 
    System.out.println(mySnake); 
} 
+0

Вверх. Считается каноническим. –

+0

Большое вам спасибо, что на самом деле имеет большой смысл – Mfali11

0

В Java, функция должна возвращать определенный тип в подписании

метод общественной Строки возвращать строку, поэтому вы должны возвращать значение «С10»

public String toString() { 
    return "C10"; 
} 

Вы можете добавить функция печати, опционально до возврата:

public String toString() { 
    String value = "C10"; //user var to not copy the value; 
    System.out.print(value); 
    return value; 
}