자바[JAVA] - 캡슐화(Encapsulation)

turtleJ·2022년 5월 4일
0

언어

목록 보기
6/11

캡슐화(Encapsulation) 이란?

변수와 함수(메소드)를 하나의 단위로 묶는 것을 의미한다. 즉, 데이터의 번들링(bundling)을 뜻한다.

  • 대개 객체 지향 프로그래밍을 지원하는 대부분의 언어에서 제공하는 클래스를 통해 이 Encapsulation이 구현된다.
  • 해당 클래스의 인스턴스를 생성하여 클래스 안에 포함된 멤버 변수(인스턴스 변수)와 메소드에 접근할 수 있다.

정보 은닉(information hiding)

프로그램의 세부적 구현사항을 외부로 드러내지 않도록 하는 것이다.

  • 캡슐화(Encapsulation)을 정보 은닉(information hiding) 그 자체로 혼동하는 경우가 많은데, 이는 대부분의 경우 캡슐화에 정보 은닉이 동반되도록 프로그램을 구현하는 경우가 많기 때문이다.
  • 따라서, 대부분의 경우 클래스 외부에서는 바깥으로 노출된 특정 메소드에만 접근이 가능하게하여 내부가 어떤 식으로 처리되는지를 알지 못하도록 설계된다.



<캡슐화(Encapsulation) 예제>


_[person.java]_
public class Person {
    private int id;
    private String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

[Main.java]
public class Main {

    public static void main(String[] args) {
        Person p1 = new Person();
        Person p2 = new Person();

        p1.setId(1);
        p1.setName("Jung");
        p2.setId(2);
        p2.setName("Hwan");

        System.out.println(p1.getId());
        System.out.println(p1.getName());
        System.out.println();
        System.out.println(p2.getId());
        System.out.println(p2.getName());
    }
}

[Console]
1
Jung

2
Hwna
profile
꾸준함을 무기로 성장하는 개발자가 되겠습니다.

0개의 댓글