우당탕탕 무작정 앱 개발하기

일반인의 Flutter 앱개발 6. Dart(Class, Named Constructor)

간다간다숑간다 2022. 10. 7. 00:01
728x90

오늘도 Class를 뜯어먹어 보자

네가 애플리케이션을 만들 거면 무조건 Class를 쓸 것이다.

라는 느낌이 온다. 강하게 온다. 아무것도 모르는 코린이지만 이 Class라는 틀이 있어야

유저 정보도 집어넣고 할 수 있을 것 같은 너낌?

그리고 이 기본기 익히고 나면 바로 앱 개발 도전해봐야겠다. 글씨만 보니까 지치는 감도 있고..

여러 훌륭한 코딩 선배님들이 만들어놓으신 오픈소스들을 이용하면 조금... 그나마 수월하지 않을까(제발)

 


Named Constructor

이런 방법으로도 Constructor를 인스턴스화 시킬 수도 있다는 걸

보여주는 예제인데 많이 쓰인다고 하니 꼭 알아두자.

어렵지도 않다.

코드팩토리님 강의로 하나하나 따라가 보자

기본 틀은 아래와 같다.

이제 여기다 살을 붙여가며 하나씩 해보겠다.

'fromMap'이라는 Named Constructor를 만들었다.

이제 Idol이라는 Class는 두 가지 형태의 Constructor를 만들 수 있는 것이다.

Map을 받아서 Class를 생성하는 rm을 만들어보자.

무엇이 출력되는지 맞춰보자. 막퀴(막간퀴즈)

더보기
틀렸어도 스스로에게 박수

여기까지 아무 생각 없이 따라오다 보니 궁금증이 생겼다. 사실 공부하기 싫어서 트집 잡음

Constructor가 있으면
여러 Instance를 만들어서 할 수 있는데
왜 Named constructor를 배워야 하나?

그래서 하나 더 만들어봤다. redVelvet과 bts Constructor

후... 이제 보니 당연한 거 한번 더 해본 거였다. Constructor를 만들면

여러 인스턴스를 만들 수 있으니 거기 들어가는 값도 달라질 수 있다고

전에 포스팅에 써놓곤 까먹어서 한번 더 만든 거다. 

 

틈새 복습
개념을 제대로 이해 안 하고 마구잡이로 넘어가다 보니
이런 결과가 나왔으니 개념 한번 잡고 가자.

Class : 가수라는 전체적인 틀 안에 
Object : Idol이라는 형태를 갖춤
Instance : Idol이라는 형태를 통해 redVelvet과 BTS 등의 instance를 만든다.
사실 오브젝트로부터 생성된 게 인스턴스라고 보는 게 정확한데
코딩을 하다 보면 오브젝트와 인스턴스를 같은 의미로 이야기하는 경우가 많다.라고 들음 
결론 : 정확하게는 알고 있되 정확히 구분하는 게 크게 중요하진 않다.

 

 

그럼 fromMap으로 만든 Instance를 보자.

초록박스가 fromMap으로 만든 인스턴스

RM이 등장하여 자기소개를 멋지게 해 줬다.


아 방금 DartPad에 새로운 기능을 찾았다. 흐름과 무관한 내용이라 접어뒀다. 펼쳐보길

더보기

Format을 눌러주면 알아서 띄어쓰기도 맞춰주고 이쁘게 해 준다. 

정말.. 프로그래머 형님들 당신은 그저 빛...

줄 이쁘게 맞추다 시간 보내지 말고 저 기능을 쓰자...
요새 Dart 바뀐 점
최신 버전의 코드팩토리님 영상을 보니
이렇게 바뀌었다고 가르쳐주신다.
여러분은 최신 버전으로 보시길ㅠㅠ
처음엔 이렇게 했으나

이게 훨씬 간단하다.
Named parameter를 쓰기위해선 초기값을 넣어주거나 required로 지정해줘야한다.

 

틀린 점이나 궁금한 점이 있으면 댓글로 알려달라.
입문자라 아무것도 모르고 이상한 소리를
썼을 가능성이 매우 매우 농후하다.
궁금한 점은 댓글로 토론하며 정답을 찾아보자.
유튜브 더코딩파파의 'Dart언어 한 시간 만에 건너뛰기'와 코드팩토리님의  Dart강의를 보고 공부 중입니다.
728x90