생성자란

한민욱·2024년 5월 31일

생성자에 대해서 알아볼거예요

생성자(Constructor)는 객체를 생성할 때 호출되는 특별한 종류의 메서드입니다. 생성자의 주요 목적은 클래스로부터 객체를 초기화하는 것입니다. 객체가 생성될 때마다 호출되며, 객체의 초기 상태를 설정하는 역할을 합니다. 자바에서 클래스에는 하나 이상의 생성자를 정의할 수 있으며, 생성자가 정의되지 않은 경우 기본 생성자가 자동으로 생성됩니다.

라네요.

생성자의 특징

  • 메서드와 유사: 생성자도 일종의 메서드이지만, 반환 타입을 가지지 않고 클래스의 이름과 동일합니다.
  • 객체 초기화: 객체를 생성하면서 필드를 초기화하거나, 다른 초기화 작업을 수행합니다.
  • 명시적 또는 암시적 호출: 명시적으로 호출되는 생성자와, 다른 생성자를 호출하는 암시적인 방식이 있습니다.
  • 오버로딩: 여러 개의 생성자를 정의하여 다양한 초기화 방식을 제공할 수 있습니다.

객체를 초기화하는 이유..?

객체를 초기화하는 이유는 객체가 사용될 수 있는 상태로 만들기 위해서입니다. 객체를 생성할 때는 해당 객체의 필드를 적절한 값으로 초기화하여 객체가 제대로 동작하고 의도된 대로 작동할 수 있도록 해야 합니다.

그러니까 클래스로부터 객체를 생성할 때 생성자가 호출되고 이 친구가 객체의 초기화를 담당하는데, 이 때 객체의 초기화란 위의 글 대로입니다. 생성자를 실행시키지 않고는 클래스로부터 객체를 만들 수가 없어요.
new 연산자에 의해서 생성자가 성공적으로 실행이 되면 힙 영역에 객체가 생성되고 객체의 주소가 리턴 되는데
이 리턴 된 객체의 주소는 클래스 타입 변수에 저장되어서 객체에 접근할 때 이용돼요.

참고로 모든 클래스는 생성자가 반드시 존재하고 하나 이상을 가질 수 있답니다. 객체=포인터라 생각해도 될라나..

각설하고 생성자의 목적 보실게요.

생성자의 목적

  • 객체 초기화: 객체를 생성하면서 필드를 초기화하여 객체를 사용할 수 있도록 합니다.
  • 매개변수 전달: 생성자를 통해 매개변수를 전달하여 객체의 초기 상태를 지정할 수 있습니다.
  • 오버로딩: 여러 개의 생성자를 정의하여 다양한 초기화 방식을 제공할 수 있습니다.
  • 인스턴스 변수 초기화: 생성자를 통해 인스턴스 변수를 초기화하고, 객체의 초기 상태를 설정합니다.

하는 김에 이거까지 합시다

this란?

생성자에서 this.는 현재 객체를 가리키는 특수한 키워드입니다. this는 현재 객체를 참조하며, 주로 인스턴스 변수와 메서드를 참조할 때 사용됩니다.

this 쓰는 목적?

  • 인스턴스 변수 참조: 생성자에서 인스턴스 변수를 초기화할 때, 인스턴스 변수매개변수의 이름이 동일한 경우에 this.를 사용하여 인스턴스 변수를 명시적으로 참조할 수 있습니다.(참고로 인스턴스 변수는 클래스의 변수)

  • 다른 생성자 호출: 하나의 생성자에서 다른 생성자를 호출할 때 사용됩니다. 생성자 내부에서 this()를 호출하여 같은 클래스 내의 다른 생성자를 호출할 수 있습니다. 이를 통해 코드의 중복을 줄이고 재사용성을 높일 수 있습니다.

다음은 접근제한자에 대해서 알아볼 예정입니다~!

profile
나날이 성장하고 싶은 백엔드 개발자

0개의 댓글