📒 Computer Science

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

무콩이 2024. 3. 19. 15:36

Object Oriented Programming

OOP란?

객체 지향 프로그래밍은 현실 세계의 사물이나 개념을 객체로 표현하고, 이 객체들의 상호작용으로 프로그램 로직을 구현하는 프로그래밍 패러다임이다.

paradigm : 틀

 

장점

객체 지향적 설계를 통해서 프로그램을 보다 유연하고 변경이 용이하게 만들 수 있다!!

각 객체가 독립적인 역할을 가지기 때문에 코드의 변경을 최소화하고 유지보수를 하는데 유리하다.

OOP의 특성

캡슐화


하나의 객체에 대해 그 객체가 특정한 목적을 위한 변수나 메소드를 하나로 묶는 것

 

클래스를 만들 때 클래스에서 만들어진 객체가 특정한 목적을 잘 수행할 수 있도록 사용해야 할 변수와 메서드를 관련성 있게 구성해야 한다.

 

목적 : 정보 은닉 (private으로 접근을 제한하여 데이터를 보호한다.) (캡슐화를 하면 정보를 은닉할 수 있음)

이렇게 보호된 변수는 getter나 setter 등의 메서드를 통해서만 간접적으로 접근하게 하는 것이 캡슐화의 목적이다.

 

추상화


목적과 관련이 없는 부분을 제거하여 필요한 부분만을 표현하기 위한 개념

 

쉽게 말하자면 모든 것들을 클래스로 만드는 것은 불가능하니 공통적인 요소나 필수적인 요소들을 추출하여 큰 틀의 클래스를 구현하는 것이 추상클래스이다.

 

추상화객체들의 공통된 특징을 파악해 정의해 놓은 설계 기법

 

다형성


상속을 통해 기능을 확장하거나 변경하는 것을 가능하게 해줌

형태가 같은 데 다른 기능을 하는 것!

 

코드의 재사용, 코드 길이 감소가 되어 유지보수가 용이하도록 해준다.

 

상속성


기존 상위 클래스에 근거하여 새롭게 클래스와 행위를 정의할 수 있게 도와주는 개념

기존 클래스의 기능을 가져와 재사용할 수 있으면서도 동시에 새롭게 만든 클래스에 새로운 기능을 추가할 수 있게 만들어줌

 

상속을 함으로써 코드의 중복을 없애준다.