🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

질문 드립니다!!

21.01.29 23:30 작성 조회수 107

1

빈 클래스 생성시에, 디폴트 생성자, 생성자, getter setter를 만들어야하는 이유를 알 수 있을까요...? helloWorldBean 예제에서는 생성자만 만들어도 될 것 같은데 getter setter 도 추가적으로 필요한건지 궁금합니다.

답변 1

답변을 작성해보세요.

1

안녕하세요, 이도원입니다. 

어떤 클래스에 기본 생성자를 생성해 주는 것은 그 생성자에서 특별한 작업, 예를 들어 인스턴스 변수의 설정이나 초기화 작업등을 위해 주는 겁니다. 만약 기본 생성자에서 특별한 작업을 하지 않은 채 선언만 한 것이라만, 아무것도 선언하지 않았을 때와 같으니, 특별한 의미는 없습니다. 

그리고 Setter/Getter 메소드를 생성해 주는 이유는 선언 인스턴스 변수는 일반적으로 private 으로 선언하게 됩니다. 그렇지 않게 되면, 외부에서 직접 변수의 상태를 변경해 버릴 수 있기 때문에, 보안상 좋지 않습니다. 이렇게 private으로 선언된 인스턴스 변수의 상태를 변경하기 위해 setter, 상태 값을 가져가거나 사용하기 위해서 getter 메소드를 추가로 선언해서 사용하게 됩니다. 그러면, 단순하게 값을 변경하고 반환하는 용도외에, 추가적인 작업을 해당 Setter/Getter 메소드에서 처리할 수 있게 됩니다. 

예를 들어, 

public void setValue(int value) {

    if (isAuthenticated()) {

         this.value = values;

    } else {

         log.error("권한을 가지고 있지 않습니다!");

    }

}

위와 같이 응용해 보실 수도 있을 것 같습니다. 

감사합니다. 

감사합니다!!

채널톡 아이콘