240729 내일배움캠프 백엔드 Java 6기 TIL : Java문법 종합반 5일차 : 인터페이스, 예외처리, 제네릭

박대현·2024년 7월 29일
0

1. 인터페이스

public class 클래스명 implements 인터페이스명 { 
			// 추상 메서드 오버라이딩
			@Override
	    public 리턴타입 메서드이름(매개변수, ...) {
			       // 실행문
	    }
}
  • 반드시 오버라이딩 되어야한다.
  • 추상과의 비교
    • 추상 : 코딩중 또는 코딩 후 - 이러이러한 기능의 메서드들이 공통으로 쓰이네? 모으자 (후처리 성격)
    • 인터페이스 : 코딩전 - 이러이러한 기능의 메서드들을 공통적으로 쓸거야! 설계를 미리하자 (전처리 성격)

2. 예외처리

A. 오류 vs 예외

  • 오류 : 회복이 불가능
  • 예외 : 회복이 가능 - 미리 예상하고 대처가 가능하다는 전제.
    • 코드 실행 관점에서의 예외
      • 컴파일 에러 : Java 문법을 지키지 않았을 때
      • 런타임 에러 : 프로그램 실행도중 맞닥뜨리는 문제
    • 예외처리 관점에서의 예외
      • checked Exception : 미리 예상하고 대처하여, 컴파일 시점에서 제대로 대처했는지 확인할 수 있는 예외
      • unchecked Exception : 예상하지못해, 런타임 시점에서 확인되는 예외

B. 명령어

  • throws : 메서드 선언 끝에 연장하여 사용. '에러 있을수 있어!'라는 경고의 의미
  • throw : 메서드 내부에서 사용. 실제로 에러가 났을때 예외를 던짐.
  • try ~ catch ~ finally
    • try : 예상가능한 오류가 포함되어있는 메서드(throws의 대상) 내부에서 쓰는 예외처리 시작명령어
    • catch : 오류가 발생했을때, 해당 라인 코드내용을 실행
    • finally : catch가 실행되면 그 아래에 있는 코드들은 스킵되는데, finally를 써서 반드시 실행되어야하는 코드를 실행시킬 수 있음

3. 제네릭

A. 효용

  • 중복되거나 필요없는 코드를 줄여주는 것
  • 타입 안정성 보장

B. 문법

// 1.
public class Generic<T> { // 원시타입인 제네릭 클래스
		// 2.
    private T t;
    // 3.
    public T get() {
        return this.t;
    }

    public void set(T t) {
        this.t = t;
    }

    public static void main(String[] args) {
				// 4.
        Generic<String> stringGeneric = new Generic<>(); //<타입변수>
				// 5.
        stringGeneric.set("Hello World");
				
        String tValueTurnOutWithString = stringGeneric.get();

        System.out.println(tValueTurnOutWithString);
    }
}
  • 제한 : static 멤버에 사용불가, 제네릭 배열은 X

0개의 댓글