inblog logo
|
강재영 블로그
    Dart

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

    강재영's avatar
    강재영
    Sep 26, 2024
    2. 객체를 생성하는 방법 문법
    Contents
    1.기본 생성자 사용 (생성자 파라미터 이용)2. 초기화 리스트 (Initializer List) 사용

    1.기본 생성자 사용 (생성자 파라미터 이용)

    class Cat { String name; int age; String color; int thirsty; Cat(this.name, this.age, this.color, this.thirsty); } void main() { Cat myCat = Cat("Nabi", 2, "White", 10); print(myCat.name); // Nabi }
    이 방식은 매우 간단하고 다트에서 자주 사용되는 객체 생성 방식
    생성자의 매개변수를 바로 클래스 필드에 매핑한다.
     

    2. 초기화 리스트 (Initializer List) 사용

    생성자의 필드를 조건이나 표현식을 이용해 초기화하는 방식입니다.
    class Dog { String name; int age; String color; int thirsty; Dog(String name, int age, String color, int thirsty) : this.name = name == "홍길동" ? "이름없음" : name, this.age = age, this.color = color, this.thirsty = thirsty; } void main() { Dog myDog = Dog("홍길동", 3, "Brown", 5); print(myDog.name); // 이름없음 }
    이 방법은 클래스 필드를 초기화하기 전에 논리나 조건을 적용할 수 있다.
     

    추가적인 객체 생성 방법

    1. 명명된 생성자 (Named Constructor) 사용
      1. 다트에서는 생성자를 명명하여 여러 생성자를 정의할 수 있습니다. 이 방식은 클래스 내에서 다양한 방식으로 객체를 생성할 수 있게 도와줍니다.
        class Cat { String name; int age; String color; int thirsty; Cat(this.name, this.age, this.color, this.thirsty); // Named Constructor Cat.oldCat(this.name) { age = 10; color = "Gray"; thirsty = 5; } } void main() { Cat oldCat = Cat.oldCat("Nabi"); print(oldCat.age); // 10 }
        Cat.oldCat 생성자는 나이 든 고양이를 나타내는 별도의 생성자로, 다른 방식으로 객체를 초기화할 수 있다.
         
    1. 팩토리 생성자 (Factory Constructor) 사용
      1. factory 키워드를 사용하여 팩토리 생성자를 정의하면, 단순히 새 객체를 반환하는 대신 복잡한 로직을 수행하거나 같은 객체를 여러 번 반환하는 등의 처리가 가능합니다.
        dart 코드 복사 class Dog { String name; int age; String color; int thirsty; Dog(this.name, this.age, this.color, this.thirsty); // Factory Constructor factory Dog.createDog(String name) { if (name == "Buddy") { return Dog("Buddy", 5, "Black", 10); } else { return Dog(name, 1, "White", 5); } } } void main() { Dog buddyDog = Dog.createDog("Buddy"); print(buddyDog.age); // 5 }
        팩토리 생성자를 사용하면 객체 생성 시 특정 조건을 체크하고, 이미 존재하는 객체를 반환하거나 새로운 객체를 반환하는 등의 로직을 적용할 수 있다.
    Share article
    Contents
    1.기본 생성자 사용 (생성자 파라미터 이용)2. 초기화 리스트 (Initializer List) 사용

    강재영 블로그

    RSS·Powered by Inblog