본문 바로가기
PM 기술스터디

(Flutter Study) DART 언어 - Class.2

by Rocket Launch 2023. 7. 4.
반응형

컴퓨터 비전공자 Product Manager의 프로그래밍 공부

노마드 코더(Nomad Coders) 강의 필기 노트 입니다.

강의 정보: Dart 시작하기 (https://nomadcoders.co/dart-for-beginners)

Dart Class

Cascade Notation(종속 표기법)

Dart - Cascade Notation(종속 표기법)

기존 정보를 변경할때 첫번채 이미지처럼 세개의 변경될 정보를 각각 입력할 필요 없이, 두번째 이미지처럼 세미콜론(;)을 삭제하고, 변수 명 대신 dot dot(..) 을 입력하고 마지막 세미콜론(:)만 붙여준다. 이렇게 하면 이전 코드와 똑같은 역할을 한다.

Enum (Enumerated type: 열거하는 타입)

Dart - enum 사용 전과 후

개발자들이 실수 하지 않게끔 도와주는 enum.

enum에서는 data type은 신경쓰지 않아도 된다. 기존에 String team을  enum으로 정의한 team으로 대체해주면, 해당 class의 team정보는 enum으로 관리된다. 또한 위 이미지의 예시처럼 enum 에서 정의된 Team을 골라쓰면 되기 때문에 오타로 인한 위험이 줄어든다.

Abstract Class: 추상화 메소드와 Class

 추상화 클래스로는 객체를 생성할 수 없다. 대신 다른 클래스들이 직접 구현 해야하는 메소드들을 모아놓은 일종의  청사진(blueprint)라고 보면 된다.

위 예시에서처럼 Human이라는 abstract class에서 walk라는 method를 가진다. 이를 Player에 Human이라는 추상화 클래스를 적용하면 Player class는 반드시 walk라는 method를 가져야 한다. 

이처럼 수많은 청사진에 메소드의 이름과 반환 타입만 정해서 정의할 수 있다. 그리고 () 안에 파라미터도 설정할 수 있고, 이걸 다른 클래스에서 extends(상속,확장) 할 수 있다. 추상화 클래스는 특정 메소드를 구현하도록 강제한다.

다시말하면, Human 추상화 클래스는 이를 상속받는 모든 클래스가 가지고있어야 하는 메소드를 정의하고 있다.

Inheritance(상속)

super는 확장(상속)한 부모 클래스의 property에 접근하게 하거나, 메소드를 호출할 수 있게 해준다.

확장한 부모 클래스가 생성자를 포함하고 있는데, 그 클래스를 다른 어떤 곳에서 사용하려면 필요한 값을 전달해야 하고, 그 부모 클래스의 생성자를 호출해줘야 한다.

Mixin

Mixin은 Constructor(생성자)가 없는 클래스를 의미한다. 클래스에 Property(프로퍼티)들을 추가할 때 사용한다.

여러 class를 생성하고, 다른 클래스에 이것들을 여러번 재사용해서 적용할 수 있다. 클래스들은 with로 연결된 클래스의 Property와 Method들을 사용할 수 있게 된다. 

extend와의 차이점은, extend는 확장한 그 클래스는 부모 클래스가 되는거고, 자식 클래스는 super를 통해 접근할 수 있고, 그 순간 부모 클래스의 인스턴스가 된다. Mixin은 with라는 키워드를 사용해서 역할은 단순히 Mixin 내부의 프로퍼티와 메소드들을 가져오는 것 뿐이다.

Mixin의 조건은 생성자가 없는 클래스여야 한다는 점을 명심해야 한다.

 

 

 

 

반응형

댓글