inblog logo
|
taker
    dart 기초

    이니셜 라이저 ( : ) 키워드

    김인범's avatar
    김인범
    Dec 23, 2024
    이니셜 라이저 ( : ) 키워드
    notion image
    위 코드에서
    class Burger { //String? name; final String name; //변경 final 추가 Burger(this.name); // final로 인해 반드시 생성될때 값을 받아야함 }
    코드가 변경됐다고 봅시다.
    이렇게 되면 “main( )”을 실행했을 때 오류가 발생합니다.
    CheeseBurger가 생성될 때까지 Burger의 name 값이 초기화 되지 않았기 때문입니다.
     
    오류를 해결하기 위해서는
    class CheeseBurger extends Burger { CheeseBurger(String name) : super(name) { } }
    이니셜라이저를 사용해서 CheeseBurger의 내부 스택이 실행되기 전에
    부모 Burger에게 값을 전달할 수 있게 되어서 오류가 해결됩니다.

    전체코드

    class Burger { final String name; Burger(this.name); } class CheeseBurger extends Burger { CheeseBurger(String name) : super(name) { } } void main(){ CheeseBurger cb = CheeseBurger("치즈Burger"); print(cb.name); }
     
    Share article

    taker

    RSS·Powered by Inblog