Elice
엘리스 6일차 - 객체지향 프로그래밍
공부곤
2024. 7. 1. 13:54
Object-Oriented Programming(OOP - 객체 지향 프로그래밍)
- 프로그램을 설계 시 객체 단위로 파악
- 이들 간의 상호작용을 통해 기능을 구현하는 프로그래밍 패러다임
정의
- 객체(Object)란 “모든 실재하는 것” - 사람과 동물, 무생물, 논리, 사상, 개념등을 포함
- 객체 지향(OOP)란 이러한 객체 개념에 기반한 프로그램 패러다임
객체지향의 네 가지 기둥
- 상속
- 기존의 클래스를 기반으로 새로운 클래스 작성
- 상위 - 하위 관계
- 코드의 중복 제거 및 재사용, 유지 보수에 용이
- 확장성, 다형성
- extends 키워드 사용
- 캡슐화
- 데이터 보호 및 데이터 은닉
- 객체를 독립적으로 분리시키고, 외부에서 데이터와 코드 접근 X
- 외부와의 상호작용은 ‘메서드’ 이용
- 다형성
- 여러가지 형태를 가질 수 있는 능력
- 하나의 이름을 가진 변수, 함수, 클래스가 다양한 의미로 해석 될 수 있는 것
- 추상화
- 클래스 간 공통적인 속성을 찾아내어 공통의 조상을 만드는 작업
- 공통의 요소들을 도출해서 묶는 것이 추상화
이점
- 모듈화로 인한 독립적인 테스트 및 유지보수 용이
- 코드 중복 최소화 및 재사용성 향상
- 느슨한 결합을 통해 변경과 확장에 용이한 코드 설계
- 추상화와 캡슐화를 통한 복잡도 관리
클래스(Class)
클래스는 객체가 어떤 상태, 어떤 동작을 가져야 하는지에 대한 설계도 /설명서
인스턴스(Instance)
class에 작성된 내용을 토대로 만들어진 실체화된 객체(object)
필드(field)
클래스는 상태와 동작을 가지는데 여기서 상태에 해당하는 것이 필드 이다.