반응형
<일기>
오랜만의 일기. 쓸 겨를이 없었다.
수요일에 최종면접을 본다.. 하루하루 입맛이 없고 쉴 때도 괜히 마음이 찔린다.
그냥 마음 비우고 봐야지..
</일기>
객체지향 프로그래밍이란
💡 시스템을 상태와 행위를 가진 객체들의 공동체로 보고, 객체들 간의 협력으로 로직을 구성하는 프로그래밍 방법.
- 장점
- 코드 재사용성이 높다.
- 누군가 만들어놓은 클래스를 재사용하거나 상속하여 확장한다.
- 유지보수가 쉽다.
- 수정할 부분이 클래스 내의 멤버 변수나 메서드로 존재하여 해당 부분만 수정하면 된다.
- 대형 프로젝트에 적합하다.
- 클래스 단위로 모듈화하거나 인터페이스로 … 업무분담하기 쉽다.
- 코드 재사용성이 높다.
- 단점
- 처리 속도가 상대적으로 느리다.
- 객체가 많으면 용량이 커진다.
- 설계 시 많은 시간과 노력이 필요하다.
객체지향의 특징
- 추상화
- 불필요한 정보는 숨기고 필요한 정보만을 표현함으로써 공통의 속성이나 기능을 묶어 이름을 붙이는 것
- 캡슐화
- 속성과 기능을 클래스로 한 곳에 묶어서 코드 수정없이 재활용하거나 은닉한다.
- 상속
- 부모의 속성과 기능을 물려받아 필요한 부분만 재정의하여 보다 적은 코드로 확장 용이
- 다형성
- 하나의 메서드나 클래스가 상황에 따라 다른 의미로 해석될 수 있는 성질. 오버로딩이나 오버라이딩이 가능하다.
- 오버로딩은 한 클래스 내에서 같은 이름이 메서드가 있어도 매개변수의 타입, 개수, 순서가 다르면 같은 메서드명을 여러 개 정의 할 수 있다. (컴파일에 발생하는 정적 다형성)
- 오버라이딩은 부모 클래스에서 상속받은 매서드를 자식이 재정의 하는 것. (런타임에 발생하는 동적 다형성)
- 즉 오버로딩은 메서드 시그니처가 달라야 하며, 라이딩은 같아야 함.
설계 원칙
- 단일 책임 원칙
- 클래스는 단 하나의 책임을 가져야 하며 변경해야 할 이유는 하나여야 한다.
- 개방 폐쇄 원칙
- 확장에는 열려있고 변경에는 닫혀 있어야 한다.
- 리스코프 치환 원칙
- 상위 타입의 객체를 하위 타입의 객체로 치환해도 프로그램은 정상 작동해야한다.
- 인터페이스 분리 원칙
- 클라이언트는 자신이 사용하지 않는 메서드에 의존하지 않아야 한다.
- 의존관계 역전 원칙
- 고수준의 모듈은 저수준의 모듈의 구현에 의존하면 안 되며 상,하위 모듈은 추상화에 의존해야한다.
반응형
'TIL ✍️' 카테고리의 다른 글
23년 11월 16일(목요일) - 33번째 TIL (0) | 2023.11.16 |
---|---|
23년 11월 14일(화요일) - 32번째 TIL (0) | 2023.11.14 |
23년 11월 10일(금요일) - 30번째 TIL (0) | 2023.11.10 |
23년 11월 9일(목요일) - 29번째 TIL (0) | 2023.11.09 |
23년 11월 8일(수요일) - 28번째 TIL (0) | 2023.11.08 |