본문 바로가기

Hello App/Dart

Dart _ 기초 예제 5

230514

 


오늘은 Dart의 Class에 대해서 실습해보자.

 

19. Class

Dart의 Class는 위와 같이 선언한다.

 

그리고 아래의 main()에서

새로운 변수를 클래스의 인스턴스로 선언할 수 있다.

 

만약 클래스의 인스턴스의 값을

변경 불가능하게 바꾸고 싶다면

final을 사용하면 된다.

 

위와 같이 final을 변수 앞에 선언하면

간단하게 변경 불가능한 변수로 바꿀 수 있다.

 

선언한 sayHello()를 실행 시키면

위의 print문이 출력된다.

 


20. 생성자 (Constructors)

Class에 생성자를 만들때는선언한 변수 앞에 late를 붙여줘야한다.

 

Dart는 값이 없는 것을 싫어하기 때문이다.

 

그리고 아래와 같이 this를 이용해서 함수를 선언할 수 있다.

 

그럼 위와 같이

내가 원하는 인자 값을 넣어서

출력할 수 있다.

 

만약 이마저도 더 짧게 하고 싶다면

 

변수는 선언하되,

함수의 인자값에 this를 넣어

받을 수 있다.

 


21. Named Constructor Parameters

만약 클래스의 인스턴스가 많아지면

위의 생성자는 굉장히 골치 아프게 한다.

 

main()함수의 인자값의 순서도 정해진 대로 해야하고

뭐가 어떤 변수인지 잘 모른다.

 

앞서 배웠던 Named Parameter를 이용해보자.

Named Parameter의 핵심중괄호 { } 로 파라미터를 감싸주고

 

우리는 main() 함수에서 값을 받을 예정이니Dart의 불안을 없애줄 required 문법을 써준다.

 

그리고 위와 같이

명시적으로 변수의 값을 넣어줄 수 있다.

 


22. Named Constructors

만약 한 클래스에서 생성자를 생성하는데

구분을 하고 싶을 때 Named Constructors를 사용한다.

 

위와 같이 두개의 팀을 선언했다.

 

앞서 배운 문법은 적용하되 추가적으로 들어가는 문법은

콜론 ( : ) 이다.

 

콜론의 의미는위의 Class의 생성자를 참고하기 위한 것이다.

 

만약 함수에서 값을 받고 싶을경우

Named Constructor Parameter를 사용한다.

 

blueplayer = Named Constructor Parameter

사용한 경우의 생성자 사용

 

redplayer = 일반적인 생성자 사용

 


23.  Casecade Notation ( .. )

Dart에서 Casecade Notation을 사용하면

동일한 객체에 대해 함수 호출필드 엑세스 등을 수행할 수 있다.

 

위와 같은 Class가 있을 때

 

main()함수에서

aaa의 객체

 

Casecade Notation ( .. )을 사용한

bbb와 같이 변경해도 문제가 되지 않는다.

 


24. Enums

Dart에서 enumerations 또는 enums 라고 하는

열거 유형은 고정된 수의 상수 값을 나타내는 데 사용되는

클래스이다.

 

위와 같이

enum을 사용해서 팀의 색깔을 표현해 주었다.

이때 중괄호 안의 텍스트에는 따옴표가 안들어 간다.

 

class의 변수 선언시에도

Team team; 과 같이 사용할 수 있다.

 

main() 함수에서는

위와 같이 이제는

team : Team.red 형식으로값을 불러온다.

 


25. 추상화 클래스 ( Abstract Class )

추상화 클래스의 핵심은

특정 메소드를 구현하도록 강제한다는 점이다.

 

위와 같이 추상화 클래스는

abstract를 붙인다.

 

만약 walk()라는 함수가 있다면

 

위와 같이 Player 클래스

Human 추상클래스상속 받았을때

walk()함수를 사용하지 않으면 error가 난다.

 


26.  상속 ( Inheritance )

extends를 사용해 하위 클래스를 만들고super를 사용해 상위 클래스를 참조할 수 있다.

 

여기 Human{ } 이라는 class가 있다.

 

만약 어떤 Player9라는 class를 만들 때

Human 이라는 class를 참조하고 싶다면

 

위와 같이 extends를 사용하여 상속받을 수 있다.

 

이때 Humanname9Player9 에서의 name9

같이 쓰고 싶을때

 

즉, Human의 생성자 함수를 가져오고 싶을 때

 

콜론 ( : ) + super를 사용한다.

 

💡 super 는 확장을 한 부모 클래스와 상호작용할 수 있게 해준다.

 

만약 부모 클래스로 부터

함수를 가져와서 overriding 하고 싶다면

 

위와 같이 super를 사용해서 가져올 수 있다.

 


27.  Mixins

Mixin생성자가 없는 클래스를 의미한다.

보통 클래스에 property를 추가할 때 사용한다.

 

쉽게 설명하자면

class에 생성자만 없다면

그냥 다 뺏어 온다고 생각하면 쉽다.

 

위와 같이

선언된 class에 생성자만 없다면

 

아래에서 with를 사용해서 가져올 수 있다.

 


여기까지 총 27개의 flutter를 사용하기 위한

Dart의 기본적인 예제를 마치겠다.

 

완료한 나 자신 칭찬해.

 

 

'Hello App > Dart' 카테고리의 다른 글

Dart_기초예제 4  (0) 2023.05.14
Dart_기초 예제3  (0) 2023.05.12
Dart_기초예제2  (0) 2023.05.11
Dart_특징, 기초 예제  (1) 2023.05.10
VScode에서 Dart를 사용하기 위한 준비 - 윈도우  (0) 2023.05.09