oop 객체지향? 그게 도대체 먼데?
절차적 프로그래밍
초기 프로그래밍 방식
컴퓨터가 해야할 일들을 쭈~욱 순차적으로 나열해 놓는 코딩 방식
예) AllInOneController 클래스의 각 API 처리내용
장점
- 컴퓨터의 처리구조와 유사해 실행속도가 빠름
단점
- 유지보수가 어려움
- 실행 순서가 정해져 있으므로 코드의 순서가 바뀌면 동일한 결과를 보장하기 어려움
- 디버깅이 어려움
객체지향 프로그래밍
하나의 사물 (객체) 에 하나의 의미를 부여하는 것처럼 프로그래밍하는 것
"주제별"로 정리해서 메모한다. (ex. 주식 투자, 바리스타 공부)
예) 뭔가 자를 것이 필요하면 '✂️' 를 떠올림 (class Sciccors)
종이에 적을 게 필요하면 '✏️' 을 떠올림 (class Pen)
"하나의 역할" → 객체
장점
- 메모를 작성하기에 편함 (직관적)
단점
- 메모양이 많아지면 정리가 어려움
- 내가 원하는 메모 내용을 찾기 어려움
객체지향 프로그래밍 특성
- 캡슐화: 데이터와 알고리즘을 하나로 묶어 하나의 캡슐처럼 만드는 것.
이 특징 때문에 데이터와 코드의 형태를 외부에서 알 수 없다. - 추상화: 실존하는 객체의 여러 특성 중, 프로그램을 만드는데 필요한(공통적인)
부분만 파악해서 추출하고 필요하지 않은 것은 제거하는 것. - 상속성: 부모가 자식에게 유전자를 물려주듯, 상위 클래스의 모든 것을 하위 클래스가 이어 받는 것.
- 다형성 -> 많을 다(多), 형상 형(形), 성품 성(性)
- Overload (사전적의미: 과적하다, 너무많이주다, 과부하가 걸리게하다.)
: 같은 이름의 함수, 연산자에 다른 기능을 정의함. 리턴타입 상관없음.
- Override (사전적의미: 무효로 하다, 무시하다, 치환하다.) : 상속이 전제되어 있는 상황에서, 부모에게 물려받은 method를 자식의 입에 맞게 내부 실행코드만 수정하여 사용하는 방식. ※주의할점. - method 이름이 같아야함. - 변수의 데이터타입 및 갯수가 같아야함. - 리턴 타입도 동일해야됨.
References
https://blog.naver.com/PostView.naver?blogId=gitacademy01&logNo=222394033958&redirect=Dlog&widgetTypeCall=true&directAccess=false
https://blog.naver.com/rlacksghl123/222619951737
Author And Source
이 문제에 관하여(oop 객체지향? 그게 도대체 먼데?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@blackmarin7/oop-객체지향-그게-도대체-먼데저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)