IT기술/다트 (dart)

다트(Dart)의 객체지향 프로그래밍(OOP) 개념

후스파 2025. 3. 23. 00:16
반응형
다트 Dart

클래스와 객체

클래스는 객체를 생성하기 위한 청사진입니다. Dart에서 클래스를 정의하고 사용하는 방법은 다음과 같습니다:

class Person {
  String name;
  int age;

  Person(this.name, this.age);

  void introduce() {
    print("안녕하세요, 제 이름은 $name이고, 나이는 $age세입니다.");
  }
}

void main() {
  Person person = Person("Alice", 30);
  person.introduce();
}
 

 

생성자

Dart에서는 여러 종류의 생성자를 정의할 수 있습니다:

기본 생성자

class Coffee {
  String name;
  Coffee(this.name);
}
 
 

네임드 생성자

class Coffee {
  String name;

  Coffee(this.name);
  Coffee.make(String name) : this.name = name;
}

void main() {
  Coffee myCoffee = Coffee.make("Macchiato");
  print(myCoffee.name);
}
 
 

캡슐화

Dart에서는 변수명 앞에 언더스코어(_)를 붙여 프라이빗 변수를 선언할 수 있습니다:

class Coffee {
  String _name;

  Coffee(this._name);

  void displayName() {
    print("커피 이름: $_name");
  }
}
 
 

상속

Dart에서는 extends 키워드를 사용하여 상속을 구현합니다:

class Animal {
  void makeSound() {
    print("Some generic sound");
  }
}

class Dog extends Animal {
  @override
  void makeSound() {
    print("Bark!");
  }
}
 
 

다형성

Dart에서 다형성은 주로 메서드 오버라이딩을 통해 구현됩니다:

void main() {
  Animal animal = Dog();
  animal.makeSound(); // 출력: Bark!
}
 
 

추상 클래스

추상 클래스는 abstract 키워드를 사용하여 정의합니다:

abstract class Shape {
  void draw();
}

class Circle extends Shape {
  @override
  void draw() {
    print("Drawing a circle");
  }
}
 
 

인터페이스

Dart에서는 별도의 interface 키워드 없이 클래스를 인터페이스로 사용할 수 있습니다:

abstract class Shape {
  void draw();
}

class Circle extends Shape {
  @override
  void draw() {
    print("Drawing a circle");
  }
}
 
 
 

이러한 OOP 개념들을 활용하면 코드의 재사용성과 유지보수성을 크게 향상할 수 있습니다. Dart의 OOP 기능은 Flutter 앱 개발에서 특히 중요한 역할을 하며, 효율적이고 구조화된 코드 작성을 가능하게 합니다.

 

 

[Dart] 다트 객체지향 프로그래밍 (OOP)

다트(Dart)는 객체지향 프로그래밍(object-oriented programming / OOP) 패러다임을 지원하는 프로그래...

blog.naver.com

 

 

[Dart 완전 정복] 다트 함수와 람다, 예외처리 마스터하기

Dart 언어에서 함수는 코드의 재사용성과 구조화에 핵심적인 역할을 합니다. 이 글에서는 Dart의 함수, 람다 표현식, 그리고 예외 처리에 대해 상세히 알아보겠습니다. 함수의 기본 구조와 특징기

hoosfa.tistory.com

 

반응형