Menu
Coddy logo textTech

클래스 vs 객체

Coddy Dart 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨 — 110개 중 4번째.

클래스와 객체는 서로 다른 목적을 수행합니다. 클래스는 청사진이며, 객체는 그 청사진으로부터 만드는 것입니다.

다음은 인스턴스 변수가 있는 클래스의 예입니다:

class Dog {
  String name = '';
  String breed = '';
}

클래스 내부에 선언된 변수들은 (namebreed와 같은) 해당 클래스에서 생성된 각 객체에 속합니다. 인스턴스 변수에 대해서는 나중에 자세히 살펴보겠습니다.

동일한 클래스에서 여러 객체를 생성합니다:

Dog dog1 = Dog();
Dog dog2 = Dog();

각 객체는 해당 변수들에 대해 자신만의 고유한 값을 가질 수 있습니다:

dog1.name = 'Nicky';
dog1.breed = 'Siberian Husky';

dog2.name = 'Teemon';
dog2.breed = 'Labrador';

객체의 변수에 접근하려면 점 연산자 .를 사용하세요:

print('${dog1.name} is a ${dog1.breed}');
print('${dog2.name} is a ${dog2.breed}');

출력:

Nicky is a Siberian Husky
Teemon is a Labrador

주요 차이점: Dog 클래스는 모든 개가 공유하는 구조를 정의하며, dog1dog2는 고유한 데이터를 가진 개별 객체입니다.

challenge icon

챌린지

쉬움

Student 클래스에서 두 개의 학생 객체를 생성하고 해당 변수를 설정하도록 코드를 완성하세요.

  • student.dart: Student 클래스를 포함합니다 (잠김)
  • driver.dart: 두 개의 객체를 생성하고 데이터를 설정합니다

다음 값을 설정하세요:

  • student1: name은 'Alice'이고 grade는 'A'입니다
  • student2: name은 'Bob'이고 grade는 'B'입니다

치트 시트

클래스는 객체의 구조와 동작을 정의하는 청사진입니다. 객체는 클래스로부터 생성된 인스턴스입니다.

인스턴스 변수를 사용하여 클래스를 정의합니다:

class Dog {
  String name = '';
  String breed = '';
}

클래스로부터 객체를 생성합니다:

Dog dog1 = Dog();
Dog dog2 = Dog();

점 연산자 .를 사용하여 객체 변수에 접근하고 수정합니다:

dog1.name = 'Nicky';
dog1.breed = 'Siberian Husky';

dog2.name = 'Teemon';
dog2.breed = 'Labrador';

객체 변수에 접근합니다:

print('${dog1.name} is a ${dog1.breed}');
// 출력: Nicky is a Siberian Husky

직접 해보기

import 'student.dart';

void main() {
  // TODO: 두 개의 Student 객체 생성


  // TODO: student1의 이름과 성적 설정 (이름: 'Alice', 성적: 'A')


  // TODO: student2의 이름과 성적 설정 (이름: 'Bob', 성적: 'B')


  print('${student1.name} has grade ${student1.grade}');
  print('${student2.name} has grade ${student2.grade}');
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

객체 지향 프로그래밍의 모든 레슨