객체지향 프로그래밍

문종후·2023년 3월 15일
0

객체 지향 프로그래밍

제목에서 알수잇듯 그래서 객체 지향 프로그래밍이 대체뭔데? 라고생각할수있다.
정말 간단하게 설명하자면 그냥 프로그래밍을 하는 방식중의하나다.

엥? 그러면 이걸 왜 굳이정의하는거야? 라고 생각해보면 예전방식과는 차이점이 크기떄문이다.
예를 들어 초기의 프로그래밍언어는 절차적언어라고해서 모든 일이 순서대로 이루어졌다.
기껏해야 함수를 함수로 이어가는것이 전부였다.

이런식으로 프로그래밍을 진행하게되면 모든것을 전부다 명령해줘야하며 수정도힘들고 전부 작성하는것도 어려움이있다.

반면 객체지향 프로그래밍은 클래스 정의를통해 최대한 공통요소로묶어 명령요소를 줄이며 간단하게 작성할수있게되었습니다.

결론적으로 객체 지향 프로그래밍이란 개발자들이 조금더 쉽게 개발하는방법이라고 생각하면 편할것같다.

OOP

갑자기 뜬금없이 oop? 나도이게 무슨말인가했는데 그냥 객체지향 프로그래밍을 영어로한것ㅇ에 약자다. 설명은 위에서 그리고 클래스와 인스턴스에서 설명했으니 넘기도록한다.

그래도 간단하게 정리해보자...
아까 클래스 인스턴스에서 예시를든 전사로 예를들면
전사에는 속성(캐릭터이름,무기,디자인) 과 메서드 사냥,상점구매 요소가있었다.
이런것들이 전부 인스턴스에 적용이된다.
그래서 우리가 새로운인스턴스를만들떄 이번 전사는 무기와 창을 모두쓰며 사냥스킬이 좀더많은 캐릭터로 디자인해볼까? 하면 전사라는 속성에 고유한값을 부여할수있게되는것이다.

그러면 객체 지향 프로그래밍 대체어떻게할껀데?

객체지향 프로그래밍 그러니까 OOP 를 어떻게할꺼냐? 에 도움을줄수있는 4가지개념에대해 다뤄보고자한다.
1. 캡슐화
데이터와 기능을 하나의 단위로 묶는것(느슨한결합으로 수정에용이하게)
은닉을통해 구현은 숨기고 동작은 노출시키자.

  1. 상속
    상속은 클래스의특성을 상속받는다라고보면된다.
    예를들어아까 전사라는 클래스가있었는데 전사라는 클래서는 더욱큰 직업이라는 클래스안에 포함수있다. 이때 직업은 부모 전사가 자식이되겠다.

  2. 추상화
    추상화는 간단하게말하면 인터페이스를 단순화시키는것이다.
    우리가 불을키는데 전구와 스위치 가구의 기전원리를 이해하지않고 현대문명을 누리듯
    버튼만누르면 해결되는식으로 단순화시켜보자.
    조금더 구체적으로말하자면 클래스정의시 메서드와 속성만 정의한것을 인터페이스라고 보면된다.

  3. 다형성
    같은전사여도 모두다르다. 어떤놈은 뭐가특화되있고 이런 클래스가같아도 각자 다른 특성을 부여하는것이 다형성이다.

profile
개발자가되고싶은사람

0개의 댓글