• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    해결됨

안녕하세요. 생성자와 속성의 역할에 대해 질문드립니다.

21.12.09 15:27 작성 조회수 124

1

전 강의와 현재의 코드들을 보고 궁금한 점이 생겨서 질문드립니다.

생성자와 속성의 기능에 대한 질문입니다.

Human 클래스안에 속성과 생성자가 둘다 들어있는데

이 강의에서 상속을 예시로 설명하실 때 Name, Height, Age 를 각각 속성으로 설정하시고

Adult, Baby 객체를 만들고 변수에 접근 할 때 속성을 사용하셨는데

그렇다면 생성자는 언제 쓰이고, 왜 필요한 것 인지 모르겠습니다.

그리고 속성의 구조에서 get, set의 기능을 잘 모르겠습니다.

예를 들어 age 변수 값을 설정할때는 tom.Age = 20; 이런식으로 설정하는데

여기서 set 메서드가 작동한다면 value라는 변수는 어떤 역할을 하는것인지 모르겠습니다.

value 대신에 아무 단어라도 들어가면 작동하는건가요?

답변 1

답변을 작성해보세요.

0

안녕하세요 강영환님!

먼저, 속성과 생성자는 그 쓰임의 목적이 다릅니다! 생성자는 클래스에서 객체를 생성하는데 쓰이고, 속성은 객체가 생성된 뒤에 그 객체의 필드에 접근하기 위해 쓰인다고 생각할 수 있습니다. 속성에서 get, set 등을 통해 read와 write의 기능을 제한하고 수정하는 것이죠.

set에서 value는 매개변수의 기능을 합니다. tom.Age = 20 이라고 했을 때, 20이라는 값은 value에 담겨 실제 age 필드 값으로 반영이 되는 것이지요. 바로 반영하지 않고 매개변수를 사용하는 이유는 속성에서 이를 제어할 수 있기 때문입니다. 예를 들어, 이상한 코드지만 속성을 이용하면 아래와 같이 무조건 입력된 값보다 1 크게 나이를 설정할 수도 있겠죠!

 

set => age = value + 1