파게로그

생성자 본문

콤퓨타 왕기초/Java

생성자

파게 2020. 11. 18. 00:43

초기화를 위한 특별한 무명의 함수로서, 다음의 조건을 만족한다.

 

1. 객체가 생성되자마자 무조건, 제일 먼저 실행된다.

2. 생성될 때, 단 한 번만 실행된다.

 

함수의 이름이 없으며, 정의할 때의 함수명은 초기화할 객체를 한정하기 위한 형식적인 명칭일 뿐이다.

리턴 타입이 정의되지 않는다.

생성자도 오버로딩이 가능하다.

기본 생성자는 컴파일러가 자동으로 만든다. 참조변수가 실체화될 때는 null이, 기본 자료형(값 변수)이 실체화될 때는 0으로 초기화된다. 단, 기본 생성자가 없는 상태로 오버로드만 했다면 기본 생성자를 사용할 수 없게 된다. 그러면 상속에서 여러가지 난제에 마주치게 된다.

class Student {
    String name;
    int id;
    
    // 생성자 overloading
	public Student() {
    	/* this.name = "홍길동";
           this.id = 20200000; */
        this("홍길동", 20200000);
        /* 생성자는 방금 생성된 객체가 있어야만 호출 가능하다.
        그렇기에 this를 통해 재호출할 수 있다. */
    }
    
    public Student(String name, int id) {
    	name = name;
        id = id; // this.id에서 this 생략 가능
    }
}

 

'콤퓨타 왕기초 > Java' 카테고리의 다른 글

코드 재사용  (0) 2020.11.18
Has A 관계와 Is A 관계  (0) 2020.11.18
method overloading in Java  (0) 2020.11.16
다른 언어와 헷갈리는 문법을 모아보자  (0) 2020.11.14
break문에서의 label  (0) 2020.11.12
Comments