본문 바로가기
버킷리스트/앱 만들기

오공완(with 코드팩토리) #22, #23 (super, this, interface)

by 또또도전 2024. 6. 28.
반응형

 

# 이곳에 쓴 내용은 앱 만들기라는 버킷리스트를 달성하기 위해 플러터를 공부하면서 정리하고 있는 내용입니다.

플러터에 대해 아는 것이 거의 없기 때문에 정리하면서 오류가 있을 수 있습니다.

오류를 발견하신 분은 댓글 남겨 주시면 감사하겠습니다.

 

  super, this 구분

 

super는 부모의 값을 불러오는 것이고, this는 자식 함수 내의 값을 불러오는 것 정도로만 이해함.

void main() {
  Engineer codeFactory = new Engineer(
    languages: ['Dart', 'Java', 'Javascript'],
    name: '코드팩토리',
    building: '여의도 위워크',
  );
  
  print(codeFactory.name);
  print(codeFactory.building);
  print(codeFactory.languages);
  
  codeFactory.sayInfo;
  codeFactory.sayName;
}

class Employee {
  final String building;
  final String name;

  Employee(
    String building,
    String name,
  )   : this.building = building,
        this.name = name;
}

class Engineer extends Employee {
  List<String> languages;
  String name;

  Engineer({
    List<String> languages,
    String name = 'null',
    String building = 'null',
  })  : this.languages = languages,
        super(
          building,
          name,
        );
  
  void sayInfo(){
    print('저의 이름은 ${super.name}입니다. 제가 근무하는 건물은 ${this.building}입니다. 제가 사용할 수 있는 언어들은  ${this.languages.join(',')}입니다.');
  }
  
  void sayName(){
    print('this.name은 ${this.name}, super.name은 ${super.name}');
  }
}

 

오늘도 등장한 null 어쩌고.. 처음부터 null 값도 넣어봤다. 리스트 스트링에서 null값은 어떻게 지정해야 하는지는 모르겠다.

댓글로 문의해 봤는데, 책에서는 설명이 되어 있다고 하니 얼른 유튜브 끝내고 책으로 돌아가야겠다.

 

  interface

 

아래는 String에 null을 넣어서 해결했다.

interface를 사용하는 이유는 클래스를 선언할 때, 특정 변수와 특정 함수를 갖고 있어야 한다는 것을 가정할 때 사용한다고.. 강제시킨다라고 생각하면 된다고..

 

오늘도 이렇게 끄읏~

뭔 소리인지는 모르겠으나 이제 쬐금씩 중복되는 것들이 보인다.

아직도 처음에 배웠던 List를 선언하는 방법 등이 떠오르지 않지만 이렇게 반복하다 보면 쬐금씩 머리에 남겠지~^^;;

반응형