제네릭이 뭘까 (범용적인 방식 ? )
편의성 과 안전성
ex) 인터넷 게시판 한 QnA 가 클래스 이다. 그것은 다른사람이 클래스로 정의 했고 , 우리는 그것을 정확하게 알 수 없다. 그것을 우리의 형태로 재정의 하기 위해 제네릭이 필요하다.
제네릭 메소드와 배열
와일드 카드 ?
(실무에서는 별로 쓸일이 없다)
확장성 ( 메서드 수준까지 )
<? extends Fruit>
ex) class name<A<String> , B<Integer>> extends C<D<Double>>
이란 클레스 선언을 할때
와일드 카드는 class name<?> 이런식으로 선언하면 편하지만
가독성이 매우 떨어진다 (어떤 클레스를 상속 받고 사용할지 모름)
컬렉션 프레임워크
List
Set
Map
-키와 값의 쌍으로 이러우진 데이터의 집합
Vector / ArrayList
-둘이 비슷함
크기 번경 x , 순서가 있음
*https://opentutorials.org/module/516/5400 인스턴스에 대한 설명
*자바에서 인스턴스라는 말이 자주나오는데 그냥 코딩을 하는데 실질적으로
들어가는 내용이라기보다 전반적으로 알고있어야 하는 부수적인 내용이라고
생각하고 그냥 나올때마다 아 ~ 인스턴스를 생성하는구나 하고
넘어만 가다가 오늘 아침에 문득 아니근데 인스턴스가 뭔데? 라는 의문이 들어서
검색해 보았다.
class A {
}
클래스가 있다면 이 클래스를 사용하는 클래스에서는
A a = new A(); 이런식으로 클래스 선언을 할 것이다.
바로 이것이 클래스를 인스턴스화 시킨 것이다.
a라는 객체를 사용하기전에 그것이 무엇인지 정의해 놓는 것이다. 이렇게 해야만
실질적으로 정의되어있는 내용을 메모리에 올려서 사용할 수 있기 때문이다.
정리 해보면 A라는 클래스를 사용하려면 A a = new A(); 라고 선언을 하지만
이는 단순히 A클래스를 a객체로 만들어 사용하기 위해서라는 이유 이 외에
메모리를 확보하고 쓸 수 있게 하는 인스턴스화 작업이 밑바탕 되어있는 것이다.
*
댓글 없음:
댓글 쓰기