TIL) Flutter - Class, Null safety

oatraspberry·2023년 9월 20일
post-thumbnail

🌼Class

클래스

  • 객체가 가져야 하는 속성과 기능을 정의한 내용을 담고 있는 설계도 역할

객체

  • 클래스가 정의된 후 메모리상에 할당되었을 때 이를 객체라고 함

인스턴스

  • 클래스를 기반으로 만들어진 사물
  • 클래스의 속성과 기능을 똑같이 가지고 있고 프로그래밍에서 사용되는 대상
class Doggy {
  var name = 'BOME';
  int age;
}

void main(){
  Doggy p1 = Doggy();
  p1.name;
  p1.age = 2;
  print(p1.name);
  print(p1.age);
}

⚠️오류 발생 원인
int 유형이 null을 해결하지 않기 때문에 초기화 해야 함

🌼Null safety

  1. 모든 변수는 null이 될 수 없으며, non-nullable 변수에는 null 값을 할당할 수 없다.
  2. non-nullable 변수를 위한 null check가 필요없다.
  3. Class 내의 변수는 반드시 선언과 동시에 초기화를 해야 한다.

해결 방법
1) 타입 뒤에 ?(Nullable type) 적기

class Doggy {
  var name = 'BOME';
  int? age;
}
void main(){
  Doggy p1 = Doggy();
  p1.name;
  p1.age = 2;
  print(p1.name);
  print(p1.age);
}


2) 자료형 앞에 late 붙이기

class Doggy {
  var name = 'BOME';
  late int age;
}
void main(){
  Doggy p1 = Doggy();
  p1.name;
  p1.age = 2;
  print(p1.name);
  print(p1.age);
}

  1. nullable 변수가 항상 non-nullable value값을 가진다는 확신이 있다면 !(Not nullable type) 추가한다.
  2. null값을 받을 수 없는 int 타입 앞엔 required(not optional)를 붙인다.
void main() {
	print (add(a: null, b: 2));
}

int add({required int? a, required int b}) {
	if( a == null ){
    	return b;
    }
	int sum = a + b;
    return sum;
}

출처: 유튜브 코딩셰프 flutter 강의

profile
개발자가 될테야

0개의 댓글