2013-09-28 4 views
1

Полагаю, я понимаю, какие конструкторы сейчас, но для меня кажется, что они просто используются для передачи информации методам в другом классе. Так почему бы просто не вызвать метод и не указать параметр? У меня это случилось?В чем разница между конструкторами и параметрами передачи?

+1

Знаете ли вы, что представляют собой объекты? Конструкторы используются для создания объектов. –

+0

Вы также можете почитать: http://docs.oracle.com/javase/tutorial/java/javaOO/constructors.html Я считаю, что это хорошо объяснено там – pedromss

+0

Да, я считаю, что понимаю, что такое объект, я также думаю На данный момент я получаю то, что они используют. Является ли это хорошим примером того, для чего я должен их использовать? http://pastebin.com/N0YFzQtE –

ответ

2

Конструкторы используются для создания объектов и не являются обычными методами. Всякий раз, когда вы создаете объект new, вы фактически вызываете конструктор. Например:

new MyClass(); //here MyClass() is a constructor with no params 

Note:

Конструкторы заявления выглядят как метод декларации, за исключением того, что они используют имя класса и не имеет типа возвращаемого

+0

Да, я понимаю это, но я говорю, что они ultimatley используются для передачи параметров классу, которые затем могут использоваться всеми методами в этом конкретном классе? –

+0

@ChrisLondon Как настроить значения переменных-членов без создания объекта? Если у вас есть все статические члены, вы можете использовать простые методы. –

+0

@ChrisLondon: эти «параметры» обычно заканчивают определение * состояния * объекта, т. Е. «Это сущность» или «что это такое». Они * могут считаться «просто параметрами для всех его методов», но это очень узкий вид. –

0

Если я понимаю справа:

Конструкторы всегда называются, поэтому эти атрибуты ДОЛЖНЫ быть переданы. Если вы передаете эту информацию с помощью методов, их не нужно передавать, поэтому они могут отсутствовать.

+0

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

0

Конструкторы используются для инициализации нового экземпляра объекта, когда вы передаете параметры или нет.

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

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

+0

Конструкторы используются для * инициализации * объектов, происходит создание * до того, как вызывается конструктор. –

+0

Правильно, спасибо :) – ssantos

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