Фрагмент от лекция с ментор като част от курса на 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