인스턴스가 생성될 때 호출되는 인스턴스 (변수) 초기화 메서드
- 생성자도 메서드 중 하나이며 인스턴스를 만드는 역할은 연산자 new 가 하는 것이고 생성자는 인스턴스 변수 초기화에 사용되는 것이다.
- 생성자의 이름은 클래스의 이름과 같고 리턴 값이 없다
( void가 원래 붙어야하지만 생략가능)- 클래스에는 반드시 하나이상의 생성자가 있어야한다.
생성자가 하나도 없을 시에는 컴파일러가 기본 생성자를 추가한다.class Main { public static void main(String[] args) { Example e = new Example(); //error Example e1 = new Example(1,3); //이렇게 써야함 System.out.println(e1.i); //출력 : 1 System.out.println(e1.j); //출력 : 3 } } class Example{ int i; int j; Example(int a, int b){ i = a ; j = b; }; }
- public 클래스의 경우는 기본 생성자로 public 클래스이름( ){ }이 추가된다.
생성자에서 다른 생성자 호출하기
생성자끼리도 서로 호출 할 수 있는데 그 조건으로는
- 생성자의 이름으로 this를 사용해야 함.
- this() : 생성자
- this : 객체 자신을 가리키는 참조변수
- 반드시 첫 줄에서만 호출이 가능함.
class Main { public static void main(String[] args) { Example e1 = new Example(); System.out.println(e1.i); System.out.println(e1.j); } } class Example{ int i; int j; Example(){this(1,2);}; Example(int a){this(a,3);}; Example(int a, int b){ i = a ; j = b; }; }