일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Blend Type
- CSharp #자료구조
- 플레이어 이동
- Hp바
- 플레이어 방향전환
- pccp 기출문제 3번
- Algorithm
- 백준 c++ 9375번
- heap tree
- Lv.3
- pccp 기출문제 1번
- Lv2
- dfs
- 프로그래머스
- 유니티
- 9375번
- pccp 기출문제 2번
- 오브젝트 풀링
- Ainimation Blending
- 충돌위험 찾기
- Unity
- C#
- dp 알고리즘
- 2D슈팅게임
- Back Tracking
- LayerMark
- Animation State Machine
- 연속 펄스 부분 수열의 합
- 양과 늑대
- 미로 탈출 명령어
- Today
- Total
주녘공부일지
객체지향 프로그래밍 (OOP : Object Oriented Programming) 본문
객체지향 프로그래밍 (OOP : Object Oriented Programming)
필요한 데이터를 추상화해 상태와 행위를 가진 객체로 만들고 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법
1. 특징
1) 상속 (Inheritance)
- 부모 클래스에게 정의된 클래스의 모든 필드와 메서드를 상속받은 자식 클래스가 물려받음
2) 다형성 (Inheritance)
- 하나의 메시지에 대해 각각의 객체가 가진 고유한 방법으로 응답할 수 있음
ex) 오버라이딩(overriding), 오버로딩(overloading)
3) 캡슐화 (Encapsulation)
- 외부에서의 접근을 제한하기 위해 세부 내용을 은닉함
ex) 데이터를 단일 단위로 숨겨 외부로부터 데이터를 보호
4) 추상화 (Abstraction)
- 불필요한 세부 사항을 숨겨 복잡성을 줄이는 프로세스
5) 동적 바인딩 (Dynamic Binding)
- 가상 함수를 호출하는 코드를 컴파일 할 때, 자식 클래스에 오버라이딩 된 함수가 실행됨 (다형 실현)
2. 5대 설계 원칙 ( SOLID 원칙 )
1) 단일 책임 원칙 (SRP : Single Responsibility Principle)
- 객체는 단 하나의 책임만 가져야 함
2) 개방 패쇄 원칙 (OCP : Open Closed Principle)
- 확장에는 열려있고, 수정에는 닫혀있어야 함
-> 기존 코드 변경없이 기능을 추가할 수 있어야 함
3) 리스코프 치환 원칙 (LSP : Liskov Substitution Principle)
- 자식 클래스는 부모 클래스를 대체할 수 있어야 함
-> 자식 클래스는 최소한 부모 클래스의 역할을 할 수 있어야 함
4) 인터페이스 분리 원칙 (ISP : Interface Segregation Principle)
- 사용하지 않는 인터페이스와 의존 관계를 맺거나 영향을 받지 않아야 함
-> 범용적인 인터페이스보다는 세부적인 인터페이스를 활용해 다른 기능이 영향받지 않도록 해야 함
5) 의존 역전 원칙 (DIP : Dependency Inversion Principle)
- 의존 관계 성립 시 추상성이 높은 클래스와 의존 관계를 맺어야 함
-> 객체에서 어떤 Class를 참조하게 된다면, 가능한 대상의 상위 요소를 참조