객체지향 프로그래밍(OOP)

Java 내장 객체지향 기능 활용 가이드: Enum과 Record 쉽게 배우기

CodeCaine Explorer 2024. 12. 19. 19:21
728x90
반응형
SMALL

안녕하세요! 😊
오늘은 Java에서 제공하는 내장 객체지향 기능Enum(열거형)Record(레코드)에 대해 알아볼 거예요.
이 두 가지는 자주 사용되지는 않지만, 알아두면 개발 속도를 높이고 코드를 간결하게 만드는 데 큰 도움이 됩니다.
조금 어려울 수도 있지만, 하나씩 따라오다 보면 이해할 수 있을 거예요! 💪


1. Enum(열거형)이란? 🌈

Enum상수 집합을 정의할 때 사용됩니다.

  • 👉 비유: "계절(봄, 여름, 가을, 겨울)"처럼 고정된 값의 목록을 정의하는 것.
  • 일반적으로 관련된 상수 값들을 그룹화하고 싶을 때 사용됩니다.

특징

  1. 값(상수)이 고정되어 있습니다.
  2. 각 상수는 고유한 객체입니다.
  3. 코드 가독성을 높이고 실수를 줄여줍니다.

예제: 요일 정의하기

// Enum 정의
enum Day {
    MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}

public class EnumExample {
    public static void main(String[] args) {
        Day today = Day.WEDNESDAY; // 오늘의 요일

        // Enum 값을 출력
        System.out.println("오늘은: " + today);

        // Enum 값 비교
        if (today == Day.WEDNESDAY) {
            System.out.println("수요일은 팀 미팅 날입니다!");
        }
    }
}

동작 설명:

  1. Day Enum은 요일을 상수 값으로 정의합니다.

  2. today 변수에 Day.WEDNESDAY를 할당합니다.

  3. if 조건문을 사용해 오늘이 수요일인지 확인하고 메시지를 출력합니다.

  4. 출력:

    makefile코드 복사오늘은: WEDNESDAY
    수요일은 팀 미팅 날입니다!

2. Record(레코드)란? 🗂️

Record는 데이터를 담는 작고 간결한 클래스를 쉽게 정의할 수 있도록 Java 14에서 도입된 기능입니다.

  • 👉 비유: 이름과 나이를 저장하는 "정보 카드".
  • 일반적인 클래스를 작성할 때 필요한 생성자, getter, toString, equals, hashCode 등을 자동으로 만들어줍니다.

특징

  1. record 키워드를 사용합니다.
  2. 불변 객체(immutable)를 만들 때 적합합니다.
  3. Java 14 이상에서 사용 가능합니다.

예제: 학생 정보 저장하기

// Record 정의
record Student(String name, int age) {}

public class RecordExample {
    public static void main(String[] args) {
        // Record 객체 생성
        Student student = new Student("Alice", 20);

        // Record의 필드 값 가져오기
        System.out.println("학생 이름: " + student.name()); // getter처럼 사용
        System.out.println("학생 나이: " + student.age());

        // Record 객체 출력 (toString 자동 생성)
        System.out.println("학생 정보: " + student);
    }
}

동작 설명:

  1. record Student는 이름과 나이를 저장하는 레코드입니다.

  2. new Student("Alice", 20)로 객체를 생성합니다.

  3. name()age()로 필드 값을 가져옵니다.

  4. 출력:

    less코드 복사학생 이름: Alice
    학생 나이: 20
    학생 정보: Student[name=Alice, age=20]

Enum과 Record 비교 🧐

특징 Enum(열거형) Record(레코드)
목적 고정된 상수 값 집합 정의 간결하고 불변한 데이터 객체 생성
사용 키워드 enum record
필드 수정 불가능 (고정된 상수) 불가능 (불변 객체)
주요 용도 상태, 옵션, 카테고리 정의 데이터를 저장하고 처리하는 간단한 클래스 생성

이해가 어렵다면? 😅

처음에는 "왜 Record를 쓰지?" 같은 의문이 들 수 있어요.
🔑 팁:

  • Enum값의 범위가 정해진 경우 사용하세요. (예: 계절, 요일)
  • Record간단한 데이터 저장소가 필요할 때 사용하세요.

직접 코드를 실행해 보면서 enumrecord의 특징을 확인해 보세요! 😊


왜 중요한가요?

  1. Enum은 코드 가독성을 높이고 오류를 줄입니다.
  2. Record는 간결한 데이터 클래스를 제공해 생산성을 높입니다.
  3. 이 두 기능은 Java에서 객체지향 프로그래밍을 더욱 강력하게 지원합니다.

오늘도 학습하느라 정말 고생 많으셨어요! 😊
조금씩 배워가다 보면, Enum과 Record도 자연스럽게 이해할 수 있을 거예요. 항상 여러분의 성장을 응원합니다. 화이팅! ❤️

반응형
SMALL