반응형

생성자란?

 

new 연산자에 의해서 객체 생성시 항상 실행하는 것으로, 객체 초기화시에 사용된다.

 

특징

 

- 객체를 생성할 때 멤버 변수의 값을 쉽게 초기화하기 위함이다.

- 클래스 이름과 동일하다.

- 클래스에 인자 있는 생성자를 정의하고, 빈 생성자도 같이 사용하고 싶다면 반드시 정의해주어야 한다.

- 하나의 클래스 안에 여러개의 생성자를 정의할 수 있다.

 

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
class ProDuctions {
 
    String name;
    int price;
 
    public ProDuctions() {
        // TODO Auto-generated constructor stub
 
    }
 
    public ProDuctions(String name) {
        // TODO Auto-generated constructor stub
        this.name = name;
    }
 
    public ProDuctions(int price) {
        // TODO Auto-generated constructor stub
        this.price = price;
    }
 
    public ProDuctions(String name, int price) {
        // TODO Auto-generated constructor stub
        this.name = name;
        this.price = price;
    }
 
}
 
public class ProductionMain {
 
    public static void main(String[] args) {
        ProDuctions pd = new ProDuctions();
        System.out.println("pd.name : " + pd.name + "   pd.price : " + pd.price);
 
        ProDuctions pd1 = new ProDuctions("감자");
        System.out.println("pd1.name : " + pd1.name + "   pd1.price : " + pd1.price);
 
        ProDuctions pd2 = new ProDuctions(50000);
        System.out.println("pd2.name : " + pd2.name + "   pd2.price : " + pd2.price);
 
        ProDuctions pd3 = new ProDuctions("고구마"123456);
        System.out.println("pd3.name : " + pd3.name + "   pd3.price : " + pd3.price);
 
    }
 
}
 

 

6-8 줄 : 빈 생성자를 정의

11-13 줄 : 객체 생성시 name 값을 초기화 시키고 this 생성자를 통해 자신 객체를 참조한다. this의 생성 이유는 클래스에서 정의된 멤버 변수임을 정의하기 위해서이다.

 

16-18 줄 : price 값을 초기화시키면서 객체를 생성할 수 있는 생성자를 정의하는 부분

21-24 줄 : name과 price 값을 초기화시키고 생성자를 정의

 

32-42 줄 : 각 다른 생성자를 호출해서 객체를 생성하고 각 변수 값을 출력한다.

 

 

반응형

'JAVA > JAVA' 카테고리의 다른 글

9 - 상속  (0) 2020.03.04
7 - 메소드  (0) 2020.03.04
6 - 클래스 ( class )  (0) 2020.03.03
5 - 배열(Arrary)  (0) 2020.03.03
4 - 조건문 if & switch  (0) 2020.03.03

+ Recent posts