1. 매개변수의 다형성
( 위와 같은 클래스들이 있다고 가정해보자. )
( Product는 Tv, Computer, Audio의 조상이다. )
( Buyer 클래스는 Tv, Computer, Audio를 구입하는 사람을 표현한 것이다. )
( 그런 다음, 위와 같이 Buyer 클래스에 buy 메서드를 오버로딩을 해주었다. )
( 하지만 제품의 종류가 늘어날 때마다 buy 메서드를 계속 오버로딩을 해주어야 된다. )
( 그래서 위와 같이 매개변수에 다형성을 추가해주면 코드가 간결해진다. )
2. 예제(1) - 매개변수에 다형성을 활용
3. 예제(2) - 매개변수에 다형성을 여러 종류의 객체 배열로 다루어 보기.
( 예제(1)과 Buyer 클래스와 main 클래스에서 수정이 되었다. )
( 수정한 결과 Product[] item = new Product[10]인 경우에 상품을 10개만 가능하고 11개 이상은 불가능하다는 것이다. )
( 그래서 우리는 이것을 가능하게 하기 위해서 예제(3)에서 Vector 클래스를 사용한다. )
* Vector 클래스란?
- 동적으로 크기가 관리되는 객체 배열이다.
- 내부적으로 Object 타입의 배열을 가지고 있어서, 이 배열에 추가하거나 제거할 수 있게 작성되어 있다.
- 또한, 배열의 크기를 알아서 관리해주기 때문에 저장할 인스턴스의 개수에 신경 쓰지 않아도 된다.
4. 예제(3) - Vector를 이용하여 예제(2) 수정하기.
(정리)
- Vector item = new Vector();
- item.add(참조변수); 는 참조변수를 Vector 배열에 추가하기.
- item.remove(참조변수); 는 해당 참조변수를 Vector 배열에 제거하기.
- item.get(인덱스); 는 해당 인덱스 위치에 있는 Vector 배열을 가져오기.
( 이 때, 주의할 점은 업 캐스팅인지 다운 캐스팅인지 판별한 후, 형변환을 명시해줘야 되는지 확인한다. )
- item.size(); 는 Vector 배열의 개수 가져오기.
- item.isEmpty(); 는 Vector 배열에 저장되어 있는 객체가 비어있는지 확인한다.
--> add, remove, isEmpty의 반환타입은 boolean이다.
'자바 > 기본적인 개념' 카테고리의 다른 글
인터페이스 (0) | 2021.12.08 |
---|---|
추상 클래스(abstract class) (0) | 2021.12.07 |
다형성(2) (0) | 2021.03.29 |
instanceof 연산자 (0) | 2021.01.14 |
다형성(1) (0) | 2021.01.12 |