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

김인범'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