EEALL@ONCE

☕캡슐화 (Encapsulation)란 본문

언어💻/자바☕

☕캡슐화 (Encapsulation)란

올엣원스 2023. 8. 28. 21:07
728x90


**캡슐화 (Encapsulation)란?**

캡슐화는 객체 지향 프로그래밍에서 중요한 개념 중 하나입니다. 이는 데이터와 해당 데이터를 다루는 메서드를 하나의 단위로 묶는 것을 의미합니다. 이렇게 함으로써 데이터에 대한 직접적인 접근을 제한하고, 외부에서 오는 오용이나 혼란을 방지할 수 있습니다.

예를 들어, 클래스 내부에 데이터와 데이터 조작을 위한 메서드를 함께 묶어놓는 것이 캡슐화의 핵심입니다. 이러한 데이터와 메서드는 private, protected, public과 같은 접근 제어자를 사용하여 외부로부터의 접근을 제한할 수 있습니다. 이를 통해 클래스 내부 구현의 일부를 감추고, 클래스를 더욱 견고하고 관리하기 쉬운 형태로 만들 수 있습니다.



아래는 자바에서 클래스 내의 캡슐화를 보여주는 간단한 예시 코드입니다.


public class Student {
    private String name;
    private int age;

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public void celebrateBirthday() {
        age++;
        System.out.println(name + "이(가) 생일을 축하합니다!");
    }
}




이 코드에서 `name`과 `age`는 private로 선언되어 외부에서 직접적으로 접근할 수 없습니다. 대신 `getName()`과 `getAge()` 메서드를 통해 필요한 정보에 접근할 수 있습니다. 또한 `celebrateBirthday()` 메서드를 통해 나이를 증가시키는 동작을 캡슐화하고 있습니다.

이 예시에서는 캡슐화를 통해 데이터와 해당 데이터를 다루는 메서드를 하나의 단위로 묶어 정보 은닉과 오용 방지를 달성하였습니다. 이와 같은 방식을 통해 코드의 유지 보수성과 안정성을 향상시킬 수 있습니다.

728x90

'언어💻 > 자바☕' 카테고리의 다른 글

☕`Path filePath`와 `File file = filePath.toFile()  (0) 2023.08.31
☕접근 제어자  (0) 2023.08.28
☕substring  (0) 2023.08.23
☕Optional.ofNullable(userName).orElse  (0) 2023.08.22
☕Java의 Map 인터페이스: entrySet  (1) 2023.08.21