ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 추상화(Abstraction), 캡슐화(Encapsulation), 상속(Inheritance), 다형성(Polymorphism)
    language/JAVA 2023. 4. 25. 15:00
    반응형

    추상화(Abstraction)

    Abstract 라는 단어의 어원은 라틴어 abstractus 에서 왔고, 이 단어는 from 의 의미를 가진 ab- 와 draw off 의 의미를 가진 trahere 의 합성어 이다.

     

    어원에서 부터 이 단어의 의미를 생각해 보면 무엇으로 부터 어떤 것을 빼낸다는 것이다. 쉽게 생각해 보면 어떤 대상으로 부터 필요한 것을 추출한다는 의미를 가지고 있다고 볼 수 있다.

     

    OOP에서 말하는 추상화(Abstraction)의 개념도 이 단어가 가진 의미를 그대로 담고 있다. 복잡한 시스템에서 필요한 부분만 추출하여 단순화 하여 본질적이고 공통적인 부분만 남게 만드는 것이다.

     

    사용자는 추상화를 통해 단순화 된 개념을 사용해 사용자의 본래 목적에 더 집중할 수 있게 된다.

    캡슐화(Encapsulation)

    연관된 데이터와 메서드를 하나의 캡슐(일반적으로는 클래스)에 넣어 보호하는 것을 의미한다. 캡슐화를 통해 외부에서 접근을 제한하게 되면 데이터를 보호하고 내부의 작동 방식을 은닉할 수 있게 된다.

     

    사용자는 캡슐화 된 데이터에 직접 접근할 수 없을 뿐 아니라 동작 방법도 알 필요가 없다. 이런 방법은 보안성을 높이고 객체간의 결합도를 낮추어 유연한 프로그래밍을 하는데 도움이 된다.

     

    자바에서는 접근제어자를 통해 캡슐화를 구현할 수 있다.

    상속(Inheritance)

    상속은 하나의 클래스의 내용을 확장하여 다른 클래스를 구성할 수 있는 기능이다. 하위 클래스의 인스턴스는 상위 클래스를 그대로 확장하기 때문에 상위 클래스의 코드를 재사용할 수 있다는 장점이 있다. 

    다형성(Polymorphism)

    객체가 문맥에 따라 다른 형태를 취할 수 있는 성질을 의미한다. 이는 OOP 의 개념중 가장 중요한 개념이라고 할 수 있다.

     

    예를 들어 다형성 객체는 부모 클래스나 하위 클래스처럼 동작하거나 인터페이스의 구현체 처럼 동작할 수 있습니다. 다형성을 사용하면 코드의 유연성과 재사용성을 높이고 런타임에 메서드를 동적으로 바인딩할 수 있습니다.

    반응형
Designed by Tistory.