Backend CS - #5 객체지향 프로그램

객체지향 프로그램이란?
- Object-Oriented Programming
- 프로그래밍에서 필요한 데이터를 추상화 시켜서 상태와 행위를 가진 객체로 만듬
- 객체들간의 상호작용을 통해서 로직을 구성
- 언어 : C++ , C# , Java , Python , JavaScript , Ruby , Swift
특징
- 추상화
- 객체에서 공통된 속성과 행위 추출하고 타입을 정의
- 불필요한 정보는 숨기고 중요한 정보만을 표현하여 프로그램을 간단하게 만든다.
- 캡슐화
- 데이터 구조와 방법을 결합
- 낮은 결합도를 유지시킨다
- 상속
- 클래스의 속성과 행위를 하위 클래스에게 전달하거나 하위 클래스가 상위 클래스의 속성을 물려받음
- 새로운 클래스가 등장하게 되면 기존의 클래스가 가지고 있던 데이터와 연산을 이용할 수 있음.
- 장점
1) 재사용으로 코드 간단히
2) 범용적인 사용
3) 자료와 메서드를 자유롭게 사용하거나 추가할 수 있다.
- 단점
1) 상위 클래스를 변경하기 어렵다
2) 불필요한 클래스 증가
3) 상속의 오류 발생 가능
- 다형성
- 하나의 변수명, 함수명이 상황에 따라서 다른 의미로 해석될 수 있다.
- 오버라이딩 : 상위 클래스가 가지고 있는 메소드를 하위 클래스가 재정의하여 재사용
- 오버로딩 : 같은 이름의 메서드가 인자의 개수나 자료형에 따라 다른 기능을 함.
객체 지향 프로그램의 장단점
- 장점
- 클래스 단위로 모듈화하기에 업무 분담이 편리하여 대규모 프로젝트에 사용하기 좋다
- 클래스 단위로 수정할 수 있기에 유지 보수가 편리함
- 클래스를 재사용하거나 상속을 통해 확장하여 코드 재사용이 편리
- 단점
- 처리 속도가 느림
- 용량이 커질 수 있다
- 많은 시간과 노력이 필요