2013-08-26 2 views
3

Когда я объясняю код, мне часто приходится писать «объект, на который вызывается метод». Например.В Java есть имя для объекта, на который вызывается метод?

contains() метод просто проверяет, если входная подстрока присутствует в струна вызове contains() на.

В Objective-C Я хотел написать

Метод contains() просто проверяет, если входной подстроки присутствует в приемнике (строка).

Что имеет смысл, поскольку Objective-c использует передачу сообщений, а сообщение имеет отправителя и получателя.

Отсутствие этого выражения для терминологии Java делает описания очень сложными, когда объект, о котором идет речь, нельзя назвать явно. Существует ли стандартное имя для объекта, который вызывается методом?

ИТОГ: приемник, кажется, выражают отношения лучшее.

+0

Возможно, объект 'invoking'. В javadoc вы можете ссылаться на объект 'call' как' this'. –

+0

'вызывающий объект',' вызывающий объект', 'заданная строка',' subject' ... Я не знаю стандартную терминологию, поэтому вы должны быть вправе выбирать любые звуки, наиболее подходящие в данной ситуации. –

+0

Я не уверен, что имеет ссылку на вызывающий объект. Это не очень OO. Если вы намереваетесь вызывать метод в вызываемом объекте, тогда ему придется реализовать некоторый интерфейс. Вы не можете использовать методы, доступные только для вызова объектами, реализующими некоторый интерфейс. – Cruncher

ответ

4

Это называется «приемник». См. Terminology.

+2

Почему он не широко используется? – allprog

+1

Я прочитал связанную статью, но я никогда не видел «приемник», используемый таким образом в документации по Java. – Dev

+0

Нам нужно работать над распространением слова. – allprog

0

В Java Java javadocs вы увидите «этот», «этот экземпляр», «этот объект» или «этот класс <», который используется совсем немного.

Object.equals(Object)

Указывает какой-либо другой объект, является ли "равно" это один.

Collection.iterator()

Возвращает итератор над элементами в этой коллекции.

Другим примером может быть, достойный Observer.update(Observable, Object)

Этот метод вызывается всякий раз, когда наблюдаемый объект изменяется. Приложение вызывает метод notifyObservers объекта Observable для , чтобы все наблюдатели этого объекта уведомили об этом изменении.

Обратите внимание, что на приемник просто ссылается его имя класса.

+2

Это имеет смысл для javadoc, который ссылается на текущий метод. Но что происходит, если оно относится к другому методу и к объекту, на который он вызван? –

+0

@SotiriosDelimanolis Обычно это «указано/указано/аргумент », если я правильно вас понял, но я не думаю, что вопрос был о нем. – Dev

+1

javadoc для 'Object # equals' относится к' Object # equals', но что, если он ссылался на 'Object # hashCode', вызывал какой-то другой объект, чем' this' и данный аргумент? Как бы вы назвали этот объект? –

0

В java он часто упоминается как «этот» объект.

Например:

Метод содержит() просто проверяет, если входная подстрока присутствует в этого строки.

Это соответствует значению ключевого слова на Java.

+2

К сожалению, у этого 'него' нет контекста вне объекта. Это будет очень сложно использовать, если в обсуждении используются несколько объектов. – allprog

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