2013-11-29 2 views
-2

В чем разница между , в которой объявляются и , определяющие в Java.Объявление vs Defining - Java

Я пытаюсь найти правильный ответ, но я не могу его получить.

Просьба пояснить.

+2

[здесь] (http://stackoverflow.com/questions/11715485/what-is-the-difference-between-declaration-and-definition-in-java) - ваш ответ – Nishant

+0

Нет четкого различия в Java, поскольку эти термины заимствованы из таких языков, как C или C++, где вы должны объявить поле или метод, прежде чем сможете его использовать. В Java вам не обязательно это делать. –

ответ

3
String str; //declaraing 
str = "My String"; //defining 
+3

не является вторым, объявляющим * и * определяющим? – Bathsheba

+1

Вторая заявка * и * определение. – arshajii

+1

Yup. Виноват. Modified. –

0

Объявление переменной просто создает память для переменной и присваивает ей значение по умолчанию. i.e int x;

Поскольку вы не определили значение для х, то по умолчанию будет равен 0.

Определение переменной декларирует с начальным значением т.е. межд х = 5;

1

Когда вы объявляете переменную, функция или даже класс, который вы делаете, говорят: есть что-то с этим именем и имеет этот тип. Затем компилятор может обрабатывать большинство (но не все) использования этого имени, не требуя полного определения этого имени. Объявление значения - без его определения - позволяет вам писать код, который может понять компилятор, не прикладывая все детали. Это особенно полезно, если вы работаете с несколькими исходными файлами, и вам нужно использовать функцию в нескольких файлах. Вы не хотите, чтобы тело функции было в нескольких файлах, но вам нужно предоставить объявление для него.
Что означает определение переменной, точно? Это означает, что вы сообщаете компилятору, где создать хранилище для этой переменной.
Декларация vs Определение: В резюме

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

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