////
Search
😀

7월 18일(월)

제네릭

제너릭은 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입 체크를 해주는 기능입니다.

제네릭의 장점

1.
타입 안정성을 제공한다.
2.
타입 체크와 형변환을 생략할 수 있으므로 코드가 간결해진다.
class Generic<T> { T item; void setItem(T item) { this.item = item; } T getItem() { return item; }
Java
복사

HashMap의 구조인 key-value쌍으로 구성되어 있다.

그리고 Map의 대표적인 특징은 하나의 key는 정확히 하나의 value만 가질 수 있다는 것입니다
Map의 구조인 key-value쌍으로 구성되어 있다.
그리고 Map의 대표적인 특징은 하나의 key는 정확히 하나의 value만 가질 수 있다.

Hash Map, 배열, Arraylist 비교 정리

종 류
배열
Arraylist
HashMap
생성 방법
int[] arr = new int[10];
List<Integer> list = new ArrayList<>();
Map<String, Integer> map = new HashMap<>();
유연성
크기 변경 불가능
알아서 늘어남
알아서 늘어남
데이터 널을 때
arr[index] = number;
list.add(number):
map.put(”key”, value);
데이터 수정
arr[index] = number;
list.set(index, value);
map.put(”key”, value);
데이터 가져옴
int data = arr[index];
int data = list.get(index);
int data = map.get(”key”);
데이터 지울 때
불가능
list.remove(index);
map.remove(”key”);
데이터 순회
for(int i = 0; i < arr.length; i++) {sout(arr[i]);
for(int i = 0; i < list.size(); i++){sout(arr.get(i)};
for(String key : map.keySet()){ sout(key + “ : “ + arr.get(key));}

인터페이스

인터페이스란?
클래스 다중상속의 장점과 단점은?
장점 : 객체에 다형성을 원하는 만큼 부여할 수 있다.
단점 : 하나의 자식 클래스에 2명 이상의 부모클래스에서 똑같의 형태의 메서드를 2개 이상을 물려받을 수 있다. 이때 자식 클래스에서 해당 메서드를 오버라이드를 하지 않는다면, 모호함이 발생한다. 참고로 자식클래스에서 해당 메서드를 오버라이드 해야할 의무는 없다.
클래스 다중상속에서 나타날 수 있는 문제점을 해결할는 방법은?
자식클래스에서 모호한 메서드를 오버라이드 한다.
인터페이스와 클래스의 차이점은?
인터페이스는 100% 추상클래스 이다.
인터페이스 안에 있는 메서드는 어차피 추상메서드 이기 때문에, abstract 키워드를 메서드 앞에 붙일 필요가 없다.
자바에서 인터페이스 다중상속을 허용한 이유는?
객체지향 프로그래밍에서 다형성은 굉장히 중요하다.
자바에서는 다중상속이 막혀있어서, 자유로운 다형성 부여가 힘든 상황이다.
그래서 자바는 인터페이스라는 제한된 형태의 클래스는 다중상속을 허용했다.
인터페이스를 다중상속 해서, 모호함이 발생해도, 자식 클래스에서 해당 메서드를 오버라이드 해야하는게 필수 이기 때문에, 모호함이 존재할 수 없는 구조이다.