참고 영상: https://www.youtube.com/watch?v=G3Edvvp_YpA&list=PLVsNizTWUw7GN8wPRhclbKuQa9aI9Cj2V&index=12
데이터 타입에 관계없이 재사용 가능한 알고리즘이나 자료구조를 작성하는 프로그래밍 패러다임이다.
한 가지 코드를 다양한 데이터 형식에 활용할 수 있다.
주로 제네릭(Generic)이라는 기능을 통해 구현한다.
제네릭은 클래스나 메서드를 일반화시켜 다양한 자료형에 대응할 수 있는 기능이다.
제네릭을 사용하면 코드의 재사용성을 높일 수 있다.
제네릭 클래스나 메서드에서 사용할 자료형은 선언 시점이 아닌 컴파일 단계에 결정된다.
데이터 형식을 일반화한 메서드
메서드 이름 뒤에 형식 매개 변수< > 사이에 일반화 데이터 형식을 입력하여 작성한다.
⚔ 일반화 메서드
void CopyArray<T>(T[] arr, T[] target)
{
for(int i=0; i < arr.Length; i++)
{
target[i] = arr[i];
}
}
⚔ 일반화 메서드 호출
int[] arr = {1,2,3,4,5};
int[] target = new int[arr.Length];
CopyArray<int>(arr, target);
데이터 형식을 일반화한 클래스
클래스 이름 뒤에 형식 매개 변수를 입력하여 작성한다.
⚔ 일반화 클래스
class GenericArray<T>
{
private T[] array;
public T GetElement(int idx)
{ return array[idx]; }
}
⚔ 일반화 클래스 객체 생성하기
클래스 이름 뒤에 형식 매개 변수< > 안에 구체적인 데이터 형식을 입력하여 객체를 생성한다.
GenericArray<int> intArr
= new GenericArray<int>();
GenericArray<double> doubleArr
= new GenericArray<double>();