[Java]생성자란

jh5959·2026년 2월 25일

Java

목록 보기
9/9

생성자: 객체 초기화 메서드
1) 생성자 이름 = 클래스 이름
2) 반환타입없음(void안씀)
3) 다른 생성자 호출은 반드시 첫줄에서 해야 함
4) 다른 생성자 호출 시 this() 사용

모든 클래스에 생성자가 한개는 있어야 한다
생성자가 없으면 컴파일러가 기본 생성자를 만든다


1. 생성자는 메서드인가
-> 객체 초기화 메서드 라고 하고 오버로딩도 됨, 클래스 이름과 같아야 하고 리턴은 없음 그렇다고 void를 쓰진 않음 메서드 같지만 완전 메서드라고 하긴 좀 다른 듯 하다

2. 생성자는 인스턴스 변수를 초기화하기 위함이라고 했는데 왜 생성자를 사용해야 하나 그냥 처음부터 인스턴스 변수를 초기화 하면 안되는지 그리고 참조변수.변수명 = 값; 이렇게 초기화 하면 되는거 아닌가
->
iv가 많아지면 코드 줄이 늘어나기 때문에 생성자를 사용하여 직관적으로 효율적으로 코드를 작성한다

3. 왜 생성자 내에서 다른 생성자를 호출할 때 왜 반드시 첫 줄에 써야 하는가
-> 초기화 덮어쓰기를 방지하기 위함이다. 1번 생성자에서 초기화를 하고 2번 생성자를 호출한다면 1번 생성자의 초기화는 무용지물이다 그렇기 때문에 2번 생성자를 먼저 호출하고 1번 생성자의 초기화를 해야 두 생성자의 초기화를 모든 사용할 수 있다
객체 생성의 무결성 보장을 위함이다. 객체는 완성된 상태로 태어나야 한다

4. 참조변수 this란
-> 참조변수는 객체의 주소를 가지고 있는 변수인데 참조변수 this는 객체의 주소를 가지고 있다
new로 생성된 객체를 생성자가 받는데 그걸 받는 변수가 this이다 모든 생성자의 매개변수로 this가 있다
그리고 생성자는 return this가 생략되어있다 그래서 생성자에서 this.iv변수이름 이렇게 해야 자신의 객체의 멤버변수를 가르키는 것이다 this를 붙여야 iv변수인거임 lv랑 구분하기 위해서 쓴다 이름을 다르게 하면 this를 안써도 됨

5. this (참조변수)와 this() (생성자 호출)의 차이점
->참조변수 this랑 생성자 호출하는 this()랑은 이름만 비슷하지 전혀 다른 일을 한다 this는 객체 자신의 iv변수를 가르킬 때 사용이 되고 this()는 생성자 내에서 다른 생성자를 호출할 떄 사용한다 연관지어서 생각하지 마라

0개의 댓글