내일배움캠프 33일차 TIL : Java - Generic, Interface

김원기·2024년 6월 10일

TIL

목록 보기
37/42
post-thumbnail

내일배움캠프 33일차 TIL : Java - Generic, Interface

Interface

인터페이스는 다음과 같은 장점이 존재한다.

  • 다형성 : 다양한 클래스들이 동일한 방식으로 동작할 수 있게 (제한) 할 수 있다.
  • 코드 재사용성 : 공통 기능을 한 곳에 정의하고 여러 클래스에 재사용하게 하여 중복을 줄일 수 있다.
  • 유지보수성 : 코드의 구조를 명확히 하여 각 클래스가 어떤 기능을 제공하는지 쉽게 이해할 수 있다.
  • 의존성 감소 : 클래스 간의 의존성을 감소할 수 있다.
  • 다중 상속 : 자바에서 제공하지 않는 다중 상속을 인터페이스를 사용하여 구현할 수 있다.

Generic

다형성

제네릭 없이 다형성만을 활용하여 코드를 작성한다면 코드의 중복을 제거하여 기존 코드의 재사용성을 높일 수 있다.

하지만, 다형성만을 사용한다면 타입 안정성에 문제가 발생한다.

타입 안정성 문제를 해결하기 위해 제네릭을 사용한다.

제네릭

  • 제네릭은 특정 타입에 제한되지 않고, 범용적으로 사용할 수 있다.
  • 제네릭 클래스는 타입을 미리 결정하지 않고 실제로 생성되는 시점에 타입을 결정한다.
public class GenericStore<T> {
	
	private T field;
	
	public void setField(T field) {
		this.field = field;
	}
	
	public T getField() {
		return field;
	}
	
}
public class Main {

	public static void main(String[] args) {
	
		// T의 Type이 결정되는 순간
		GenericStore<Integer> integerStore = new GenericStore<Integer>();
		
		// Compile 오류 발생
		integerStore.setField("Sparta");
		
		integerStore.setField(1000);
		
	}
}

제네릭은 컴파일러가 T에 대한 타입 정보를 작성한 코드에 맞춰 적용한다.

profile
혼자 공부하는 블로그라 부족함이 많아요 https://www.notion.so/18067a27ac7e4f4790dde645fb3bf3d3?pvs=4

0개의 댓글