객체지향프로그래밍

김지수·2023년 3월 15일
0

객체 지향 프로그래밍이라는 패러다임이 등장하기 전 절차지향프로그래밍이 있었다

절차적언란 초기의 프로그래밍언어 였다(c,포트란)
절차적 언어는 순차적인 명령의 조합이였다

그러나 객체 지향 프로그래밍이라는 패러다임이 등장하면서 데이터의 접근, 처리 과정에 대한 모형을 만들어 내는 방식을 고안해냈다

현대 언어들은 대부분 객체 지향의 특징을 갖고 있다 ( java,c++,c#)
자바스크립트도 객체지향으로 작성이 가능하가

oop

oop는 프로그램 설계 철학이다
oop의 모든 것은 "객체로 그룹화 된다, 이 객체는 한번 만들고 나면 메모리상에서 반환 되기 전까지 객체 내의 모든것이 유지

oop의 4가지 기본 개념❗️

  1. 캡슐화
  2. 추상화
  3. 상속
  4. 다형성

1. 캡슐화

  1. 데이커와 기능을 하나로 묶음

  2. 은닉 : 구현은 숨기고, 동작은 노출시킴
    내부데이터나 내부구현이 외북로 노출이 안됨

  3. 느슨한결합에 휴리 :언제든지 구현을 수정 할 수 있다
    속성+기능을 하나의 객체안에 묶은 것이 느슨한결합
    느슨한 결합은 코드 실행 순서에 따라 절차적으로 코드작성을 하는것이 아니라
    코드가 상징하는 실제모습과 닮게 코드를 결합

2. 추상화

추상화는 내부 구현은 아주 복잡한데 실제로 노출이 되는 부분은 단순하게 만든다
클래스를 사용하는 사람이 필요하지 않은 메서드 등을 노출시키지않는다
이런 추상화를 통해 인터페이스가 단순해진다
클래스 정의 시 , 메서드와 속성만 정의한것을 인터페이스라고 하며, 이것이 추상화의 본질이다

3. 상속

부모클래스의 특징을 자식클래스가 물려받는것
예를들어 사람이라는 클래스가 있다면, 사람은 이름,성별,나이 와 같은속성
먹다, 자다 등과 같은 메서드가 있다

추가적으로 학생이라는 클래스를 추가 하면 사람 클래스의 속성과 메서드를 다시 작성하면 비효율적이다
학생의 본질은 결국 사람이므로 사람클래스를 상속 받을 수 있고, 추가적으로 공부하다 같은 메서드를 추가 할 수 있다

4. 다형성

똑같은 메서드라도 다른 방식으로 구현
예를들어 말하다 = 입으로 소리는내다와 같다
이처럼 같은 이름을 가진 메서드라고 조금씩 다르게 작동한다
다형성이 없이 없다면 기본 부모 클래스에 종류별로 분기를 시켜서 하나하나 다르게 만들어야 할것이다

OOP 의 주요개념에 대한 장점 ‼️

  1. 캡슐화는 코드가 복잡하지 않게 만들고, 재사용을 높임
  2. 추상화도 코드가 복잡하지 않게 만들고, 단순화된 사용으로 변화에 대한 영향을 최소화 함
  3. 실속화도 불필요한 코드를 줄여 재사용을 높임
  4. 다형성으로 인해 동일한 메서드에 대해 if/else if 와같은 조건문대신 객체의 특성에 맞게 달리 작성 가능
profile
코린이

0개의 댓글