인프런 커뮤니티 질문&답변
안녕하세요. 생성자와 속성의 역할에 대해 질문드립니다.
해결된 질문
작성
·
239
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




