[JAVA] 캡슐화

캠슐화의 개념

캡슐화는 클래스의 내부 상태와 동작을 외부로부터 숨기는 것을 의미합니다. 데이터와 데이터를 다루는 메서드를 하나로 묶어 클래스 내부로 숨기는 개념을 나타냅니다. 캡슐화를 통해 데이터의 접근을 제어하고, 외부에서 직접적인 접근을 허용하지 않고 메서드를 통해 간접적으로 접근하도록 합니다. 이를 통해 클래스는 자신의 내부 구현을 숨기고, 외부에는 필요한 기능만 노출시킴으로써 클래스의 사용을 단순화합니다.

 

캡슐화의 이점

  1. 정보 은닉 : private를 이용하여 외부 접근을 차단합니다. 이를 통해 내부 데이터의 부적절한 변경을 방지합니다.
  2. 코드 유연성과 확장성 향상 : 클래스의 내부 구현을 숨기고 외부로 인터페이스를 노출시킴으로써 내부 구현이 변경되더라도 외부 코드에 영향을 주지 않습니다. 그래서 기능을 추가하거나 수정하는데 자유롭습니다.

캡슐화 예제

public class Person {
    // name 과 age 캡슐화
    private String name;
    private int age;
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}

ublic class Main {
    public static void main(String[] args) {
        // public으로 선언된 메서드로 접근 가능
        Person person = new Person();
        person.setName("gildong");
        person.setAge(18);
        
        System.out.println(person.getName()); // 출력 : gildong
        System.out.println(person.getAge()); // 출력 : 18
    }
}

 

 

'JAVA > 객체 지향 프로그래밍' 카테고리의 다른 글

[JAVA] 인터페이스  (0) 2023.08.20
[JAVA] 추상화 클래스  (0) 2023.08.19
[JAVA] 업캐스팅 & 다운캐스팅  (0) 2023.08.19
[JAVA] 다형성이란  (0) 2023.08.19
[JAVA] 메서드 오버라이딩 조건  (0) 2023.08.18