객체가 생성될 때 객체의 초기화를 위해 실행되는 메소드 이다.
생성자는 객체가 생성되는 순간에 자동으로 호출되는 메소드 이다.
모든 객체 지향 언어에 존재한다.생성자의 기본 형태 접근지정자 클래스명 (매개변수) {작업 코드} 기본생성자 : public class ( ) { } 매개변수가 있는 생성자 : public class (int x, String y){ System.out.printf("x: %d, y: %s",x,y) }
- 생성자의 이름은 반드시 클래스의 이름과 동일하다.
- 생성자는 여러 개 작성(오버로딩)할 수 있다.
- 생성자는 new를 통해 객체를 생성할 때 한 번만 호출된다.
- 생성자는 함수호출과 다르게 리턴 타입이 없다.(지정할 수 없다.)
- 생성자의 목적은 객체가 생성될 때, 필요한 초기 작업을 위함이다.
자바의 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메소드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메소드를 정의할 수 있다.
메소드의 이름이 같고 매개변수의 개수나 타입이 달라야 오버로딩이 가능하다.
- 매개변수와 실행 코드가 없어 아무 작업도 하지 않는 단순 리턴하는 생성자 이다.
- 디폴트생성자라고도 불리며 클래스에 생성자를 선언해 주지 않으면 자동으로 생성된다.
- 생성자의 역할이 없는 단순 리턴만 하는 클래스 라면 생성자의 생략이 가능하다(자동생성)
- 매개변수가 있는 생성자를 하나라도 선언해 주었다면 기본생성자는 자동으로 생성되지 않는다.
생성자의 매개변수로 선언된 변수의 이름이 인스턴스 변수와 같을 때 인스턴스 변수와 지역변수를 구분하기 위해서 사용한다.
예를들어 ex = ex;는 불가능 하지만 this.ex = ex;형태가 가능해 진다
같은 클래스의 다른 생성자를 호출할때 사용한다.