2016년 8월 24일 수요일

16_08_24

16_08_24(수)

제네릭이 뭘까 (범용적인 방식 ? )

편의성 과 안전성

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객체로 만들어 사용하기 위해서라는 이유 이 외에

메모리를 확보하고 쓸 수 있게 하는 인스턴스화 작업이 밑바탕 되어있는 것이다.

*

댓글 없음:

댓글 쓰기