지금까지 공부하면서 이해한 다형성에 대한 설명이다.
추가로 배우거나 다른 방식으로 이해를 하게될 수 있으므로 계속 수정할 예정이다.
Enum은 서로 연관된 상수들의 집합이다.
자바 1.5번전부터 새롭게 추가된 것으로, 상수를 정의할 때 final static String 과 같이 정의할 때 문제를 해결해 준다.
장점으로는
1. 코드가 단순해 진다.
2. 인스턴스 생성과 상속을 방지한다.
3. 의도가 열거임을 분명이 알 수 있다.
public class ExEnum {
public static final String JANUARY = "1";
public static final String FEBRUARY = "2";
public static final String MARCH = "3";
public static void main(String[] args) {
String calendar1;
calendar1 = JANUARY;
//calendar1 = "1"; //내용을 바꿀 수 있다
Calender calender2;
calender2 = Calender.JANUARY;
//calender2 = "1"; //타입이 다르므로 에러가 발생
System.out.println(calender2.nums);
}
}
enum Calender {
JANUARY("1"), FEBRUARY("2"), MARCH("3"); //코드가 단순해 진다
public String nums;
Calender(String nums) { //enum은 사실 클래스이기 때문에 생성자를 가질 수 있다
this.nums = nums;
}
}
내부적으로 보면 아래와 같다
enum Calender {
JANUARY, FEBRUARY, MARCH;
}
//위의 enum Calender는 아래와 같다
class Calender{
public static final Calender JANUARY = new Calender();
public static final Calender FEBRUARY = new Calender();
public static final Calender MARCH = new Calender();
private Calender(){}
}
'프로그래밍 > JAVA' 카테고리의 다른 글
의존성과 의존성 주입(DI) (0) | 2021.07.20 |
---|---|
1차 배열 2차 배열 sort(오름차순, 내림차순) (0) | 2021.07.18 |
추상화 이해 (0) | 2021.07.15 |
객체 지향 5대 원칙 (SOLID 원칙) (0) | 2021.07.14 |
캡슐화 이해 (0) | 2021.07.13 |