1. 객체 생성과 메모리 규칙 할당
다트는 거의 모든 것이 객체이다. int, 정수형 값도객체입니다.
즉! 연산자를 사용할 수 있다.
2. 객체 비교에 대한 이해
객체를 비교할 때 두가지 방법이 있습니다.
- 값 비교(value)
- 주소 값 비교(Reference) -> dart에서는 기본적으로 주소값 비교를 사용
불변 <> 가변
불변 : 한번 생성이 되면 내부 상태 값을 변경할 수 없는 객체 (사용하는 이유 ➡️ 메모리 사용량을 줄이고 안정성이 증가)
가변 : 항상 새로운 메모리 주소를 할당 받고 그 공간에 값을 저장
import 'package:flutter/material.dart';
void main(){
// dart .. 문법 정리 - 심화 버전
// 1. 객체 생성과 메모리 규칙 할당
// 다트는 거의 모든 것이 객체이다. int, 정수형 값도 객체 입니다.
// 즉, 연산자를 사용할 수 있다.
print(1);
print(1.runtimeType);
// 객체 생성에 의미
int n1 = 10; // 10 이라는 객체가 생성 되었다.
// 설명 - 값은 메모리 공간(상자)에 저장되고 메모리 주소(0x0001) 메모리 주소를 반환 한다.
User user1 = User('홍길동');
// 값
// 참조(Reference), 주소
print('--------------------------');
// 2. 객체 비교에 대한 이해
// 객체를 비교할 때 두가지 방법잉 있습니다.
// 1. 값 비교 (value)
// 2. 주소 값 비교 (Reference)
print(10 == 10);
print('영회' == '영희');
// dart 에서는 int, String .. immutable object 간주 한다.
// 불변 객체는 무슨 의미 일까?
// 한번 생성이 되었으면 내부 상태 값을 변경할 수 없는 객체를 말한다.
// 사용하는 이유? --> 메모리 사용량을 줄이고 안전성이 증가 하기 때문입니다.
// 가변 객체이다. (불변 <> 가변)
print(User('바이') == User('바이')); // false
print([100] == [100]); // false
// Mututabl Object(가변객체) 는 항상 새로운 메모리 주소를 할당 받고 그 공간에 값을 저장 합니다.
// 중요 1
// dart 에서는 기본적으로 객체를 비교할 때 **주소값 비교**를 사용합니다.
// 중요 2
// 가변 객체는 항상 새 메모리를 할당 하고
// 불변 객체는 값이 동일 하다면 기존에 생성한 객체를 재활용 합니다.
}
class User{
final String name;
User(this.name);
// dart 에서는 단일 라인 생성자를 지원합니다.
//
}
실행 결과______
'Flutter > 심화 버전' 카테고리의 다른 글
[Flutter] 심화 버전 - 해시 함수 (0) | 2024.11.22 |
---|---|
[Flutter] 심화 버전 - 가변 객체 -> 불변 객체 (0) | 2024.11.22 |
[Flutter] 심화 버전 - 객체 동등성 재정의 (0) | 2024.11.22 |
[Flutter] 심화 버전 - 불변 객체 (0) | 2024.11.22 |
[Flutter] 심화 버전 - 가변 객체 (0) | 2024.11.22 |