Dart/OOP

Dart 메서드의 매개변수 타입으로 클래스 사용하기

codeJunH 2024. 8. 31. 19:12

Dart에서는 메서드의 매개변수 타입으로 클래스를 사용할 수 있다.

이를 통해 메서드가 특정 클래스의 인스턴스를 매개변수로 받도록 지정할 수 있다.

이 글에서는 일반 클래스와 열거형 클래스를 메서드의 매개변수 타입으로 사용하는 방법과 이점에 대해 알아보겠다.

 

 

일반 클래스를 매개변수 타입으로 사용하기

다음은 Idol 클래스와 introduce 메서드를 사용한 예제이다:

실행 결과:

안녕하세요, 제 이름은 제니이고 28살입니다.

위 예제의 주요점:

  • 위 예제에서 Idol 클래스는 name과 age 속성을 가지고 있다.
  • introduce 메서드는 Idol 클래스를 매개변수 타입으로 받아 해당 인스턴스의 name과 age 속성을 사용하여 소개 문장을 출력한다.
  • main 함수에서는 Idol 클래스의 인스턴스 '제니'을 생성하고, 이를 introduce 메서드의 인수로 전달한다. 이때 introduce 메서드는 Idol 클래스의 인스턴스만 받을 수 있기 때문에 타입 안정성이 보장된다.

 

 

열거형 클래스를 매개변수 타입으로 사용하기

열거형(enum) 클래스를 메서드의 매개변수 타입으로 사용하면 미리 정의된 상수 값 중 하나를 전달하도록 강제할 수 있다.

 

다음은 Idol 클래스와 Year 열거형 클래스를 사용한 예제이다:

실행 결과:

안녕하세요, 블랙핑크입니다.
블랙핑크는 Year.y2016년에 데뷔했습니다.
블랙핑크는 Year.y2020년에 데뷔했습니다.

위 예제의 주요점:

  • 위 예제에서 Year 열거형 클래스는 y2016, y2018, y2020의 세 가지 상수 값을 가지고 있다.
  • Idol 클래스는 name, debutYear의 두 가지 속성을 가지고 있다. 이 중 debutYear 속성은 Year 열거형 클래스 타입이다.
  • Idol 클래스의 생성자에서는 name, membersCount, debutYear를 매개변수로 받아 인스턴스를 초기화한다.
  • introduce 메서드는 아이돌 그룹의 이름을 출력한다.
  • introduceWithYear 메서드는 Year 열거형 클래스를 매개변수로 받아 해당 연도에 데뷔했다는 메시지를 출력한다.
  • introduceWithYear 메서드에 열거형 클래스에 맞는 매개변수를 넣지 않으면 오류가 난다.  

  • main 함수에서는 Idol 클래스의 인스턴스 blackPink를 생성하고, introduce와 introduceWithYear 메서드를 호출하여 결과를 출력한다.

 

 

클래스를 매개변수 타입으로 사용하는 이점

클래스를 메서드의 매개변수 타입으로 사용하면 다음과 같은 이점이 있다:

  1. 타입 안정성 확보
    • 메서드의 매개변수 타입을 클래스로 지정하면 해당 클래스의 인스턴스만 전달할 수 있다.
    • 이를 통해 잘못된 타입의 인수가 전달되는 것을 방지할 수 있다.
  2. 코드 가독성 향상
    • 매개변수의 타입을 명시하면 메서드가 어떤 타입의 인수를 기대하는지 명확히 알 수 있다.
    • 이는 코드의 가독성을 높이고 유지보수를 용이하게 한다.
  3. IDE 지원 활용
    • 클래스를 매개변수 타입으로 사용하면 IDE의 자동 완성 및 타입 검사 기능을 활용할 수 있다.
    • 이는 개발 과정에서 실수를 줄이고 생산성을 향상시킨다.