Dart 문법 (2)

luneah·2022년 7월 19일
0

Flutter

목록 보기
11/29
post-thumbnail

규약

인터페이스는 클래스가 지켜야 하는 규약이다. 메소드나 변수에 _를 붙이면 다른 파일에서 볼 수 없다(private).

class Elephant {
  // Public interface
  final String name;
    
  // In the interface, but visible only in this library. (private)
  final int _id = 23;
    	
  // Not in the interface, since this is a constructor.
  Elephant(this.name);
    
  // Public method
  sayHi() => 'My name is $name.';
    
  // Private method
  _saySecret() => 'My ID is $_id.';
}

상속

  • Super Class : 슈퍼클래스 또는 상위 클래스에는 모든 하위 클래스가 공유하는 동작이 포함된다. abstract 키워드는 해당 클래스가 인스턴스화 되지 못하게 하고, 이 클래스는 상속의 재료임을 나타낸다.
    abstract class Dog {
      void walk() {
        print('walking...');
      }
    }
  • subclass : 서브클래스는 슈퍼클래스의 동작을 재정의(override) 할 수 있다.
    class Pug extends Dog {
      String breed = 'pug';
        
      
      void walk() {
        super.walk();
        print('I am tired. Stop now.');
      }
    }

제네릭

: 타입을 매개변수화 하는 방법, 클래스가 타입을 래핑하여 다양하게 사용할 수 있다.

Box<String> box1 = Box('cool');
    
class Box<T> {
  T value;
    
  Box(this.value);
    
  T openBox() {
    return value;
  }
}

패키지 충돌 처리

이름 충돌을 피하기 가장 쉬운 방법은 별칭을 지정하는 것

import 'somewhere.dart' as External;
  • hide : 특정 코드 제외시킬 수 있다.
  • show : 개별 클래스를 가져올 수 있다.
profile
하늘이의 개발 일기

0개의 댓글