[Flutter] 스나이퍼팩토리 Flutter 중급과정 (2)

GONG·2023년 4월 23일
0
post-thumbnail

23일차 과제 링크 👉 23일차 과제

fromMap()

  • Map 객체를 사용하여 클래스의 인스턴스를 생성하는 방법
    class Word {
      String word;
      String meaning;
      String example;
    
      // 기본 생성자
      Word({
        required this.word,
        required this.meaning,
        required this.example,
      });
      
      // 이름 있는 생성자 (fromMap)
      Word.fromMap(Map<String, dynamic> map)
        : word = map['word'],
          meaning = map['meaning'],
          example = map['example'];
    
      
      String toString() => 'Word($word / $meaning / $example)';
    }
    
    void main() {
      Map<String, dynamic> networkData = {
        'word': 'Apple',
        'meaning': '사과',
        'example': 'can i get an apple?',
      };
    
      var word = Word.fromMap(networkData);
      print(word);// Word(Apple / 사과 / can i get an apple?)
    }

toMap()

  • 클래스 인스턴스를 Map 객체로 변환하는 방법
    // 클래스의 멤버 함수 (toMap)
    Map<String, dynamic> toMap() => {
      'word': word,
      'meaning': meaning,
      'example': example,
    };
    
    ...
    
    print(word.toMap());  // {word: Apple, meaning: 사과, example: can i get an apple?}

Override

  • 부모 클래스나 인터페이스에 선언된 메서드를 재정의
  • 개발자가 원하는 방식으로 메서드의 기능을 변경하거나 확장할 수 있음

toString()

  • Object 클래스의 toString 메서드를 재정의 (override)
  • 클래스 인스턴스를 문자열로 변환하는 방법
    
    String toString() => 'Word($word / $meaning / $example)';

operator

  • 객체 간의 연산을 정의한 메서드를 오버로딩하여 사용하는 것
    class Word {
      String word;
      String meaning;
      String example;
    
      // 기본 생성자
      Word({
        required this.word,
        required this.meaning,
        required this.example,
      });
    
      
      String toString() => 'Word($word / $meaning / $example)';
    
      // 두 개의 Word 객체의 word 값 비교
      
      bool operator ==(Object other) {
        if(other is Word) {
          return word == other.word;
        }
        return false;
      }
    }
    
    void main() {
      Word wordA = Word(word: 'Apple', meaning: '사과', example: 'Give me an apple');
      Word wordB = Word(word: 'Apple', meaning: '사과', example: 'Give me an apple');
    
      print(wordA == wordB);  // true
    }

23일차 끝...............

profile
우와재밋다

0개의 댓글