[Java] 생성자( Constructor )
자바 생성자(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"); } } |
이상으로 자바에서 생성자 호출하는 방법에 대해 설명 했습니다.
도움이 되셨습니까?