프로그램/Java

[Java] 생성자( Constructor )

승미니1024 2016. 12. 6. 10:34

자바 생성자(Constructor) 사용법



생성자(Constructor)란



클래스 변수에 메모리를 할당 즉 인스턴스를 만드는 과정에서 호출되는 함수를 생성자 함수라 한다.

생긴 것은 아래와 같이 new 옆에 함수 모양처럼 생긴 것이 생성자 이다.


human jack = new human();


기본적으로 클래스를 만들때 생성자 함수를 정의 하지 않아도 컴파일 에러나 실행 에러나 나지 않는다.

아래처럼 생성자를 따로 구현 하지 않아도 상관 없다.


package sample;


public class human {

public String job;

}


일반적으로 생성자에서는 클래스가 사용할 준비가 되어 있도록 초기화 하는 작업을 한다.

예를 들어 아래와 같이 위의 human 클래스를 사용 한다고 해보자.


package sample;


public class sample {

public static void main(String[] args) {

   human jack = new human();

   System.out.println( " job : " + jack.job );

}

}


결과가 어떻게 출력 될까.. 아래 처럼 null이라고 의도 하지 않는 값이 출력이 된다.


job : null 



우리는 프로그래밍 할 때 언제나 의도한 값이 나와야 한다. 

그래서 다음과 같이 오류 값이 나오지 않도록 클래스의 변수를 사용 가능한 상태로 초기화 한다.


package sample;


public class human {

public String job;

public human()

{

job = "";

System.out.println("기본 생성자 호출");

}

}

 

이렇게 생성자에 job 변수를 초기화 시켜주면 null이라는 의도 하지 않는 값은 나오지 않는다.

생성자는 아래 처럼 만들면 되며 일반 함수와 만들 때 차이점은 리턴 형식이 없다는 점이다.


 [접근 범위][함수 명]( 인자1, 인자2... ) 


생성자에도 인자값을 넣을 수 있는데 다음과 같이 만드는 것도 가능하다.


package sample;


public class human {

private int age;

private String name;

private String job;

public human(int age, String name, String job)

{

this.age = age;

this.name = name;

this.job = job;

System.out.println("값 초기화 생성자 호출");

}

}

 

생성자에 인자가 추가 되면 실행 할 때 인자 값을 넣어서 호출 할 수 있게 된다.


package sample;


public class sample {

public static void main(String[] args) {

human hoke = new human(20, "hoke", "tester");

}

}


이상으로 자바에서 생성자 호출하는 방법에 대해 설명 했습니다.

도움이 되셨습니까?

반응형