<생성자>

생성자는 인스턴스(객체)가 생성될 때 호출되는 인스턴스를 초기화하는 메소드이다. 인스턴스 변수의 초기화에 주로 사용된다.

생성자도 클래스 내에 선언되고 구조도 메소드와 유사하지만 return값이 없다는 점이 다르다. 그런데 생성자 앞에 return값이 없다는 것을 의미하는 void를 사용하지도 않는다. 이것이 메소드와 다른 부분이다.

 

생성자의 조건

1. 생성자는 return값이 없다. (void를 써주는 것도 아님)

2. 생성자의 이름은 클래스의 이름과 같아야 한다.

 

Abc a = new Abc();

이런 구문이 있다고 가정하자.

연산자 new에 의해서 메모리에 (heap에) Abc클래스의 인스턴스가 생성된다. 생성자 Abc()가 호출되어 수행된다. 연산자 new의 결과로 생성된 Abc인스턴스의 주소가 반환되어 참조변수 a에 저장되는 것이다.

지금까지 우리가 객체를 만들때 사용했던 클래스이름()이 바로 생성자였다.

 

생성자에는 기본 생성자와 매개변수가 있는 생성자가 있고, 이들도 함수 오버로딩처럼 동작한다.

 

<실습 - 1>



-결과-



<실습 - 2>
이번에는 생성자를 오버로딩한 것을 알아보자.
생성자를 오버로딩 한 후, 다시 기본 생성자로 객체를 생성하고 싶다면, 무조건 기본생성자를 만들어 줘야한다!



<실습 - 3>



-결과-



<초기화 블럭>
초기화 블럭에는 클래스 초기화 블럭과, 인스턴스 초기화 블럭이 있다.
클래스 초기화 블럭은 클래스 변수의 초기화에 사용되고, 인스턴트 초기화 블럭은 인스턴스 변수의 초기화에 사용된다.
 
클래스 초기화 블럭은 클래스가 메모리에 처음 로딩될 때 한번만 수행되며, 인스턴스 초기화 블럭은 생성자와 같이 인스턴스를 생성할 때 마다 수행된다.
 
<실습>
생성되는 순서를 잘 알아보자.


-결과-


LIST

+ Recent posts