Nuke Olaf - Log Store

[객체지향 프로그래밍] 캡슐화(encapsulation) 본문

Language/[JAVA]

[객체지향 프로그래밍] 캡슐화(encapsulation)

NukeOlaf 2019. 11. 24. 13:12

캡슐화 encapsulation

캡슐화는 객체지향 프로그램에서 2가지 측면이 있다

1. 객체의 속성(attribute / data fields)과 행위(methods)를 하나로 묶고, 

2. 실제 구현 내용 일부를 감추어 은닉한다

https://stackify.com/oop-concept-for-beginners-what-is-encapsulation/

 

OOP Concept for Beginners: What is Encapsulation

Encapsulation is one of the fundamental concepts in OOP. It describes the idea of bundling data and methods that work on that data within one unit.

stackify.com

 

" Encapsulation is one of the fundamental concepts in object-oriented programming (OOP). It describes the idea of bundling data and methods that work on that data within one unit, e.g., a class in Java.

This concept is also often used to hide the internal representation, or state, of an object from the outside. This is called information hiding. The general idea of this mechanism is simple. If you have an attribute that is not visible from the outside of an object, and bundle it with methods that provide read or write access to it, then you can hide specific information and control access to the internal state of the object.

If you’re familiar with any object-oriented programming language, you probably know that these methods as getter and setter methods. As the names indicate, a getter method retrieves an attribute, and a setter method changes it. Depending on the methods that you implement, you can decide if an attribute can be read and changed, or if it’s read-only, or if it is not visible at all. As I will show you later, you can also use the setter method to implement additional validation rules to ensure that your object always has a valid state. "

" 캡슐화는 객체지향 프로그래밍의 기본 개념 중 하나이다. Java의 클래스와 같은 하나의 단위 내에서 해당 데이터에 대해 작동하는 데이터와 메소드를 번들로 묶는 아이디어를 말한다.

이 개념은 외부에서 객체의 내부의 표현방식이나 상태를 숨기기 위해 사용된다. 이것을 '정보은닉'이라고 부르는데, 캡슐화 메커니즘의 기본 아이디어는 간단하다. 객체 외부에서 볼 수 없는 속성(attribute)들을, 속성을 읽거나 쓸 수 있는 기능을 제공하는 메서드와 함께 번들로 묶으면 특정 정보를 숨기고, 객체의 내부 상태에 대한 접근을 제어할 수 있다.

Java와 같은 객체지향 프로그램에 익숙하다면, 이러한 메소드를 getter setter 메소드로 알고 있을 것이다. 이름에서 알 수 있듯이, getter 메소드는 속성을 검색하고, setter 메소드는 속성을 변경한다. 메소드를 어떻게 구현하느냐에 따라 속성을 읽고 변경할 수 있는지, 또는 속성이 읽기 전용인지, 또는 속성을 전혀 알 수 없도록 할 수 있을지 결정할 수 있다. setter 메소드를 사용하여 추가 유효성 검사 규칙(additional validation rules)을 구현하면, 객체가 항상 유효한 상태인지(valid state) 확인할 수 있다.(잘 이해 안됨 나중에 공부) "

Comments