Menu
Coddy logo textTech

인스턴스 변수

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

인스턴스 변수는 클래스 내부에서 선언된 변수입니다. 클래스로부터 생성된 각 객체는 다른 모든 객체와 독립적으로 이 변수들의 고유한 복사본을 갖습니다.

타입과 선택적인 기본값을 사용하여 인스턴스 변수를 선언합니다:

class Student {
  String school = 'Dart Academy'; // 기본값이 있음
  String name = '';               // 빈 기본값
  int age = 0;                    // 0 기본값
}

기본값을 가진 변수는 모든 새로운 객체에 대해 동일한 값으로 시작합니다. nameage와 같은 변수는 값을 설정하기 전까지 비어 있거나 0으로 시작합니다.

this를 포함한 메서드를 사용하여 개별 객체 데이터를 설정합니다:

class Student {
  String school = 'Dart Academy';
  String name = '';
  int age = 0;

  void setInfo(String name, int age) {
    this.name = name; // this.name = 인스턴스 변수
    this.age = age;   // this.age  = 인스턴스 변수
  }
}

학생들을 생성하고 데이터를 할당합니다:

Student student1 = Student();
Student student2 = Student();

student1.setInfo('Alice', 20);
student2.setInfo('Bob', 22);

점 연산자를 사용하여 인스턴스 변수에 접근합니다:

print('${student1.name} is ${student1.age} at ${student1.school}');
print('${student2.name} is ${student2.age} at ${student2.school}');

출력:

Alice is 20 at Dart Academy
Bob is 22 at Dart Academy

school은 기본값을 가지고 있기 때문에 두 객체 모두 동일하지만, nameagesetInfo를 통해 개별적으로 설정되었으므로 각 객체마다 고유하다는 점에 주목하세요.

challenge icon

챌린지

쉬움

student.dart 파일의 Student 클래스를 완성하세요:

  1. 기본값이 'Dart Academy'String school 인스턴스 변수를 선언하세요
  2. 기본값이 ''String name 인스턴스 변수를 선언하세요
  3. 기본값이 0int age 인스턴스 변수를 선언하세요
  4. String nameint age를 매개변수로 받아 this를 사용하여 객체의 값을 설정하는 setInfo 메서드를 추가하세요

driver.dart 파일은 두 명의 학생을 생성하고 그들의 정보를 출력하여 클래스를 테스트합니다 (수정 불가).

치트 시트

인스턴스 변수는 클래스 내부에서 선언된 변수입니다. 각 객체는 이러한 변수의 자체 복사본을 가집니다.

타입과 선택적인 기본값을 사용하여 인스턴스 변수를 선언합니다:

class Student {
  String school = 'Dart Academy'; // 기본값을 가짐
  String name = '';               // 빈 기본값
  int age = 0;                    // 0 기본값
}

개별 객체 데이터를 설정하려면 this를 사용하는 메서드를 사용하세요:

class Student {
  String school = 'Dart Academy';
  String name = '';
  int age = 0;

  void setInfo(String name, int age) {
    this.name = name; // this.name = 인스턴스 변수
    this.age = age;   // this.age  = 인스턴스 변수
  }
}

객체를 생성하고 데이터를 할당합니다:

Student student1 = Student();
Student student2 = Student();

student1.setInfo('Alice', 20);
student2.setInfo('Bob', 22);

점 연산자를 사용하여 인스턴스 변수에 접근합니다:

print('${student1.name} is ${student1.age} at ${student1.school}');
// 출력: Alice is 20 at Dart Academy

직접 해보기

import 'student.dart';

void main() {
  Student student1 = Student();
  Student student2 = Student();

  student1.setInfo('Alice', 20);
  student2.setInfo('Bob', 22);

  print('${student1.name} is ${student1.age} at ${student1.school}');
  print('${student2.name} is ${student2.age} at ${student2.school}');
}
quiz icon실력 점검

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

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