자바 접근 제어자

장원재·2025년 1월 7일
0

접근 제어자 종류

자바는 4가지 종류의 접근 제어자를 제공한다.

  • private: 모든 외부 호출을 막는다.
  • default: 같은 패키지 안에서 호출은 허용한다.
  • protected: 같은 패키지 안에서 호출은 허용한다. 패키지가 달라도 상속 관계 호출은 허용한다.
  • public: 모든 외부 호출을 허용한다.

접근 제어자와 캡슐화

캡슐화는 데이터와 해당 데이터를 처리하는 메서드를 하나로 묶어서 외부에서의 접근을 제한하는 것을 말한다. 이때 접근 제어자를 활용하면 캡슐화를 더욱 견고히 할 수 있다. 이에 대한 방법은 크게 2가지이다.

  • 첫번째는 클래스의 데이터를 숨기는 것이다. 객체 내부의 데이터를 외부에서 함부로 접근하게 두면, 클래스 안에서 데이터를 다루는 모든 로직을 무시하고 데이터가 변경 될 수 있다. 즉, 캡슐화가 깨진다.
  • 두번째는 외부에서 사용하지 않는 기능을 숨기는 것이다. 우리가 자동차를 운전할 때 복잡한 엔진 조절 기능, 배기 기능을 알 필요가 없다. 단지 운전에 필요한 엑셀과 핸들 정도의 기능만 알면 된다.
public class BankAccount {
    private int balance;

    public BankAccount() {  
        balance = 0;
    }

    public void deposit(int amount) {
        if (isAmountValid(amount)) {
            balance += amount;
        } else {
            System.out.println("유효하지 않은 금액입니다.");
        }
    }

    public void withdraw(int amount) {
        if (isAmountValid(amount)) {
            balance -= amount;
        } else {
            System.out.println("유효하지 않은 금액이거나 잔액이 부족합니다.");
        }
    }

    public int getBalance() {
        return balance;
    }

    private boolean isAmountValid(int amount) {
        return amount > 0;
    }
}
  • 위의 코드는 캡슐화가 잘 된 코드이다. 왜냐하면 데이터는 모두 숨기고, 꼭 필요한 기능만 외부로 노출하였기 때문이다.
  • isAmountValid 는 내부에서만 필요한 기능이므로 외부로 노출시킬 필요가 없다.
profile
데이터 분석에 관심있는 백앤드 개발자 지망생입니다

0개의 댓글

관련 채용 정보