- @는 어노테이션으로 일종의 메소드의 기능을 하는 메타정보라고 보면 된다. 여기서 @Override 어노테이션은 상속받아 만든 override한 메소드인지 확인을 하며 만약 아니라면 컴파일 에러를 띄운다.
Person kim = new Person("홍길동",35); Person park = new Person(new String("홍길동"),35); Person heo = new Person("홍길동",34); if(kim.equals(park)) System.out.println("같은사람입니다."); else System.out.println("다른사람입니다."); if(kim.equals(heo)) System.out.println("같은사람입니다."); else System.out.println("다른사람입니다.");
같은사람입니다. 다른사람입니다.
class Person{ private String name; private int age; public Person(String name, int age) { this.name = new String(name); this.age = age; } @Override public boolean equals(Object obj) { Person person = (Person) obj; if(name.equals(person.name) && age == person.age) return true; return false; } } public class PersonMain { public static void main(String[] args) { Person kim = new Person("홍길동", 35); Person park = new Person("홍길동", 35); Person heo = new Person("홍길동", 34); if(kim.equals(park)) System.out.println("같은 사람입니다."); else System.out.println("다른 사람입니다."); if(kim.equals(heo)) System.out.println("같은 사람입니다."); else System.out.println("다른 사람입니다."); } }
같은 사람입니다. 다른 사람입니다.
- 런타임 에러가 발생했을 시 예외처리를 하기 위해 사용하는 문법.
보통try { } catch(Exception e){ } finally { }
이런 문법으로 나타내며 finally는 생략해도 무방하다.