Y_Ding

2023.07.11 TIL -Dart문법 본문

TodayILearned/Flutter

2023.07.11 TIL -Dart문법

YJ_ILY 2023. 7. 12. 21:25

Dart문법

*문법 상세

- Dart문법은 Flutter 코드를 작성하는데 필요

- Dart의 모든것은 클래스로 구성되어있음

 

- main함수는 항상 있어야 한다.

그렇지 않으면 아무것도 실행되지 않는다.

(ex. void main() {} )

void main(){}
// void는 main 함수 앞에 아무것도 return하는 값이 없을 경우

String main2(){
	return "Hello";
}
// 문자열로 return하는 경우는 String

main3(){}
// 아무것도 써주지 않아도 Dart에서 알아서 어떤 자료형을 반환하는지를 추론해줌

-변수?

값을 담는 바구니

자료형 변수명 = 값;     ex) var name = '철수';

*세미콜론(;)을 써주지 않으면 error

 

-변수명 만드는 규칙

1. 영문, _(Underbar), $, 숫자만 사용

2. 숫자로 시작이 불가능

3. 카멜케이스 사용 (ex. camelCase) 

 

-자료형

var: 처음 담긴 값으로 타입 지정

const: 처음에 변수 선언하고 나면 값을 변경할 수 없음

final: 선언은 먼저하고 나중에 값을 담을 수 있지만, 한 번 담으면 변경할 수 없음

void main() {
  var a = 1;
  String b = "hello world";
  String? c = null;
  // '?'의 의미는 null값도 들어올 수 있음을 의미
  const d = 1;
  final e;
  e = 2;
  print(a);
}

조건문(if문)

특정 조건에 따라서 어떤 것을 실행할지 정하는 것

else if를 이용해서 여러가지 조건을 넣을 수 있음

* 하나라도 true가 되어 실행되면, 뒤의 조건문은 실행되지 않음

if (bool1) {
	// bool1이 true면 실행
} else if (bool2) {
	// bool1이 false이고, bool2가 true이면 실행
} else if (bool3) {
	// bool1과 bool2가 false이고, bool3가 true이면 실행
} else {
	// bool1, bool2, bool3가 모두 false이면 실행
}

반복문(for문)

특정한 코드를 반복해서 실행

ex) hello를 5번 입력해야 할 경우

ex) hello를 5번 입력해야 할 경우
hello를 직접 5번 써줘도 되지만

반복문을 이용해서 더 간단하게 작성 가능
for (int i = 0; i < 5; i++) {
    print('hello ${i + 1}');
}
-> i라는 변수가 5보다 작을때까지 1만큼 증가시켜라

함수(function)

여러 코드를 묶어둔 상자

input이 들어오면 output이 나오는 구조의 코드

*void main(input) {output}

void main() {
  print("1. 시작");
  
  say(); //say라는 함수를 호출하는 것!
  
  print("4. 종료!");
}

void say() { //say라는 함수
  print("2. 안녕");
  print("3. Hello");
}

클래스(Class)

변수와 함수를 모아둔 틀

대문자로 시작

속성, 메소드, 생성자로 이루어져 있다

속성(Property) : 클래스 내의 변수

메소드(Method) : 클래스 내의 함수

생성자(Constructor) : 클래스 명과 동일한 함수

 

class Bread {
	// 생성자 함수 (클래스명과 똑같음. 클래스의 객체가 생성될 때 호출되는 함수)
	Bread(String core) {
		content = core; // 전달 받은 core를 content에 넣어줍니다.
	}
	
	// Bread 클래스가 가진 content 속성 (클래스 내의 변수)
	String? content;

	// Bread 클래스가 가진 getDescription 메소드 (클래스 내의 함수)
	String getDescription() {
    return "맛있는 $content빵입니다."; // 맛있는 팥빵입니다.
  }
}

인스턴스(Instance)

빵틀을 가지고 빵을 찍어낸다.

*빵틀 = 클래스

*빵을 만드는 것 = 생성자 호출

*빵 = 인스턴스

빵 틀에서 빵을 찍어내 듯, 생성자 함수를 호출하여 클래스에서 정의해 둔 속성과 메소드를 가진 데이터 객체를 만들 수 있는데, 이를 인스턴스(Instance) or 객체라고 부름

void main() {
	Bread bread = Bread(); // Bread 생성자를 호출하여 인스턴스를 반환
	print(bread); // Instance of 'Bread'
}

class Bread { //빵틀

	// 생성자
	Bread();
}

상속(extends)

변수와 함수를 그대로 전달받음

class 클래스A extends 클래스B

-> 클래스B의 변수와 함수를 그대로 전달받음

*클래스A : 자식(child)

*클래스B: 부모(super)

'TodayILearned > Flutter' 카테고리의 다른 글

2023.07.12 TIL -2주차  (0) 2023.07.12
2023.07.11 TIL  (0) 2023.07.11