Программирование на Java


Object - часть 3


public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); }

То есть возвращает строку, содержащую название класса объекта и его хеш-код в шестнадцатеричном формате.

В классах-наследниках этот метод может быть переопределен для получения более наглядного описания объекта. Обычно это значения некоторых полей, характеризующих экземпляр. Например, для книги это может быть название, автор и количество страниц:

package demo.lang; public class Book { private String title; private String author; private int pagesNumber; public Book(String title, String author, int pagesNumber) { super(); this.title = title; this.author = author; this.pagesNumber = pagesNumber; } public static void main(String[] args) { Book book = new Book("Java2","Sun",1000); System.out.println("object is: " + book); } public String toString(){ return "Book: " + title + " ( " + author + ", " + pagesNumber + " pages )"; } }

При запуске этой программы на экран будет выведено следующее:

object is: Book: Java2 ( Sun, 1000 pages )

Большинство стандартных классов переопределяет этот метод. Экземпляры класса String возвращают ссылку на самих себя (this).

Метод wait(), notify(), notifyAll() используются для поддержки многопоточности и были подробно рассмотрены в лекции 12. Они определены с атрибутом final и не могут быть переопределены в классах-наследниках.

Метод protected void finalize() throws Throwable вызывается Java-машиной перед тем, как garbage collector (сборщик мусора) освободит память, занимаемую объектом. Этот метод уже подробно рассматривался в лекции 4.

Метод protected native Object clone() throws CloneNotSupportedException создает копию объекта. Механизм клонирования подробно рассматривался в лекции 9.




Начало  Назад  Вперед



Книжный магазин