2012-02-29 2 views
3

Я наткнулся на это во время обучения Java в начале, но я учусь сверху вниз, так что я хотел бы какое-то направление:Когда Java-подпрограмма не является методом?

Это было на Java tutorial относительно рано:

Как один окончательного генерала Обратите внимание, что вы должны знать, что подпрограммы в Java часто называются методами. Как правило, термин «метод» означает подпрограмму, которая содержится в классе или в объекте. Поскольку это верно для каждой подпрограммы в Java, каждая подпрограмма в Java является методом (с одним очень техническим исключением). То же самое относится и к другим языкам программирования. Тем не менее, термин «метод» в основном используется в контексте объектно-ориентированного программирования, и пока мы не начнем делать реальное объектно-ориентированное программирование в главе 5, я предпочту использовать более общий термин «подпрограмма». Однако я должен отметить, что некоторые люди предпочитают использовать термин «метод» с самого начала.

Мой вопрос в том, что это «одно очень техническое исключение». Поскольку я изучаю несколько технологий стека, я хотел бы знать это конкретное исключение, о котором он говорит. Это исходит из этого урока: http://math.hws.edu/javanotes/c2/

+0

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

+0

Выполнено, спасибо за отзыв –

ответ

6

Цитируя chapter 5 урока вы связаны с:

Конструкторы Подпрограммы, но они являются подпрограммами специального типа. Они, конечно, не являются методами экземпляра, поскольку они не относятся к объектам . Поскольку они несут ответственность за создание объектов, они должны существовать до того, как будут созданы какие-либо объекты. Они больше похожи на статические подпрограммы участника, но они не являются и не могут быть объявлены как static. Фактически, согласно спецификации языка Java, они технически не являются членами этого класса вообще! В частности, конструкторы не называются «методами».

+1

Довольно забавные конструкторы появляются как методы экземпляра в байтекоде. (Распределение объектов выделяется в код с помощью 'new', это позволяет вызывать тот же код конструкторами производных классов.) –

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

  • Нет связанных вопросов^_^