• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

getter와 setter에 대한 의문입니다.

23.01.09 19:33 작성 조회수 289

0

  1. const를 idol.formList앞에 붙여도 된다고 하셔서 const idol.fromList로 실행해보았는데 실행이 안되서요, 왜 그런지 알 수 있을까요?

  1. getter를 학습하면서 들게 된 의문입니다.

    String get firstmember {

    return this.members[0];

    }

    이 get함수는 꼭 class함수 안에서 실행이 되야하는 이유가 있나요? class에서 만들어준 this.members의 값은 class를 나가게 되면 쓸모가 없어지는건가요? 그러기에는 애초에 이전 강의에서 class함수의 this로부터 값을 받아온 name과 members의 값을 class함수가 아닌 main함수에서 출력을 시킨걸로 알고 있어서요..어떻게 된건지 알려주시면 좋을 것 같습니다.

  2. setter를 학습하면서 들게 된 의문입니다.

    1)

    set firstmember(String name){

    this.members[0]= name;

    }

    여기에서 String name이라는 파라미터를 받게 되는 것으로 알고 있는데요, class함수에서 제일 먼저 아이돌 그룹 이름을 위해 선언한 String name이랑은 다르게 아예 순수하게 String변수를 파라미터로 받겠다는 의미일까요?

    2) blackPink.firstmember = '코드팩토리';

    그리고 setter를 설정하고 보이드 함수에서 이렇게 바꾸셨습니다. 근데 setter에서는 this.members[0]=name;이라고 하셨는데 갑자기 보이드함수에서는 blackPink.firstmember가 나와서 당황했습니다. blackPink인스턴스로 구분하기 위한 것은 이해가 가는데 어떻게 갑자기 get함수를 프린트하게 되는건지가 의문입니다.

     

답변 1

답변을 작성해보세요.

0

안녕하세요.

1) 기존 답변드린 부분과 같습니다. 질문을 한번 더 정리해서 말씀주세요. 그냥 에러가 난다고 하시면 어떤 문제인지를 알 수 없어서 도와드릴수가 없습니다.

2) get 키워드는 클래스 내부에서만 사용할 수 있도록 설계된 키워드입니다. 밖에서는 사용이 불가능합니다. this 키워드또한 OOP 강의에서 말씀드린대로 현재 인스턴스를 지칭하는 키워드이기 때문에 클래스 외부에서 사용이 불가능합니다. 출력과는 관계 없습니다. 코드는 정의된 위치에서의 문맥에서 작동합니다.

3) 말씀하신 부분은 생성자를 말씀하시는 것 같습니다. 생성자는 인스턴스를 생성할때 사용되고 setter는 생성 후 사용합니다. 두번째 질문은 위치를 정확히 파악하기 어렵습니다. 코드 예제와 함께 질문해주세요!

happybudda님의 프로필

happybudda

질문자

2023.01.10

네넵 알겠습니다! 너무 제 방식대로만 질문을 한 것 같아 죄송합니다.. 다음부터는 전체 코드를 올릴 수 있도록 하겠습니다! 질문은 강의를 재수강해서 혼자 이해해보고 다시 올리겠습니다~~