이번 포스팅은 자바의 생성자(constructor)에 관해 알아보자.


생성자는 자바뿐만 아니라 객체지향언어의 중요한 구조이기 때문에, 자바에 국한짓지 말고, 크게 이해하면 좋다.


생상자의 구조를 자바언어를 통해 설명하고자 한다.


먼저, 하나의 변수를 사용한다고 가정 해보자.


 int a; 



위의 선언한 int형 변수 a는 의미가 있는가? 


답은 No이다. 이유는 초기화를 하지 않았기 때문이다.


int a=10;


위와 같이 초기화 해야 비로소 변수 a는 상수 10을 가리키는 변수가 된 것이다. 


이렇게 의미있는 데이터를 넣는것 을 자바에서는 초기화라고 명명한다.


그렇다면, 하나의 클래스(class)를 사용 한다고 가정 해보자. 


위의 예시 처럼 의미있는 클래스를 만들기 위해 서는 초기화 작업을 거쳐야 할 것이다.


그렇다면 무엇을 초기화 해야할까? 라는 질문에 봉착한다.


클래스는 크게 나누자면 멤버변수 와 메서드 이다.


class Test{

    public int num;
    public String str;
    
    public Test(int num,String str){
        this.num = num;
        this.str = str;    
    }

    public void print(){
        System.out.println("num은"+num+"입니다. , str은"+str"입니다.");
    }
}

     위의 예시는 3번,4번이 멤버변수 , 6~9번,11~13번 까지가 메서드 이다. 


이러한 클래스를 초기화 하려고 한다. 예시 클래스에서 초기화 하는 메서는 Test 메서드이다.


매개변수로 num 과 str 을 받아 클래스의 멤버변수에 값을 넣는 메서드이다. 앞에 this 를 붙여주면 클래스 안의 멤버변수 str을


안붙여주면 매개변수로 받는 str을 의미한다.( 변수의 이름이 같을 경우 구분짓기 위해 this를 쓴다.)


이 메서드는 특이하게 Test 클래스의 이름과 똑같은 Test이름을 가지는 메서드인데,


이러한 메서드를 우리는 생성자라고 부른다.


생성자는 특이하게 함수의 리턴형이 존재 하지 않고 앞서 쓴 예시와 같이 클래스의 이름과 같다.


클래스는 이러한 생성자를 토데로 초기화를 한다. 물론 꼭 생성자를 통해서 멤버변수를 초기화하지 않아도 된다.


하지만, 보통은 생성자를 통해 클래스의 필요한 정보를 초기화 한다 정도만 알면 되겠다.





다음 포스팅은 생성자를 어떻게 사용하는지, 생성자에 관해 좀더 자세히 다루겠다.




'Java' 카테고리의 다른 글

JAVA Static이란?  (2) 2016.03.29
자바 enum 열거형  (0) 2016.01.27
JAVA - 익명클래스(Anonymous class)란?  (3) 2016.01.20
JAVA의 삼항연산자  (4) 2015.12.11
JAVA의 생성자 (2)  (2) 2015.11.17

포스팅이 도움 되셨다면, 커피 한잔 후원해주세요!
더 좋은 포스팅 작성에 큰 힘이 됩니다.

Buy me a coffeeBuy me a coffee

+ Recent posts