Фрагмент от лекция с ментор като част от курса на Codegym University. Запишете се за пълния курс.
„Бих искал да ви разкажа малко за сравняването на променливи в Java. “
„Вече знаете най-простите оператори за сравнение – по-малко от (<) и по-голямо от (>).“
— Да.
„Има и оператори като равно на (==) и неравно на (!=). Както и по-малко or равно на (<=) и по-голямо or равно на (>=).“
"Сега това става интересно."
„Имайте предвид, че в Java няма оператори =< or =>!“
" Знакът = се използва за операции за присвояване. Ето защо два знака за equalsство (==) се използват за тестване на equalsството. За да проверите дали променливите не са равни , използвайте оператора != ."
"Виждам."
„Когато сравняваме две променливи в Java с помощта на оператора ==, ние сравняваме съдържанието на променливите.“
"По този начин, за примитивни променливи , техните стойности се сравняват ."
"За референтни променливи референциите се сравняват . Да предположим, че имаме идентични, но различни обекти. Тъй като референциите към тях са различни , сравнението ще покаже, че те не са равни, т.е. резултатът от сравнението ще бъде неверен . Сравнението на референциите ще бъде истина само ако и двете препратки сочат към един и същ обект. "
"За да сравним вътрешното съдържание на обекти, ние използваме специалния метод equals . Този метод (и всички методи на класа Object) се добавят към вашия клас от компилатора, дори ако не ги декларирате. Нека ви покажа някои примери: "
Код | Обяснение | |
---|---|---|
1 |
|
Сравнете примитивните типове. true ще се покаже на екрана. |
2 |
|
Сравнете препратките . true ще се покаже на екрана. И двете променливи съхраняват препратки към един и същ обект . |
3 |
|
Сравнете препратките . true ще се покаже на екрана. И двете променливи съхраняват препратки към един и същ обект . |
4 |
|
Сравнете препратките . false ще се покаже на екрана. Двете променливи препращат към идентични Cat обекти, но не към един и същи. |
5 |
|
Сравнете препратките . false ще се покаже на екрана. Двете променливи препращат към идентични String обекти, но не към един и същи. |
6 |
|
Сравнете обекти . true ще се покаже на екрана. Двете променливи препращат към идентични Cat обекти |
7 |
|
Сравнете обекти . true ще се покаже на екрана. Двете променливи препращат към идентични String обекти |
„О, почти забравих! Ето някои упражнения за вас:“
GO TO FULL VERSION