Можно ли сравнивать значение разных типов, таких как byte, short, char, int, long, float, double?
Иначе говоря, будет ли иметь смысл логическая операция:
int x = 6;
byte y = 6;
if(y == x) {
//Код
}
Вопрос возник из-за такой вещи, как совместимость типов. Так же прошу ответить, что случится (если, конечно, случится), если поменять переменные местами в операторе if?
Такой же вопрос, но уже с объектами, классы которых находятся в одной ветке наследования:
public class Dog {
//Код класса
}
public class Son_Of_Dog extends Dog {
//Код
}
public class Test {
public static void main (String[] args) {
Dog d = new Dog;
Son_Of_Dog s = new Son_Of_Dog();
if(d.equals(s)) {
//Код
}
}
}
Для корректной работы сравнения данных разных типов, между ними должна быть возможность неявного преобразования. В частности при сравнении byte и int такая возможность есть. Но вообще я Вам рекомендую самому попробовать поиграть с разными типами, это позволит Вам лучше понять особенности языка и увидеть их в действии. Что касается ссылочных типов, то там при правильной реализации метода equals в Вашем классе порядок сравнения не важен.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости