2015-03-08 5 views
-2

Я пытаюсь выяснить, что делает метод toString. Я много смотрел на youtube и много искал. Но это то, чего я пропускаю. Обратите внимание, что я сделал java всего около 80 часов.Вопросы о toString java

Я знаю, что toString - это имя по методу (?), Который имеет встроенную функцию. Когда я должен использовать это? Когда я смешиваю строку и int/double?

И второй вопрос, на который может ответить первый. Как это работает, когда я использую этот toString? Как обычно? Без изменений?

+1

Используется для создания строкового представления состояния вашего объекта. Я обычно использую его (переопределять), чтобы отображать поля ключевых объектов и для целей отладки, и я стараюсь не использовать его для производственного кода. Ваш вопрос '' как это работает ... ''немного более-широкий и, следовательно, трудно ответить. Что вы имеете в виду? –

ответ

0

toString представляет собой метод на каждом Object, который преобразует двоичное представление логической памяти на строку символов (String) в человеческом читаемом виде.

поведение по умолчанию toString, как показано в Object.java, чтобы вернуться:

class name + @ + memory address in hexadecimal 

При создании собственных классов, что стоит @Override этот метод, чтобы иметь возможность легко найти ошибки в дальнейшем. См. Ответ SMA о том, как это сделать. Большинство классов фреймов уже имеют этот метод, например ArrayList prints: [объект 0 toString(), объект 1 toString(), объект 2 toString()].

При добавлении произвольного объекта к объекту Струнный, как "hello " + empoyee, toString вызывается в фоновом режиме, так что примерно становится "hello " + employee.toString() (я говорю «примерно», потому что есть больше магии с участием StringBuilder, но это не беспокоиться о том, как новичок).

В основном используется для отладки и регистрации. Считается, что плохая практика фактически использует его в производственном коде и полагается на вывод метода в бизнес-логике и пользовательском интерфейсе.

+0

Эй! Кажется, я начинаю понимать это сейчас. Он работает следующим образом: он сохраняет строку где-то с шестнадцатеричным кодом. Всякий раз, когда вы хотите out.println, этот java находит строку, которая сохраняется как шестнадцатеричный, и выводит строку. Так что toString следует использовать, когда мы используем строку, например имя имени цвета и т. Д.? – Minivera

+0

О, извините, неправильная формулировка 'toString' ничего не печатает: это тот, который« сохраняет строку где-то »(= в памяти), а затем эта строка передается в println и отображается на консоли. – TWiStErRob

+0

Хорошо :) Спасибо! И последний вопрос. Должен ли toString всегда использоваться, когда мы печатаем строку? Как имя или так. – Minivera

0

toString - метод в классе объектов, который является родительским для всех классов. Когда вы определяете свой собственный пользовательский класс, и если вы хотите его легко записать в журнал, чтобы узнать состояние вашего настраиваемого объекта, то вы определяете метод toString, переопределяя один из присутствующих в классе Object. Рассмотрим следующий класс сотрудников, как:

public class Employee { 
    private int id; 
    private String name; 
    .. 
    @Override 
    public String toString() { 
     return "id: " + id +" name: " + name; 
    } 
} 

Теперь, когда говорят, вы пытаетесь записать на стандартный объект вывода сотрудника, вы увидите, как:

Employee employee = ... 
... 
System.out.println(employee); 
Output: 
id: .. name: ... 

Если вы не заменить его, то ToString объекта будет называться и это было бы в нечитаемой форме, как:

[email protected] 
1

toString() возвращает строковое представление объекта, что называется на.

Когда вы вызываете toString() на объект, он может дать вам строку, которая не имеет большого смысла. Когда вы передаете объект в System.out.println(), эта функция вызывает метод toString() объекта.

Вы вызываете переопределение toString() вашего класса, поэтому для объектов вашего класса будет вызываться человекочитаемая строка, когда toString() вызывается.

toString() очень полезен для регистрации, отладки или в любое время, когда вы хотите визуализировать/отображать объект в виде строки.

+0

Спасибо за ваш ответ :) Я до сих пор не понимаю, когда я должен его использовать. Когда я пытаюсь решить задачу, как я могу видеть, что «Ohh, здесь я должен использовать toString»? – Minivera

+0

Как обновлено в моем ответе, 'toString()' очень полезно для ведения журнала, отладки или в любое время, когда вы хотите отображать/отображать объект в виде строки. –

0

tosTring - это метод преобразования вашего класса в строку. Например:

public class Person 
{ 
    private String name; 
    private String age; 
    private String address; 

    @Override 
    public String toString() 
    { 

     return String.format("%10s %2d %20s",name,age,address); 

    } 
} 
+0

Я не полностью копирую. Что означает ваш класс? – Minivera

+0

Чтение двоичных данных из памяти и составление (обычно читаемой человеком) строковой формы. Подобно номеру '1234567' в памяти 4 байта (если это' int'), но если вы конвертируете его в 'String', он становится 7 байтами и теряет способность выполнять арифметику. – TWiStErRob

+0

Это для отображения вашего класса на консоли или компоненте. –

Смежные вопросы