12번째 TIL

꽃봉우리·2024년 4월 30일

Getter와 Setter


어제 과제를 하면서 Getter와 Setter는 왜 쓰였을까?

Getter와 Setter는 클래스에 직접적으로 접근이 불가능할 때 간접적으로 접근을 허용시켜주는 것이다.
접근제어자에서 private로 선언하면 같은 클래스에서만 직접 접근을 할 수 있다. 다른 클래스에서 접근하려면 해당 클래스 안의 메서드를 통해서만 가능하다. 그 역할이 Getter와 Setter이다.

Getter

Getter는 private를 외부로 꺼내는 메서드이다.

  • 내부의 멤버변수에 저장된 값을 외부로 리턴
  • 메개변수는 없고, 리턴값만 있는 메서드로 정의
  • 메서드명은 주로 getXXX() 메서드 형식으로 지정
  • XXX은 해당 멤버변수의 변수명을 사용

Setter

Setter는 private에 값을 넣는 메서드이다.

  • 외부로부터 데이터를 전달받아 멤버변수에 저장
  • 매개변수만 있고, 리턴값은 없는 메서드로 정의

접근제어자

접근 제어자에는 public, private, protected, default 이렇게 4가지가 존재한다.

public

같은 패키지 내에 모든 클래스 O, 다른 패키지 O

protected

같은 패키지 내에 모든 클래스 O, 다른 패키지 상속관계 O

default

같은 패키지 내에 모든 클래스 O, 다른 패키지 X

접근제어자를 따로 안적으면 기본으로 default가 된다.

private

같은 클래스에서만 접근 가능.

다른 외부클래스에서 접근하려면 다른 메서드를 거쳐서 접근해야한다.

객체지향 특징 중 E(Encapsulation, 캡슐화 = 은닉성)에 해당함.

외부에서의 직접적인 접근을 허용하지 않는 멤버를 설정하여 정보 은닉 구체화

이것을 이해할 때 protected는 부모 클래스에 있는 것을 자식 클래스에서도 사용하게 할 때 쓰이는 것이라 부모는 자식을 보호(protect)한다. 이런식으로 좀 쉽게 외웠다.

0개의 댓글