Фрагмент от лекция с ментор като част от курса на Codegym University. Запишете се за пълния курс.


„Бих искал да ви разкажа малко за сравняването на променливи в Java.

„Вече знаете най-простите оператори за сравнение – по-малко от (<) и по-голямо от (>).“

— Да.

„Има и оператори като равно на (==) и неравно на (!=). Както и по-малко or равно на (<=) и по-голямо or равно на (>=).“

"Сега това става интересно."

„Имайте предвид, че в Java няма оператори =< or =>!“

" Знакът = се използва за операции за присвояване. Ето защо два знака за equalsство (==) се използват за тестване на equalsството. За да проверите дали променливите не са равни , използвайте оператора != ."

"Виждам."

„Когато сравняваме две променливи в Java с помощта на оператора ==, ние сравняваме съдържанието на променливите.“

"По този начин, за примитивни променливи , техните стойности се сравняват ."

"За референтни променливи референциите се сравняват . Да предположим, че имаме идентични, но различни обекти. Тъй като референциите към тях са различни , сравнението ще покаже, че те не са равни, т.е. резултатът от сравнението ще бъде неверен . Сравнението на референциите ще бъде истина само ако и двете препратки сочат към един и същ обект. "

"За да сравним вътрешното съдържание на обекти, ние използваме специалния метод equals . Този метод (и всички методи на класа Object) се добавят към вашия клас от компилатора, дори ако не ги декларирате. Нека ви покажа някои примери: "

Код Обяснение
1
int a = 5;
int b = 5;
System.out.println(a == b);
Сравнете примитивните типове.
true ще се покаже на екрана.
2
Cat cat1 = new Cat("Oscar");
Cat cat2 = cat1;
System.out.println(cat1 == cat2);
Сравнете препратките .
true ще се покаже на екрана.
И двете променливи съхраняват препратки към един и същ обект .
3
String s = new String("Mom");
String s2 = s;
System.out.println(s == s2);
Сравнете препратките .
true ще се покаже на екрана.
И двете променливи съхраняват препратки към един и същ обект .
4
Cat cat1 = new Cat("Oscar");
Cat cat2 = new Cat("Oscar");
System.out.println(cat1 == cat2);
Сравнете препратките .
false ще се покаже на екрана.
Двете променливи препращат към идентични Cat обекти, но не към един и същи.
5
String s = new String("Mom");
String s2 = new String("Mom");
System.out.println(s == s2);
Сравнете препратките .
false ще се покаже на екрана.
Двете променливи препращат към идентични String обекти, но не към един и същи.
6
Cat cat1 = new Cat("Oscar");
Cat cat2 = new Cat("Oscar");
System.out.println(cat1.equals(cat2));
Сравнете обекти .
true ще се покаже на екрана.
Двете променливи препращат към идентични Cat обекти
7
String s = new String("Mom");
String s2 = new String("Mom");
System.out.println(s.equals(s2));
Сравнете обекти .
true ще се покаже на екрана.
Двете променливи препращат към идентични String обекти

„О, почти забравих! Ето някои упражнения за вас:“