본문 바로가기

지식/Computer Science

[프로그래밍 패러다임] 객체지향 프로그래밍 기초 (OOP)

이 글보다 이전 글에도 객체지향 설계와 스프링(SOLID)(https://wjddntjr555w.tistory.com/46)라는 이름으로 글을 썻지만 책을 보면서 읽은 내용을 한번 더 정리하려 합니다.

 

객체지향 프로그래밍(OOP, Object-Oriented Programming)은 객체들의 집합으로 프로그램의 상호 작용을 표현하며 데이티를 객체로 취급하여 객체 내부에 선언된 메서드를 활용하는 방식. (반대 : 절차형 프로그래밍)

 

객체지향 프로그래밍의 특징 (추상화, 상속성, 다형성)

추상화

복잡한 시스템으로부터 핵심적인 개념 또는 기능을 간추려내는 것을 의미

 

상속성 

상위 클래스의 특성을 하위 클래스가 이어받아서 재사용하거나 추가, 확장하는 것

 

다형성

하나의 메서드나 클래스가 다양한 방법으로 동작하는 것 (오버라이딩, 오버로딩)

오버로딩 : 같은 이름을 가진 메서드를 여러 개 두는 것으로 메서드 타입, 매개변수의 유형, 개수 등 여러 개를 둘 수 있으며 컴파일 중에 발생하는 '정적' 다형성

오버라이딩 : 주로 메서드 오버라이딩을 말하며 상위 클래스로부터 상속받은 메서드를 하위 클래스가 재정의하는 것으로 런타임 중에 발생하는 '동적' 다형성