[JAVA] 자바의 생성자

hyelim·2023년 4월 28일
0

JAVA

목록 보기
3/13
post-thumbnail

아직도 생성자? 하고 하면 명확히 설명이 안되는 거 같아 한번 정리해보고자 한다

스프링 공부중인데 @RequiredArgsConstructor과 같은 생성자 주입

의 경우 나오는 생성자란 무엇일까?

생성자란

생성자는 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드'이다. 따라서 인스턴스 변수의 초기화 작업에 주로 사용되며, 인스턴스 생성 시에 실행되어야 할 작업을 위해서도 사용된다.

생성자 역시 메서드처럼 클래스 내에 선언되며, 구조도 메서드와 유사하지만 리턴값이 없다는 점이 다르다. 그렇다고 해서 생성자 앞에 리턴값이 없음을 뜻하는 void를 사용하지는 않고, 단지 아무 타입도 표시하지 않는다. 생성자의 조건은 다음과 같다.

  • 생성자의 이름은 클래스의 이름과 같아야 한다.
  • 생성자는 리턴값이 없다.

생성자는 다른 메소드들과 같이 오버로딩이 가능하므로

하나의 클래스는 아래와 같이 여러개의 클래스를 가질 수 있다

class Constructor {
  // 매개변수가 없는 생성자
  Constructor() {
  	// ...
  }

  // 매개변수가 있는 생성자
  Constructor(int a, int b) {
  	// ...
  }
}

this()

  • 생성자에서 다른 생성자를 호출할 수도 있는데 이때 this()를 사용한다

  • 주로 코드의 중복을 줄일 목적으로 사용된다

    • this( )는 생성자 코드에서만 사용할 수 있다

    • this( )는 생성자 코드안에서 사용될 때 첫번째 문장으로 다른 코드보다 가장 윗줄에 위치해야 한다

this

  • 객체 자신을 가리키는 레퍼런스 변수로, 자신의 객체에 접근할 때 사용된다

  • 주로 멤버변수와 매개변수의 이름이 동일할 때, 이를 구분하기 위해 사용된다

참조변수를 통해 인스턴스의 멤버에 접근할 수 있는 것처럼 this로 인스턴스 변수에 접근할 수 있다.

https://inpa.tistory.com/entry/JAVA-%E2%98%95-%EB%B3%80%EC%88%98%EC%9D%98-%EA%B8%B0%EB%B3%B8%ED%98%95-%EC%B0%B8%EC%A1%B0%ED%98%95-%ED%83%80%EC%9E%85
https://colossus-java-practice.tistory.com/7

profile
기록용

0개의 댓글