СКТ - Лекция №2
.pdfJava.
Программирование реальных приложений
Сравнение объектов
int int1 = 1; int int2 = 1;
log.info("Q: int1 == int2? A: " + (int1 == int2));
!
Integer integer1 = Integer.valueOf(int1); Integer integer2 = Integer.valueOf(int2);
log.info("Q: Integer1 == Integer2? A: " + (integer1 == integer2));
!
integer1 = new Integer(int1); integer2 = new Integer(int2);
log.info("Q: Integer1 == Integer2? A: " + (integer1 == integer2));
!
Employee employee1 = new Employee(); Employee employee2 = new Employee();
log.info("Q: Employee1 == Employee2? A: " + (employee1 == employee2));
INFO: Q: int1 == int2? A: true
!
INFO: Q: Integer1 == Integer2? A: true
!
INFO: Q: Integer1 == Integer2? A: false
!
INFO: Q: Employee1 == Employee2? A: false
Сравнение с помощью метода equals
Logger l = Logger.getLogger(Employee.class.getName());
!
Integer integer1 = Integer.valueOf(1); Integer integer2 = Integer.valueOf(1);
l.info("Q: integer1 == integer2? A: " + (integer1 == integer2));
l.info("Q: integer1.equals(integer2)? A: " + integer1.equals(integer2));
!
integer1 = new Integer(integer1); integer2 = new Integer(integer2);
l.info("Q: integer1 == integer2? A: " + (integer1 == integer2));
l.info("Q: integer1.equals(integer2)? A: " + integer1.equals(integer2));
!
Employee employee1 = new Employee(); Employee employee2 = new Employee();
l.info("Q: employee1 == employee2? A: " + (employee1 == employee2)); l.info("Q: employee1.equals(employee2)? A: " + integer1.equals(integer2));
INFO: Q: integer1 == integer2? A: true
!
INFO: Q: integer1.equals(integer2)? A: true
!
INFO: Q: integer1 == integer2? A: false
!
INFO: Q: integer1.equals(integer2)? A: true
!
INFO: Q: employee1 == employee2? A: false
!
INFO: Q: employee1.equals(employee2)? A: true
Перегрузка equals
public boolean equals(Object obj) { if (this == obj)
return true; if (obj == null) return false;
if (getClass() != obj.getClass()) return false;
Person other = (Person) obj; if (age != other.age)
return false;
if (eyeColor == null) {
if (other.eyeColor != null) return false;
} else if (!eyeColor.equals(other.eyeColor))
|
return false; |
|
|
if (height != other.height) |
|
||
|
return false; |
|
|
// |
сравнение |
других |
полей |
return true; |
|
|
}
Перегрузка toString
public String toString() {
return "Person [name=" + name + ", age=" + age + ", height=" + height
+", weight=" + weight + ", eyeColor=" + eyeColor + ", gender="
+gender + "]";
}
Исключения
•Исключение - это событие, которое происходит во время выполнения программы, нарушая нормальный ход выполнения ее инструкций.
Пример исключения
private static Logger logger;// =
// Logger.getLogger(Employee.class.getName());
!
public static void main(String[] args) { Employee employee1 = new Employee(); employee1.setName("J Smith"); Employee employee2 = new Employee(); employee2.setName("J Smith");
logger.info("Q: employee1 == employee2? A: " + (employee1 == employee2)); logger.info("Q: employee1.equals(employee2)? A: "
+ employee1.equals(employee2));
}
Блок Try-Catch-Finally
try {
Employee employee1 = new Employee(); employee1.setName("J Smith"); Employee employee2 = new Employee(); employee2.setName("J Smith");
logger.info("Q: employee1 == employee2? A: " + (employee1 == employee2));
logger.info("Q: employee1.equals(employee2)? A: "
+employee1.equals(employee2));
}catch (NullPointerException npe) {
//Обработка...
System.out.println("Ошибка!");
}finally {
//Всегда выполняется