20.03 ~ 20.08 국비교육/JAVA

생성자의 생략, 코드 중복

찹키리 2020. 3. 25. 02:12

<생성자의 생략>

 

생성자가 정의되어 있지 않으면, 기본생성자(인자가 없는 생성자)가 자동 생성된다. 
그러나, 인자가 있는 생성자가 이미 존재하는 경우, 기본 생성자가 자동 생성되지 않기 때문에 무의식 중에 기본생성자를 호출해버리면 오류가 발생하게 된다. 습관적으로 기본생성자를 정의하자.

 

 

<예제>

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class School2 {
    int kuk = 0;
    int eng = 0;
    int tot = 0;
 
    //기본생성자의 생략
 
    public int hap() {
        tot = kuk + eng;
        return tot;
    }
}
 
public class SchoolMain2
    public static void main(String[] args) {
        School2 sc = new School2(); //기본생성자의 호출
        sc.kuk = 90;
        sc.eng = 100;
        System.out.println("hap: " + sc.hap());
    }
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

 

 

 

 

<코드의 중복>

 

생성자 코드를 작성할 때 생성자 간의 코드 중복이 중첩되면 괄호를 사용해 같은 코드를 반복해서 사용하지 않도록 권장된다.

 

 

<예제>

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class School {
    int kuk = 0;
    int eng = 0;
    int mat = 0;
    int tot = 0;
 
    public School()    {
    }
 
    public School(int kuk) {
        this.kuk = kuk;
    }
 
    public School(int kuk, int eng) {
        this.kuk = kuk;
        //this(kuk); // 괄호 안은 생성자를 가리킴
        this.eng = eng;
    }
 
    public School(int kuk, int eng, int mat) {
        this.kuk = kuk;
        this.eng = eng;
        this.mat = mat;
        //this(kuk, eng) // 중복되는 생성자는 괄호 안으로
    }
 
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

'20.03 ~ 20.08 국비교육 > JAVA' 카테고리의 다른 글

Garbage collection  (0) 2020.03.26
접근제한자  (0) 2020.03.26
변수 유효범위  (0) 2020.03.24
싱글톤(Singletone pattern), final  (0) 2020.03.22
클래스 JVM 메모리 운영, Static variable과 Method  (0) 2020.03.22