까먹 지식 살리기 _ 생성자

아기 개발자·2024년 12월 28일

Flutter

목록 보기
2/4

객체지향 프로그래밍의 시작은 클래스

객체지향 프로그래밍의 기본은 클래스로부터 시작한다.
클래스를 이용해 객체를 선언하면 그 객체를 클래스의 인스턴스라 부른다.
즉, 클래스의 객체를 인스턴스라고 하는 것이다.

메서드 : 클래스에 종속되는 함수
멤버 변수 : 클래스에 종속된 변수
생성자 : 클래스의 인스턴스를 생성하는 메서드

Dart

class Idol {
  final String name;
  // 생성자에서 입력받는 변수들은 보통 final 키워드 사용 
  
  Idol(String name) : this.name = name;
  // 생성자 선언
  // 클래스와 같은 이름이여야 함 
  
  void sayName() {
    print('저는 ${this.name}입니다.');  
  }
}

void main() {
  Idol blackPink = Idol('블랙핑크'); // 생성자 호출
  blackPink.sayName(); // 객체 사용
  
  Idol bts = Idol('BTS');
  bts.sayName();
}

클래스의 내부 속성을 지칭하고 싶을 때는 this 키워드를 사용한다.
생성자를 호출해 새로운 객체 blackPink를 만들고, 블랙핑크라는 String을 name변수에 저장한다.
Idol 클래스 하나로, 여러 Idol 인스턴스를 생성해 중복 코딩을 방지한다.

생성자는 쉽게 말해 객체를 만들 때 필요한 값을 넣어주는 입구라고 생각하면 된다.
블핑하고 방탄은 아이돌 클래스 설계도로 만들어진 실제 아이돌 객체이다.


그렇다면 왜 생성자가 입구인가?

Java

class Person {
    String name;
    int age;

    // 생성자
    Person(String name, int age) {
        this.name = name; // 전달받은 값을 객체의 필드에 저장
        this.age = age;
    }
}

// 객체 생성
Person p = new Person("Alice", 25); 

생성자는 객체를 만들 때 필요한 값을 전달 받아 객체의 초기 상태를 설정하는 입구이다.
위 코드에서 Person 클래스의 생성자는 name과 age를 받아 객체의 필드를 초기화 한다.
( 클래스에는 메소드와 필드가 있는데, 필드는 쉽게 말해 객체가 가지는 데이터를 저장하는 변수라고 생각하면 된다. )

객체를 만들 때 생성자가 자동으로 호출되고,
생성자는 초기값을 받아 객체 안의 변수를 초기화하고
객체를 사용할 준비를 끝내게 하는 역할을 한다.

profile
아기 개발자의 험난한 개발 성장 일기

0개의 댓글