프로그래밍 언어/Dart

Dart 객체지향 프로그래밍: 클래스와 객체 이해하기 - Dart 기초 #8

eco7T 2024. 6. 10. 07:35
반응형

이번 글부터는 Dart의 객체지향 프로그래밍과 관련한 내용을 정리합니다. 때문에 객체지향 프로그래밍(OOP)에 대해 간단하게 개념을 설명하고, Dart에서 클래스와 객체를 어떻게 정의하고 사용하는지 그 방법을 설명하며 예제를 통해 학습할 수 있도록 정리해 보겠습니다.

Dart 객체지향 프로그래밍: 클래스와 객체 이해하기
Dart 객체지향 프로그래밍: 클래스와 객체 이해하기

 

객체지향 프로그래밍 (OOP) - 클래스와 객체

객체지향 프로그래밍(Object-Oriented Programming, OOP)은 프로그램을 객체(object)라는 기본 단위로 나누어 설계하는 방법입니다. 객체는 데이터(속성, 변수)와 이 데이터를 조작하는 함수(메서드)를 포함합니다. OOP의 주요 개념은 클래스(class)와 객체(object)입니다.

반응형

클래스 (Class)

클래스는 객체를 만들기 위한 청사진(템플릿)입니다. 클래스는 객체의 속성과 동작을 정의합니다. Dart에서 클래스를 정의하는 방법을 알아보겠습니다.

class Person { // 속성 (Properties) String name; int age; // 생성자 (Constructor) Person(this.name, this.age); // 메서드 (Method) void introduce() { print("안녕하세요, 저는 $name이고, 나이는 $age살 입니다."); } }

위 코드에서 `Person` 클래스는 이름과 나이를 속성으로 가지며, 생성자와 `introduce`라는 메서드를 포함하고 있습니다.

 

객체 (Object)

객체는 클래스로부터 생성된 인스턴스(instance)입니다. 클래스는 설계도이고, 객체는 그 설계도로 만들어진 실제 물건이라 생각하면 됩니다. 이제 `Person` 클래스를 사용해 객체를 만들어보겠습니다.

void main() { // 객체 생성 Person person1 = Person('홍길동', 30); // 메서드 호출 person1.introduce(); }

위 코드에서 `Person` 클래스로부터 `person1` 객체를 생성하고, `introduce` 메서드를 호출하여 결과를 출력합니다.

 

클래스와 객체의 특징

캡슐화 (Encapsulation): 클래스는 데이터를 보호하기 위해 속성과 메서드를 묶습니다.

상속 (Inheritance): 클래스는 다른 클래스로부터 속성과 메서드를 물려받을 수 있습니다.

다형성 (Polymorphism): 동일한 메서드가 클래스에 따라 다르게 동작할 수 있습니다.

클래스와 객체를 활용한 예제

아래는 간단한 은행 계좌 관리 프로그램 예제입니다.

class BankAccount { String accountHolder; double balance; BankAccount(this.accountHolder, this.balance); void deposit(double amount) { balance += amount; print('$amount 원이 입금되었습니다. 현재 잔액: $balance 원'); } void withdraw(double amount) { if (amount > balance) { print('잔액이 부족합니다.'); } else { balance -= amount; print('$amount 원이 출금되었습니다. 현재 잔액: $balance 원'); } } void displayBalance() { print('$accountHolder 님의 현재 잔액: $balance 원'); } } void main() { BankAccount account = BankAccount('김철수', 100000); account.displayBalance(); account.deposit(50000); account.withdraw(30000); account.displayBalance(); }

위 예제는 `BankAccount` 클래스를 정의하고, 이를 통해 계좌를 생성한 후 입금, 출금, 잔액 확인을 수행합니다.

 

참고 자료

이 가이드북을 통해 클래스와 객체의 개념을 이해하고, Dart에서 이를 구현하는 방법을 익히셨기를 바랍니다. 앞으로 더 복잡한 프로그램을 작성할 때에도 이 기본 개념들을 활용해 보세요.

 

 

반응형