컴퓨터 비전공자 Product Manager의 프로그래밍 공부
노마드 코더(Nomad Coders) 강의 필기 노트 입니다.
강의 정보: Dart 시작하기 (https://nomadcoders.co/dart-for-beginners)
Dart Class
Cascade Notation(종속 표기법)
기존 정보를 변경할때 첫번채 이미지처럼 세개의 변경될 정보를 각각 입력할 필요 없이, 두번째 이미지처럼 세미콜론(;)을 삭제하고, 변수 명 대신 dot dot(..) 을 입력하고 마지막 세미콜론(:)만 붙여준다. 이렇게 하면 이전 코드와 똑같은 역할을 한다.
Enum (Enumerated type: 열거하는 타입)
개발자들이 실수 하지 않게끔 도와주는 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의 조건은 생성자가 없는 클래스여야 한다는 점을 명심해야 한다.
'PM 기술스터디' 카테고리의 다른 글
(Flutter Study) Hello Flutter (0) | 2023.07.08 |
---|---|
(Flutter Study) DART 언어 - Class.1 (1) | 2023.06.29 |
(Flutter Study) DART 언어 - Functions (0) | 2023.06.28 |
(Flutter Study) Dart 언어 - DATA TYPES (10) | 2023.06.24 |
(Flutter Study) Dart 언어 - Variables (2) | 2023.06.24 |
댓글