Разработка динамических сайтов
SEO услуги
Управление контекстной рекламой

Вход на хостинг

Имя пользователя:*

Пароль пользователя:*

IT-новости

20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла

Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......

подробнее

30.07.2015 Ищем уникальный контент для сайта

Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......

подробнее

11.05.2015 Распространённые ошибки разработчиков сайтов

Не секрет, что в сети Интернет насчитывается миллионы сайтов, и каждый день появляются тысячси новых......

подробнее

Свежая информация гигиенический педикюр на нашем сайте.

Вопрос: 

Можно ли получить внутренний адрес экземпляра класса – хотя бы для отладочных целей или для идентификации экземпляра?

Ответ:

Да. С помощью метода System.identityHashCode(Object x).

Возвращаемое целое число является уникальным идентификатором экземпляра x в рамках данной Java-машины. В типичных реализациях языка Java это число соответствует внутреннему адресу объекта в памяти (так написано в документации фирмы Sun). Язык Java, конечно, не позволяет использовать этот адрес для «нелегальных действий» с объектами, например для считывания или модификации полей. Но его вполне можно использовать для идентификации экземпляров объектов. Например, распечатка identityHashCode позволяет в процессе отладки убедиться в идентичности некоторых объектных переменных, появляющихся в разных местах работы программы.

Если в классе, экземпляром которого является объект x, метод hashCode не был переопределен, то вместо «System.identityHashCode(x)» можно использовать эквивалентный вызов «x.hashCode()».

Вопрос: 

Хотелось бы получить в распоряжение библиотечку «очень полезных функций» (вроде методов класса Math), которые были бы доступны в моих классах без предварительного указания имени класса, содержащего эти функции. Возможно ли это?

Ответ: 

Да, хотя это и противоречит объектно-ориентированной идеологии языка Java. Можно создать класс-«библиотечку», например Tools, состоящий только из статических методов – этих самых «очень полезных функций», и взять за правило наследовать от него все новые классы. Такой прием не годится, если новый класс по условию должен быть унаследован от какого-либо класса, разработанного не вами, например от java.lang.Thread. В этой ситуации можно сделать новый класс вложенным по отношению к внешнему классу, унаследованному от класса-«библиотечки».

Однако вряд ли такое решение стоит рекомендовать. Может быть, в следующих версиях Java появится возможность делать то же самое «цивилизованно» – указывая в начале java-файла набор классов, статические члены которых автоматически становятся доступными без дополнительных уточнений.


Предыдущая страницаОглавлениеСледующая страница
 
[001] [002] [003] [004] [005] [006] [007] [008] [009] [010] [011] [012] [013] [014] [015] [016] [017] [018] [019] [020]
[021] [022] [023] [024] [025] [026] [027] [028] [029] [030] [031] [032] [033] [034] [035] [036] [037] [038] [039] [040]
[041] [042] [043] [044] [045] [046] [047] [048] [049] [050] [051] [052] [053] [054] [055] [056] [057] [058] [059] [060]
[061] [062] [063] [064] [065] [066] [067] [068] [069] [070] [071] [072] [073] [074] [075] [076] [077] [078] [079] [080]
[081] [082] [083] [084] [085] [086] [087] [088] [089] [090] [091] [092] [093] [094] [095] [096] [097] [098] [099] [100]
[101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120]
[121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140]
[141] [142] [143] [144] [145] [146] [147] [148]

+7 (831) 413-63-27
ООО Дельта-Технология ©2007 - 2023 год
Нижний Новгород, ул. Дальняя, 17А.
Rambler's Top100