본문 바로가기

Dart

Dart_25 : Class_Mixins * Mixin : 생성자가 없는 클래스 - 단순히 with로 연결된 Mixin 클래스의 변수와 메소드를 가져오는 역할이다. (상속 x)  - strong의  strengthLevel 변수와 QuickRunner의  runQuick 메서드, Tall의 height 변수를 사용할 수 있는 것을 볼 수 있다.  - Mixin의 핵심 : 여러 클래스에서 재사용이 가능하다. 더보기
Dart_24 : Class_Inheritance(상속) - 부모 클래스가 생성자를 포함하고 있고 그 부모 클래스를 다른 곳에서 사용하려면 필요한 값을 전달해야 한다. 즉, 그 부모 클래스의 생성자를 호출해줘야 한다.- super 키워드를 통해 부모 클래스와 상호작용할 수 있다.- Player 생성자에서 받은 name은 그 즉시 super 생성자로 전달된다.- 문법 : 콜론(:)을 적고 그 뒤에 super 생성자 호출   - player 클래스로 만들어진 객체는 player 클래스에서 정의된 team 변수와, Human 클래스로부터 상속받은 name 변수와 sayHello 메드도 호출할 수 있는 것을 볼 수 있다.   - Human에서 온 sayHello 메소드를 우리가 직접 만든 메소드로 대체한다. 더보기
Dart_23 : Class_Abstract Class * 추상 클래스로는 직접 객체를 생성할 수 없다.* 추상 클래스는 다른 클래스들이 직접 구현 해야하는 메소드들을 모아놓은 청사진과 같다. - 추상 클래스를 생성할 때, 이 추상 클래스를 상속받는 자식 클래스가 필수적으로 구현해야하는 메서드를 완성시키지 않은 상태로 포함하여 생성한다. - 다음과 같이 Human 추상 클래스를 상속받았는데, 앞서 보여준 walk 함수가 Player 클래스에 정의되어있지 않기 때문에 Dart에서 이를 오류를 통해 알려준다.(추상화 클래스는 특정 메소드를 구현하도록 강제한다.)(따라서 추상화 클래스를 보고도 자식 클래스가 어떤 메서드를 가지고 있는지 유추할 수 있다.)  - 다음과 같이 추상화 클래스에 있는 walk 메서드를 구현함으로써 오류가 사라진 것을 볼 수 있다. 더보기
Dart_22 : Class_Enums * Enum : 개발자들이 실수하지 않게 잡아준다. 선택의 폭을 좁혀주는 역할을 한다. - team은 더이상 String type이 아니라 enum type으로 red와 blue로 선택의 폭을 좁혔다. 이로 인해 예기치 못한 오타를 방지할 수 있다. 코드가 무척 안전해진다. - 다음 사진과 같이 선택지를 좁혀준다. 더보기
Dart_21 : Class_Cascade Notation - 위 사진에서처럼 main 함수에서 해당 객체의 값을 변경할 때, 지속적으로 "클래스명."으로 똑같은 코드를 반복하는 것을 볼 수 있다. - "..name", "..xp", "..team"에서 맨 앞에 "."은 yongjun(var yongjun)을 나타낸다.- 이 코드는 main 함수의 코드와 동일한 기능을 수행한다. 더보기
Dart_20 : Class_Named 생성자 Player를 초기화하는 method이다.다른 이름을 가지고 있고, 사용자에게 매개 변수 값을 받을 수 있다.꼭 모든 변수에 대하여 매개 변수를 받을 필요는 없다.Dart 고유의 특징이다.사용자에게 받은 매개 변수는 콜론(:)을 통해 Player 객체를 초기화한다.    - createBluePlayer는 named syntax가 적용된 Named 생성자 함수이다.- createRedPlayer는 positional syntax가 적용된 Named 생성자 함수이다.- 어떤 syntax가 적용되었는지에 따라 함수를 호출할 때 위 코드처럼 달라지게된다. 더보기
Dart_19 : Class_Named 생성자 매개 변수 - 생성자의 매개 변수의 순서와 함수 호출 시 매개 변수의 순서가 동일해야 한다. 이를  positional parameters(argument)라고 한다.  - named 매개 변수를 사용할때, 매개 변수의 순서에 상관없이 key와 value 쌍이 맞고 데이터 형맞 맞춰주면 된다.- required 키워드를 넣지 않으면, 인스턴스를 생성할때 매개 변수를 전달하여 생성자 함수가 실행되는 그 순간에 알맞은 매개 변수의 값을 할당하지 않아 null 값이 들어갈 수 있으므로 null safety에 의해 오류가 생성된다. 이를 방지하고자 required 키워드를 넣으면 인스턴스를 만들때, 생성자 함수의 매개 변수에 맞는 값을 할당해주지 않으면 Dart가 오류를 통해 알려준다. 더보기
Dart_18 : Class_생성자 * 생성자를 사용하는 이유 : class 변수를 선언하는 과정에서 모든 값을 초기화한다면, 클래스를 만들 때마다 그 변수의 값들이 동일하게 되기 때문이다. - 생성자는 class명과 동일한 함수를 만들어주는 것이다.- 함수를 호출할 때 전달되는 2개의 매개 변수는 생성자 함수에서 받는 매개 변수이다.- late 키워드를 사용하는 이유 : final 키워드를 사용하면 값을 초기화한 이후로 바꾸지 못하는데, 위 과정에서는 초기화 과정이 이루어지지 않아서 오류가 생성되었다. 그래서 late 키워드를 사용하여 나중에 값을 받는 다는 것을 알려준 것이다.    생성자를 사용하면 인스턴스 생성 시 매개 변수에 값을 넣기만 하면 값들이 할당된다.     위 코드처럼 한 줄로 나타내어 코드의 길이를 줄일 수 있다.매개.. 더보기