자바 생성자에 대해서 알아보도록 하겠습니다.
생성자라고 하면, 자바는 객체를 선언해야 사용할 수 있습니다.
객체를 선언할때 처음으로 불려지는 메소드로 생각 하시면 될것 같습니다.
생성자를 선언할때 조건이 있습니다.
그 조건에는 아래와 같습니다.
1. 생성자 선언 조건
- 생성자의 이름은 클래스 이름과 동일해야 합니다.
- return값이 없습니다.
- 생성자는 생략이 가능 합니다.
하지만, 생성자가 없는 클래스에 대해 컴파일러는 기본 생성자를 생성 합니다.
- 특별한 경우가 아니면 접근 지정자는 기본적으로 public 이지만, 외부에서 직접 객체 생성을 못하도록
하고 하는 경우에는 private 또는 protected 사용 합니다.
( 추상 클래스 및 static멤버만 가진 클래스 / 싱글톤 클래스)
- 생성자는 매개변수를 지정해서 만들수 있습니다.
2. 생성자 샘플 - 1
>> Common java |
package com;
public class Common { String gubun =""; int status = 0;
//매개변수가 없는 생성자 Common(){ System.out.println("생성자!!!"); } //매개변수가 있는 생성자 Common(String str){ gubun = str; System.out.println("생성자!!!"); } //매개변수가 있는 생성자 Common(String str , int num){ gubun = str; status = num; }
} |
1. Common() 인자값이 없는 생성자이며, 생성자!!!를 출력합니다.
2. Common(String str) str인자값을 받는 생성자이며, 입력받은 str을 gubun 변수에 대입합니다.
또한, 생성자!!!를 출력 합니다.
3. Common(String str , int num) str인자값 및 num값을 받는 생성자 이며, 입력받은 str은 gubun 변수에
대입하고, num은 status에 대입합니다.
>> Test java |
package com;
public class Test { public static void main(String[] args) {
/*Common이란 클래스를 aa 객체로 생성함. 생성시 Common() 생성자를 호출함.*/ Common aa = new Common(); /*Common이란 클래스를 bb 객체로 생성함. 생성시 Common(String str) 생성자를 호출함 */ Common bb = new Common("TEST"); /*Common이란 클래스를 cc 객체로 생성함. 생성시 Common(String str , int num) 생성자를 호출함 */ Common cc = new Common("TEST", 1);
} }
|
>> Test java 파일은 main메소드가 있으며, 실행시 객체 aa , bb , cc 를 생성 합니다.
동일한 자바를 생성하지만, 각각다른 객체를 생성 합니다.
또한, 생성시 생성자를 다르게 호출하여 기본값을 셋팅 합니다.
3. 생성자 샘플 -2
>> Common java |
package com;
public class Common { String gubun =""; int status = 0; //매개변수가 없는 생성자 Common(){ this("aa"); //common(String str) 생성자를 호출함. System.out.println("생성자!!!"); } //매개변수가 있는 생성자 Common(String str){ this(str,10); // Common(String str , int num) 생성자를 호출함. System.out.println("생성자!!!"); } //매개변수가 있는 생성자 Common(String str , int num){ //변수앞에 this를 붙이면 해당 클래스의 선언된 변수를 의미 합니다. this.gubun = str; status = num; } }
|
>> Common java 파일은 생성자에서 다른 생성자를 호출하는 코딩을 했습니다.
생성자에서 다른 생성자를 호출할 경우 this를 사용하며, 생성자의 맨 첫번째 줄에 코딩이 되야 합니다.
이유는 생성자 내에서 값에 대한 초기화를 진행 하는데 다른 생성자에서도 값을 조기화 하는 부분을
막기 위함입니다.
Common aa = Common(); 으로 객체를 생성할 경우 common() 생성자가 호출되고 this("aa")를 만나
Common(String str) 생성자를 호출되고 this(str,10)를 만나 Common(String str , int num) 생성자를
호출하게 됩니다.
4. 정리
- 생성자는 객체 생성시 무조건 한번 호출됩니다.
- 생성자는 리턴 값이 없습니다.
- 생성자는 인자값을 다르게 하여, 여러개 선언 할 수 있습니다.
- 생성자의 이름은 클래스 이름과 동일해야 합니다.
- 생성자를 통해 변수 초기화를 쉽게 할 수 있습니다.
- 생성자에서 다른 생성자를 호출할 경우 this를 사용합니다.
- this를 사용할 경우 생성자의 맨 첫번재 줄에 코딩이 되야 합니다.
다음에는 메소드에대해서 알아보도록 하겠습니다.
'관심1 > JAVA' 카테고리의 다른 글
자바 변수 및 주석 에 대해 알아보기 (0) | 2016.12.08 |
---|---|
자바 메소드에 대해서 알아보기 (0) | 2016.12.05 |
이클립스 자바 프로젝트 생성 및 실행 (0) | 2016.11.29 |
이클립스(eclipse) 종류 및 설치 (0) | 2016.11.20 |
JAVA JDK 설치 (0) | 2016.11.19 |