[플러터 2] 플러터 기본 문법 1

2021. 8. 14. 02:09Flutter 2 Mobile App/Flutter 2 입문

반응형

타입 확인

runtimeType을 활용하여 변수의 타입을 확인


타입 추론

var : 타입변경 불가

      var 로 한번 초기화된 데이터 타입은 다른 타입으로 변경이 불가능

dynamic : 타입변경 가능

             dynamic 타입은 모든 타입을 받을 수 있고, 다른 타입으로도 변경가능하다.


연산자

몫 계산 : 숫자~/숫자

나머지 계산 : 숫자%숫자

 


조건문

null 대체 연산자

변수값이 null 이면 ?? 뒤에 값이 출력

null이 아니면 변수값이 출력


익명함수와 람다식의 차이

람다식 : return 키워드를 안적어도 값이 반환

- (파라미터) => 동작 혹은 리턴값

 

익명함수 : return 키워드를 반드시 적어야 값이 반환

- (파라미터) { 동작 또는 반환값 }

- 함수를 전달받을 때는 Function() 사용


클래스와 객체

사자, 기린, 개, 호랑이 등은 클래스를 정의 후 객체 (실제 존재)가 될 수 있지만,

동물은 클래스를 정의할 수 있지만, 객체가 될 수 없다.

동물은 실존하는 대상이 아니기때문이다.


다트 표기법 방식

- 변수와 함수명 정의 시 : 카멜표기법

  예) int boardNum = 1;

       (*) 다른 클래스에서 접근할 수 없는 private 변수는 변수명 앞에 _를 붙여서 _boardNum 이런식으로 붙이면 된다.

 

- 파일명 정의 시 : 스네이크(언더스코어) 표기법

  예) board_manager.dart

 

- 클래스명 정의 시 : 파스칼 표기법

  예) class BoardManager {  }

 


선택적 파라미터(아규먼트)

다트언어에는 오버로딩이 없는대신 파라미터(아규먼트) 를 { } 로 감싸면 된다.

함수 ({ 파라미터, 파라미터 })


cascade 연산자

.. 연산자를 쓰면 코드 한 줄로 객체를 변수로 넘기면서 

객체가 가진 함수를 호출할 수 있는 유용한 표기법이다.


상속

부모가 갖는 상태와 행위를 자식이 물려받는 것과 동시에

다형성이 성립해야 한다.

 

다형성 

여러가지 형태를 가질 수 있는 능력

예) 

파스타 클래스를 사용해서 

크림 파스타토마토 파스타를 만들었는데

이 때 다형성이 성립한다.

 

크림 파스타는 파스타이기도 하고

토마토 파스타 역시 파스타이기도 하니까..

 

이렇게 다형성이 성립될 경우

상속(extends)을 한다.

 

class 파스타 { }

class 크림 파스타 extends 파스타 { }

class 토마토 파스타 extends 파스타 { }

 

여기서 자식객체인 크림 파스타토마토 파스타

부모의 객체인 파스타 객체에 슈퍼(super) 로 참조할 수 있다.

 

참고로 상속관계에서 실행될 때는

부모 객체가 제일 먼저 실행되며

그 다음이 자식 객체가 실행된다.


final 키워드와 이니셜라이져(:) 키워드

final 키워드

최초에 단 한번만 초기화되면서 변경할 수 없는 상수이다.

 

: 키워드

생성자 내부스택이 실행되기 전에 다른 뭔가를 호출하고 싶을 때 사용

즉, 자식 생성자의 내부 스택이 실행되기 전에 부모생성자한테 값을 전달할 수 있다.

 

스택이란 함수의 { } 내부를 말한다.

 

함수명() {

  ~스택~

}


Mixin

여러 클래스 계층에서 클래스 코드를 재사용하는 방법이다.

다중 상속의 문제를 해결할 수 있고 컴퍼지션을 사용하지 않고

다른 클래스의 코드를 재사용할 수 있다.

 

컴포지션 사용


추상 클래스

추상클래스는 추상적이기때문에 객체 생성이 불가능하며

공통 부모를 만들기 위해 사용한다.

 

참고로 다트에서는 일반 클래스가 인터페이스이다.

각 동물들의 객체를 넘김으로 각 객체들이 가지고 있는 메소드를 실행시키는데

이것을 동적 바인딩 이라고 한다.

 

다형성을 이용해서 추상 클래스의 함수를 호출했을 때

자식 클래스에서 함수를 오버라이드하게 되면 

자식의 함수가 동적으로 실행되게 된다.

 


컬렉션

 

List

순서가 있으면서 데이터의 중복이 가능한 자료를 담는 컬렉션이다.

데이터는 순차적으로 인덱스 번호를 0부터 생성하면서 쌓이게 된다.

<>타입을 제네릭 타입이라고 한다.

 

타입 추론

var nums = [1, 2, 3, 4];

 

Map

키와 값의 쌍으로 이루어진 컬렉션이다.

List는 인덱스 번호로 값을 찾지만

Map은 키네임으로 키값을 찾아낸다.

 

Set

데이터의 중복을 허용하지 않기때문에 로또생성기 등을 만들 때

유용하게 사용할 수 있다.

하지만, List와는 다르게 순서가 없다.

 

반응형

'Flutter 2 Mobile App > Flutter 2 입문' 카테고리의 다른 글

[플러터 2] UI 구조 2  (0) 2021.08.14
[플러터 2] UI 구조 1  (0) 2021.08.14
[플러터 2] 플러터 기본 문법 2  (0) 2021.08.14
플러터 설치 및 환경설정  (0) 2021.08.13
플러터의 특징  (0) 2021.08.13