2015-09-26 5 views
1

Чтобы объяснить мой вопрос, в нижнем коде, почему мне нужно передать объект/экземпляр класса, чтобы увидеть, как метод toString переопределяется, и почему значение toString метод, не имеет параметра класса типа для принятия этого объекта?Почему методы класса объектов принимают экземпляры класса как свои параметры

Class Teacher 

{ 

     public String toString() 

     { 

      return("Hello") 
     } 
} 


Class TestTeacher 

{ 

      public static void main(String []arr) 
      { 
       Teacher obj = new Teacher(); 
       System.out.println(obj); 
      } 
} 

ответ

0

почему я должен передать объект/экземпляр класса просто чтобы посмотреть, как метод ToString в настоящее время переопределены

Вам не нужно проходить объект до метода toString, вы можете позвонить по телефону

Teacher obj = new Teacher(); 
String output = obj.toString(); 
System.out.println(output); 

и почему метод toString имеет параметр класса типа для принятия этого объекта?

Это не так. Я думаю, вы сбиты с толку, потому что вы вызываете обычную функцию println с объектом. В свою очередь, внутренняя функция toString вызывается, чтобы иметь возможность печатать что-то на стандартном выходе. Таким образом, объект здесь не является параметром toString, а является параметром функции println.

+0

Спасибо Bas .. но почему объект класса передается методу toString вместо строки? – Scorpio

+0

Объект передается функции println (а не tostring). Это всего лишь сокращенная нотация, когда println обнаруживает, что вы хотите напечатать объект, который он вызывает функцию toString объекта. –

+0

Огромное вам спасибо ... Теперь я могу перестать ударять головой по компьютеру :) – Scorpio

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