#Object클래스
자바의 모든 클래스의 최상위 조상(부모) 클래스는 object 클래스입니다.
모든 타입은 object 클래스는 기본 데이터 타입을 객체화 시킨 Wrapper type으로 대입받을 수 있습니다.
- Object obj 어떠한 타입을 보내도 모든 내용을 저장할 수 있음
예시 1)
● box1.getValue(); 는 Object 객체이기 때문에 괄호안에 타입을 적어준것이다.!
이렇게 할 경우 값이 손실되거나 잘못된 결과가 나오는 문제가 생길 수 있다. 사용을 권장하지 않는다.!
#제네릭(generic)
다양한 타입의 객체에 재사용을 높일 수 있는 기법으로 클래스에서 사용할 타입을 외부에서 설정하는 것을 말합니다.
● 장점
1. 반복적인 코드, 불필요한 코드를 사용하지 않도록 재활용이 가능합니다.
2. 강제적인 타입변환이 발생하지 않습니다.
● 사용방법
클래스 또는 인터페이스에 < >를 붙이고 타입파라미터를 지정합니다.
예제에서 사용된 'T'를 타입 변수(type variable)라고 하며, 임의의 참조형 타입을 의미합니다.
꼭 'T'뿐만 아니라 어떠한 문자를 사용해도 상관없으며, 여러 개의 타입 변수는 쉼표(,)로 구분하여 명시할 수 있습니다.
타입 변수는 클래스에서뿐만 아니라 메소드의 매개변수나 반환값으로도 사용할 수 있습니다.
예시 1)
위 Object클래스와 비교하여 확인하면 이해하기 쉽다!
● 제네릭 클래스를 생성할 때 사용할 실제 타입을 명시하면, 내부적으로는 정의된 타입 변수가 명시된 실제 타입으로 변환되어 처리됩니다.
'🎨 Programming > JAVA' 카테고리의 다른 글
[JAVA] 22. List 컬렉션 클래스 - ArrayList (0) | 2021.03.18 |
---|---|
[JAVA] 21. 컬렉션 프레임워크(Collection Framework) - Vector (0) | 2021.03.18 |
[JAVA] 19. 래퍼클래스(Wrapper Class) (0) | 2020.06.29 |
[JAVA] 18. 인터페이스(interface) (0) | 2020.06.29 |
[JAVA] 17. 추상클래스(abstract) (0) | 2020.06.29 |