Dart/OOP

Dart 문법 OOP - 클래스와 인스턴스

codeJunH 2024. 8. 20. 18:47

 

OOP란?

OOP 같은 경우는 영어로 Object Oriented Programming의 약어로, 

클래스를 가지고 프로그래밍을 하느 것을 OOP라고 애기를 한다. 

클래스 키워드를 사용하면은 여러가지 정의를 넣을 수가 있다.

 

어떤 걸 할 수 있냐면은 예를 들어서 Idol이라는 클래스를 위 이미지 처럼, 만들었다고 한번 가정해본다. 

 

그러면 Idol 클래스에는 변수인 이름이 있고 멤버들이 있으며, 함수로서 기능인 인사하는 기능 그리고 멤버 소개하는 기능 뭐 이런 것들이 있을 것이다. 

 

 

객체지향 프로그래밍의 중요성

객체지향 프로그래밍(OOP)은 현대 소프트웨어 개발에서 핵심적인 패러다임이다.

OOP의 주요 장점은 다음과 같다:

  1. 코드 구조화: 관련 있는 데이터와 기능을 하나의 단위(클래스)로 묶어 관리한다.
  2. 재사용성: 한 번 작성한 클래스를 여러 곳에서 재사용할 수 있다.
  3. 유지보수 용이성: 클래스 단위로 코드를 관리하므로 수정과 업데이트가 쉽다.
  4. 확장성: 상속을 통해 기존 클래스를 확장하여 새로운 기능을 추가할 수 있다.

특히 대규모 프로젝트에서 OOP는 코드의 복잡성을 관리하고 팀 협업을 용이하게 만드는 데 큰 도움이 된다.

 

 

클래스와 인스턴스 개념

Dart는 완전한 객체지향 언어로, 모든 것이 객체이다.

클래스와 인스턴스의 관계를 이해하는 것이 중요하다:

  • 클래스: 객체의 청사진 또는 템플릿이다. 객체의 구조와 행동을 정의한다.
  • 인스턴스: 클래스를 바탕으로 실제로 메모리에 할당된 객체이다.
  • 인스턴스화: 클래스로부터 객체를 생성하는 과정이다.

 

 

Dart에서의 클래스 정의

Dart에서 클래스를 정의하는 기본 구조는 다음과 같다:

이 예제에서:

  • name은 멤버 변수(프로퍼티)이다.
  • Idol(this.name)은 생성자이다.
  • sayName()은 메서드이다.

 

 

인스턴스 생성과 사용

클래스의 인스턴스를 생성하고 사용하는 방법은 다음과 같다:

여기서 blackPink와 bts는 Idol 클래스의 인스턴스이다.

 

 

this 키워드의 활용

this 키워드는 현재 인스턴스를 가리킨다. 주로 다음과 같은 상황에서 사용된다:

  1. 멤버 변수와 매개변수의 이름이 같을 때 구분하기 위해
  2. 현재 인스턴스의 다른 메서드를 호출할 때

 

 

함수와 메서드의 차이

함수와 메서드는 비슷해 보이지만 중요한 차이가 있다:

  • 함수: 독립적으로 존재하며, 어떤 객체에도 속하지 않는다.
  • 메서드: 클래스 내부에 정의된 함수로, 해당 클래스의 인스턴스에 대해 동작한다.