다루두루

블로그 이미지

차케요

공부하면서 정리하는 노트같은 블로그입니다.

[JAVA] 자바 생성자

[JAVA]자바 공부하기 2013. 12. 28. 15:01

 

 생성자(Construct)라는 것은 멤버 필드을의 초기값을 할당해주는 역할을 합니다. 그리고 클래스의 객체를 생성할때는 무조건 Construct를 호출해야만 객체를 생성할 수 있습니다. 또 클래스 내부에 Construct 가 하나도 없으면 자동으로 default 가 있는 것으로 인식합니다.

예제를 봐가면서 자세히 알아보도록 하겠습니다.

 

먼저 클래스의 객체를 만드는 과정입니다.

다음과 같은 예제를 살펴보도록 하겠습니다 . 아래 그림에서 Construct 부분을

작성하지 않아도 저거와 똑같은 default가 있는것과 같습니다.

Ex04클래스의 객체 aaa를 만드는 방법은 다음과 같습니다.

 

■  Ex04 aaa = new Ex04();

 

여기서 앞쪽의 Ex04는 클래스의 이름이고, 뒤쪽의 Ex04는 위 그림에 있는 Construct입니다.

조금 설명을 덧붙이자면..

 

두번째의 특징의 경우 결과형 리턴값이란 어디에선가 메서드를 호출할때는 그 메서드를 실행한 후에 실행에 대한 결과값을 돌려줘야 하는데요. 그렇게 돌려주지 않아도 된다는 의미입니다. 일반 메서드에서는 결과값을 돌려받지 않기 위해서는 void만 적으면 되지만 여기에선 void마저도 적을 필요가 없습니다.

 

세번째의 경우 클래스 객체를 만들때 규칙이므로 반드시 따라야 합니다. Construct는 하나의 클래스에 여러개가 있을 수 있습니다.

 

여섯번째의 하나의 클래스 내부에 여러개가 있는 경우를 예를 들어보겠습니다. 우선 여러개가 있기 위해서는 매개 변수의 개수가 다르거나 매개변수의 자료형이 틀려야 한다는 조건이 있습니다.

 

 

 

다음으로 일곱번째에 있는 this(매개변수) 에 대해서 알아보도록 하겠습니다.

이것은 하나의 Construct가 또다른 Construct를 호출할 수 있는 방법을 제공하는 것인데요.

예제를 살펴보도록 하겠습니다.

 

위와 같은 예제에서 매개 변수를 하나만 받아 들여 d의 값을

바꾸는 Construct를 추가한다면 이렇게 될것입니다.

 

위의 형태를 살펴보면 너무 중복되는 부분이 많습니다.

이렇게 중복되는 부분을 줄이려면 바로 위의 Ex04()를 호출해서

d의 값만 바꿔버리면 될것입니다. 이럴때 다음과 같이 this()를 사용합니다.

 

 

이렇게 되면 Ex04(int x) 가 호출이 될때 가장먼저 this()가 실행이 되겠죠. 그러면 Ex04()가 먼저 한번 실행을 해서 각 자료의 값들을 할당을 합니다.  그리고 나서 마지막에 d자리에 x의 값을 넣게 되는 것입니다. 이때 주의할점은 this()는 가장 첫줄에 적혀야 한다는 것입니다.  그렇지 않으면 에러가 발생하게 됩니다.

 

 

 

 

 

 

그렇다면 여기서 d의 값과 c의 값을 변경하려면 어떻게해야 할까요?

다음과 같이 this()를 사용하면 됩니다.

 

이런 경우는 Ex04(int x, int y)를 호출하면  this(x)라는 것이 x의 값을 가지고 Ex04(int x)가 먼저 실행하게 되고 this()가 제일 위에 있는 Ex04()를 실행하게 만드는 원리 입니다.  

저작자표시 비영리 변경금지 (새창열림)
Posted by 차케요

    최근...

  • 포스트
  • 댓글
  • 트랙백
  • 더 보기

카테고리

NEW (900)
아이폰 개발 기초 (7)
취미 (16)
아두이노 (16)
[안드로이드] 어플만들기 (77)
안드로이드 기초 다지기 (61)
슈팅게임 만들기 (4)
[JAVA]자바 공부하기 (48)
C언어 알고리즘 (61)
[Unity3D]유니티3D 강좌 (7)
컴퓨터 (325)
포토샵CS2 강좌 (6)
유용한 프로그램 (244)
리눅스 노트정리 (22)
임베디드 리눅스 (11)
New블로그 (9)
음식의 효능 (4)
일반상식 (56)
HTML 공부 (40)
포토샵 공부 (36)
엑셀 (6)
파워포인트 공부 (19)
노트정리 (38)
일상 (33)
TV영화 (85)
방명록 : 관리자 : 글쓰기
차케요's Blog is powered by daumkakao
Skin info material T Mark3 by 뭐하라
favicon

다루두루

공부하면서 정리하는 노트같은 블로그입니다.

  • 태그
  • 링크 추가
  • 방명록

관리자 메뉴

  • 관리자 모드
  • 글쓰기
  • NEW (900)
    • 아이폰 개발 기초 (7)
    • 취미 (16)
      • 아두이노 (16)
    • [안드로이드] 어플만들기 (77)
      • 안드로이드 기초 다지기 (61)
      • 슈팅게임 만들기 (4)
    • [JAVA]자바 공부하기 (48)
    • C언어 알고리즘 (61)
    • [Unity3D]유니티3D 강좌 (7)
    • 컴퓨터 (325)
      • 포토샵CS2 강좌 (6)
      • 유용한 프로그램 (244)
    • 리눅스 노트정리 (22)
      • 임베디드 리눅스 (11)
    • New블로그 (9)
    • 음식의 효능 (4)
    • 일반상식 (56)
    • HTML 공부 (40)
    • 포토샵 공부 (36)
    • 엑셀 (6)
    • 파워포인트 공부 (19)
    • 노트정리 (38)
    • 일상 (33)
    • TV영화 (85)

카테고리

PC화면 보기 티스토리 Daum

티스토리툴바