Elice

엘리스 6일차 - 객체지향 프로그래밍

공부곤 2024. 7. 1. 13:54

Object-Oriented Programming(OOP - 객체 지향 프로그래밍)

  • 프로그램을 설계 시 객체 단위로 파악
  • 이들 간의 상호작용을 통해 기능을 구현하는 프로그래밍 패러다임

정의

  • 객체(Object)란 “모든 실재하는 것” - 사람과 동물, 무생물, 논리, 사상, 개념등을 포함
  • 객체 지향(OOP)란 이러한 객체 개념에 기반한 프로그램 패러다임

객체지향의 네 가지 기둥

  1. 상속
    • 기존의 클래스를 기반으로 새로운 클래스 작성
    • 상위 - 하위 관계
    • 코드의 중복 제거 및 재사용, 유지 보수에 용이
    • 확장성, 다형성
    • extends 키워드 사용
  2. 캡슐화
    • 데이터 보호 및 데이터 은닉
    • 객체를 독립적으로 분리시키고, 외부에서 데이터와 코드 접근 X
    • 외부와의 상호작용은 ‘메서드’ 이용
  3. 다형성
    • 여러가지 형태를 가질 수 있는 능력
    • 하나의 이름을 가진 변수, 함수, 클래스가 다양한 의미로 해석 될 수 있는 것
  4. 추상화
    • 클래스 간 공통적인 속성을 찾아내어 공통의 조상을 만드는 작업
    • 공통의 요소들을 도출해서 묶는 것이 추상화

이점

  • 모듈화로 인한 독립적인 테스트 및 유지보수 용이
  • 코드 중복 최소화 및 재사용성 향상
  • 느슨한 결합을 통해 변경과 확장에 용이한 코드 설계
  • 추상화와 캡슐화를 통한 복잡도 관리

클래스(Class)

클래스는 객체가 어떤 상태, 어떤 동작을 가져야 하는지에 대한 설계도 /설명서

인스턴스(Instance)

class에 작성된 내용을 토대로 만들어진 실체화된 객체(object)

필드(field)

클래스는 상태와 동작을 가지는데 여기서 상태에 해당하는 것이 필드 이다.