본문 바로가기
프로그래밍 언어/다트

다트 클래스 사용법 기초

by seongjko 2023. 9. 6.
728x90

객체 지향 프로그래밍의 핵심 중 하나인 클래스를 사용하는 코드의 예시는 아래와 같으며 크게 4부분으로 나누어 살펴본다.

import 'package:flutter/material.dart';       //1. Import문

class MyWidget extends StatelessWidget {      //2. MyWidget 클래스 정의
  @override
  Widget build(BuildContext context) {        //3. build 매서드 정의
    return Container(
      color: Colors.blue,
      child: Center(
        child: Text(
          'Hello, Flutter!',
          style: TextStyle(fontSize: 24, color: Colors.white),
        ),
      ),
    );
  }
}

void main() {                                 //4. main함수 정의
  runApp(MaterialApp(
    home: MyWidget(),
  ));
}

 

1. Import문

import 'package:flutter/material.dart';

필요한 패키지나 라이브러리를 가져온다. 

 

2. MyWidget 클래스 정의

class MyWidget extends StatelessWidget

직역하면 MyWidget 클래스가 StatelessWidget 클래스를 확장하고 있다는 것을 나타낸다.

다르게 표현하면 Mywidget 클래스가 StatelessWidget의 특성을 상속하고 있다고도 표현할 수 있다.

그렇다면 StatelessWidget의 특성은 무엇일까?

Flutter에서 상태가 없는(Stateless) 위젯으로 동작하는 특성을 갖고 있다.

즉, Mywidget 클래스가 StatelessWidget의 특성을 상속한다는 건 Mywidget이 Flutter에서 상태가 없는(Stateless) 위젯으로 동작한다는 것을 의미한다.

한 번 만들어진 후에는 내부 상태를 변경하지 않는 위젯이라는 뜻이다.

 

3. build method 정의 

Widget build(BuildContext context) {
    return Container(

build 메서드는 Flutter 프레임워크에서 사용되는 중요한 메서드 중 하나이며, 모든 위젯 클래스에서 오버라이드(재정의)되어야 한다.

build 메서드의 역할은 해당 위젯의 구조를 정의하고 반환하는 것이다.

앱을 만들기 위해서 필요한 실질적인 기능을 하는 구현부라고 볼 수 있다.

위 코드의 경우 Container 이하의 위젯의 구조와 내용을 반환한다.

 

4. main함수 정의

void main() {
  runApp(MaterialApp(
    home: MyWidget(),
  ));
}

main 함수는 Dart 애플리케이션의 시작점이다.

이 함수에서는 runApp 함수를 호출하여 Flutter 앱을 시작한다.

MaterialApp은 기본적인 앱 레이아웃 및 디자인을 설정하며, home 속성을 통해 앱의 초기 화면으로 MyWidget 클래스를 사용한다.

 

반응형