객체 지향 프로그래밍(OOP)

태그
OOP
날짜
2023/07/25
2 more properties

객체 지향 프로그래밍 : 객체사용을 지향하는 프로그래밍 방법

객체 지향 프로그램의 특징

1.
캡슐화 (Encapsulation)
객체의 필드, 메소드를 하나로 묶고, 실제 구현 내용을 감추는 것을 말한다.
외부 객체는 객체 내부의 구조를 알 수 없고, 객체가 노출해서 제공하는 필드, 메소드만 사용할 수 있다.
캡슐화는 불필요한 정보를 감출 수 있기 때문에, 정보은닉을 위해 사용함.
Java의 경우 접근제한자를 통해 객체의 캡슐화, 은닉화를 구현한다.
2.
상속 (Inheritance)
상속이란 기존 상위클래스에 근거하여 새롭게 클래스와 행위를 정의할 수 있게 도와주는 개념이다.
상속은 상위 객체를 재사용하여, 하위 객체를 쉽고 빠르게 설계할 수 있고, 이미 개발된 객체를 사용하여 새로운 객체로 만들기 때문에 반복된 코드의 중복을 줄여준다.
3.
다형성 (Polymorphism)
다형성은 상속과 연관되어 있는 개념으로, 한 객체가 상속을 통해 기능을 확장하거나, 변경하여 다른 여러형태(객체)로 재구성되는 것을 말한다.
다형성을 구현하는 방법
1.
오버로딩 (Overloading)
2.
오버라이딩 (Overriding)
3.
함수형 인터페이스 (Functional Interface)
4.
추상화
결국 OOP는 위 네 가지 특성들을 통해서 어떤 대상을 추상화(Abstraction)하여 공통점을 찾고, 그것을 캡슐화(Encapsulation)해 한 군데에 모아 객체를 만들고, 새로운 객체가 상속(Inheritance)받아 재사용이 가능하게 만들어 준다.
상속받은 객체는 다형성(Polymorphism)을 통해 기능을 수정 또는 추가하여 재사용할 수 있다.
참조