추상 클래스
- 클래스가 설계도라면 추상클래스는 '미완성 설계도'
- 추상메서드(미완성 메서드)를 포함하고 있는 클래스
- 추상메서드 : 선언부만 있고 구현부(몸통, body)가 없는 메서드
인터페이스 (interface)
- 일종의 추상클래스, 추상클래스 보다 추상화 정도가 높음
- 실제 구현된 것이 전혀 없는 기본 설계도 (알맹이 없는 껍데기)
- 추상메서드와 상수만을 멤버로 가질 수 있다.
- 인스턴스를 생성할 수 없고, 클래스 작성에 도움을 줄 목적으로 사용
- 미리 정해진 규칙에 맞게 구현하도록 표준을 제시하는 데 사용
인터페이스 상속
- 인터페이스도 클래스처럼 상속이 가능하다. (클래스와 달리 다중상속 허용)
- 인터페이스는 Object클래스와 같은 최고 조상이 없다.
인터페이스의 구현
- 인터페이스를 구현하는 것은 클래스를 상속받는 것과 같다. 다만, extends 대신 implements를 사용한다.
- 인터페이스에 정의된 추상 메서드를 완성해야 한다.
- 상속과 구현이 동시에 가능
내부 클래스
- 클래스 안에 선언된 클래스
- 특정 클래스 내에서만 주로 사용되는 클래스를 내부 클래스로 선언한다.
- GUI어플리케이션(AWT, Swing)의 이벤트처리에 많이 사용된다.
ex) - 잘 쓰는 케이스는 아니다
- 내부 클래스 중 인스턴스 클래스 메모리 누수 등
- 문제가 발생할 수 있어서 특별한 경우가 아니면 잘 안쓴다
- 내부 클래스의 장점
- 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있다.
static 내부 클래스
예외처리
- 컴파일 에러(compile-time error)와 런타임 에러 (runtime error)
* 컴파일 에러 - 컴파일할 때 발생하는 에러
- 런타임 에러 - 실행할 때 발생하는 에러
- 논리적 에러 - 의도와 다르게 동작(실행시)
예외처리의 정의와 목적
- 에러(error)는 어쩔 수 없지만, 예외(exception)는 처리해야 한다.
- 에러(error) - 프로그램 코드에 의해서 수습될 수 없는 심각한 오류
- 예외(exception) - 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류
예외처리(exception handling)의
- 정의 - 프로그램 실행 시 발생할 수 잇는 예외의 발생에 대비한 코드를 작성하는 것
- 목적 - 프로그램의 비정상 종료를 막고, 정산적인 실행상태를 유지하는 것
예외처리구문 - try-catch
finally
- 예외의 발생여부와 관곙벗이 실행되어야 하는 코드를 넣는다.
- 선택적으로 사용할 수 있으며, try-catch-finally의 순서로 구성된다.
- 예외 발생시, try -> catch -> finally의 순서로 실행되고 예외 미발생시, try -> finally의 순서로 실행된다.
스프링에서 많이 하는 구문
throws
- 예외를 처리히ㅏㄴ 후에 다시 예외를 생성해서 호출한 메서드로 전달하는 것
- 예외가 발생한 메서드와 호출한 메섣, 양쪽에서 예외를 처리해야 하는 경우에 사용
사용자 정의 예외 만들기
- 기존의 예외 클래스를 상속받아서 새로운 예외 클래스를 정의할 수 있다
String 클래스
수학관련 클래스
- 수학계산에 유용한 메서드로 구성되어 있다(모두 static 메서드)
wrapper클래스