★ 생성자란?

생성자는 인스턴스가 생성될 때 호출되는 인스턴스 초기화 메서드이이다.

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

 

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

2. 생성자는 리턴 값이 없다.

 

생성자도 오버로딩이 가능하므로 하나의 클래스에 여러 개의 생성자가 있을 수 있다.

 

생성자는 다음과 같이 정의 한다.

클래스 이름(타입 변수명, 타입 변수명...){

인스턴스 생성시 수행될 코드, 주로 인스턴스멤버의 초기화 코드를 적는다

}

예)

class Card{

Card(){//매개변수가 없는 생성자

//..

}

Card(String k, int num){ //매개변수가 있는 생성자.

//..

}

//..

}

사실 연산자 new가 인스턴스를 생성하는 것이지 생성자가 인스턴스를 생성하는 것은 아니다. 생성자라는 용어 때문에 오해하기 쉬운데, 생성자는 단순히 인스턴스 변수들의 초기화에 사용되는 조금 특별한 메서드일 뿐이다. 생성자가 갖는 몇가지 특징만 제외하면 메서드와 다르지 않다.

 

★ 기본 생성자

지금까지는 생성자를 모르고도 프로그래밍을 해왔지만, 사실 모든 클래스에는 반드시 하나 이상의 생성자가 정의 되어 있어야 한다.

그러나 지금까지 클래스에 생성자를 정의하지 않고도 인스턴스를 생성할수 있었던것은 컴파일러가 제공하는 기본생성자때문이다.

 

컴파일 할때 , 소스파일의 클래스에 생성자가 하나도 정의 되지 않은 경우 컴파일러는 자동적으로 아래와 같은 기본 생성자를 추가해 컴파일을 한다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+ Recent posts