[오늘의 배움] Java 이것저것
1. 동적/정적 바인딩
다형성 : 객체들이 동일한 메시지를 받아도 각 개체의 타입에 따라 다르게 동작하는 것
오버라이딩 : 실행 타임 다형성 (동적 바인딩)
오버로딩 : 컴파일 타임 다형성 (정적 바인딩)
-
오버라이딩은 실행 타임 다형성이기 때문에, 컴파일 타임 확인 + 가독성을 위해 오버라이딩 하는 메소드 위에 @Override 에너테이션을 붙이는게 좋다.
-
업캐스팅된 객체 메소드 호출 시 서브 클래스에 오버라이딩된 메소드가 무조건 실행된다
2. 유용한 Object 메소드들
- obj.getClass() : 실행 타임에 객체의 클래스 정보를 반환한다
- obj.equals() : 객체 주소 동일한지 검사해 불리언 값을 반환한다
- obj.hashCode() : 객체의 해시 값을 반환한다
- obj.toString() : 객체의 문자열 표현을 반환한다
3. static 메소드의 오버라이딩
static 메소드는 오버라이딩 할 수 없다. 자식 클래스는 부모 클래스의 static 메소드를 포함하지않고 (단 접근은 할 수 있다), 자식 클래스에서 선언한 static 메소드는 별개의 메소드로 상우 클래스의 static 메소드를 '숨기는' 역할을 한다.
4. 예외 처리 자원 반납
예외 처리 시 주의점 : 예외 발생 시 throw하면 자원이 반납되지 않을 수 있기 때문에, finally 블록에서 자원 반납을 한다.
또는 자바 7이상부터 AutoClosable 인터페이스를 구현한 클래스에 대해 try-with-resources를 통해 반납할 수도 있다.
try (자료형 변수 = 초기값) {
...
}
아래는 자주 발생하는 예외들이다. 익숙해지도록 하자.
Author And Source
이 문제에 관하여([오늘의 배움] Java 이것저것), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sangmin7648/오늘의-배움-Java-이것저것저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)