Building value

Java[캡슐화(Encapsulation)] 본문

Java

Java[캡슐화(Encapsulation)]

developer_Michael 2023. 3. 23. 18:39
반응형

캡슐화(Encapsulation)는 객체지향 프로그래밍에서 중요한 개념 중 하나입니다. 

 

캡슐화는 객체의 상태와 행동을 외부에서 직접적으로 접근하지 못하도록 보호하는 것을 의미합니다. 

 

캡슐화를 통해 객체는 자신의 내부 구현을 숨길 수 있으며, 

 

외부에서 객체의 상태를 변경하거나 객체의 내부를 직접 조작하지 않도록 할 수 있습니다. 

 

이를 통해 코드의 안정성을 높일 수 있습니다.

예를 들어, 자동차 객체를 생각해보겠습니다. 자동차 객체는 다양한 상태와 행동을 가지고 있을 것입니다. 

 

현재 속도, 연료량, 차량 번호 등의 상태와 주행, 정지, 가속 등의 행동이 있을 수 있습니다. 

 

이때, 자동차 객체를 캡슐화하여 외부에서 상태와 행동을 직접 조작하지 못하도록 보호할 수 있습니다.

public class Car {
    private int speed;
    private int fuel;
    private String number;

    public void start() {
        // ...
    }

    public void stop() {
        // ...
    }

    public void accelerate(int amount) {
        // ...
    }

    // getter와 setter 메서드는 상태를 읽거나 변경하기 위한 public 메서드입니다.
    public int getSpeed() {
        return speed;
    }

    public void setSpeed(int speed) {
        this.speed = speed;
    }

    public int getFuel() {
        return fuel;
    }

    public void setFuel(int fuel) {
        this.fuel = fuel;
    }

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }
}

위 코드에서 speed, fuel, number 변수는 private으로 선언되어 있습니다. 

 

따라서 외부에서 이 변수들에 직접 접근할 수 없습니다. 

 

대신, getSpeed(), setSpeed(), getFuel(), setFuel(), getNumber(), setNumber()와 같은 public 메서드를 통해 

 

상태를 읽거나 변경할 수 있습니다. 이러한 메서드를 getter와 setter 메서드라고 합니다.

이렇게 캡슐화를 적용하면 자동차 객체를 사용하는 다른 코드에서 실수로 상태를 변경하거나 조작하는 일이 없도록 할 수 있습니다. 

 

객체의 내부 구현을 변경하더라도 이를 사용하는 외부 코드에 영향을 미치지 않도록 보호할 수 있습니다.

반응형

'Java' 카테고리의 다른 글

Java[인터페이스(Interface)]  (0) 2023.03.23
Java[추상화(Abstraction)]  (0) 2023.03.23
Java[다형성(Polymorphism)]  (0) 2023.03.23
Java[상속(Inheritance)]  (0) 2023.03.23
Java[객체.Object]  (0) 2023.03.23