inblog logo
|
강재영 블로그
    Dart

    3. 객체를 생성하는 방법2 문법

    강재영's avatar
    강재영
    Sep 26, 2024
    3. 객체를 생성하는 방법2 문법
    Contents
    다트에서는 자바와 같은 오버로딩 기능을 제공하지 않는다.선택적 매개변수 {} 중괄호 사용반드시 전달해야하는 required선택적 매개변수에서 **기본값(default value)**을 지정하는 문법

    다트에서는 자바와 같은 오버로딩 기능을 제공하지 않는다.

    💡
    선택적 매개변수와 기본값 설정, 그리고 초기화 리스트를 통해 오버로딩과 비슷한 방식으로 객체를 초기화할 수 있습니다
     

    선택적 매개변수 {} 중괄호 사용

    class person { int? age; String? name; //선택적 매개변수 - dart의 오버로딩 person({ this.age, this.name}); //required는 반드시 값을 넣는다는 말 무조건 받아야함 }
    (Dart)에서 선택적 매개변수는 중괄호 {}로 감싸서 정의되며, 이 경우 해당 매개변수는 객체 생성 시 전달하지 않아도 됩니다. 만약 값을 전달하지 않으면 해당 매개변수의 값은 null로 설정된다.
     
    void main() { Person p1 = Person(); // 매개변수 전달하지 않음 (null 값) Person p2 = Person(age: 25, name: "Alice"); // 모든 매개변수 전달 print(p1.age); // null print(p1.name); // null print(p2.age); // 25 print(p2.name); // Alice }
    결과를 보면 알겠지만 null이 나오니 필드에 ?를 사용해서 null을 허용해야한다.
    또한 선택적 매개변수의 순서를 바꿔도 동작한다. 자바의 bulid와 유사하다
     

    반드시 전달해야하는 required

    class Dog { int age; String name; // 선택적 매개변수와 required 사용 Dog({required this.age, required this.name}); } void main() { Dog myDog = Dog(age: 3, name: "Buddy"); // 정상 // Dog myDog = Dog(age: 3); // 에러: name 값이 빠짐 }

    required의 역할

    선택적 매개변수는 기본적으로 전달하지 않아도 되는 값입니다. 하지만 경우에 따라 특정 필드는 필수로 받아야 할 때가 있습니다. 이때, 선택적 매개변수에 required 키워드를 추가하여 반드시 값이 전달되도록 강제할 수 있습니다.
     

    선택적 매개변수에서 **기본값(default value)**을 지정하는 문법

    class Cat { int? age; String? name; // 선택적 매개변수와 기본값 설정 Cat({this.age, this.name = "토토"}); }
    • this.name = "토토": name 필드는 기본값 "토토"가 지정되어 있습니다. 객체를 생성할 때 name 값을 전달하지 않으면 자동으로 "토토"가 할당됩니다.
    • Nullable 타입인 int?는 null일 수 있는 값이므로, 기본값을 설정하지 않았고, name은 기본값 "토토"가 있습니다. 즉 ? 필요없음
     
     
     
    Share article
    Contents
    다트에서는 자바와 같은 오버로딩 기능을 제공하지 않는다.선택적 매개변수 {} 중괄호 사용반드시 전달해야하는 required선택적 매개변수에서 **기본값(default value)**을 지정하는 문법

    강재영 블로그

    RSS·Powered by Inblog