일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- HATEOAS
- 브루트포스
- 다익스트라
- 백준
- 알고리즘
- 정적 리소스
- application.properties
- AuthenticationPrincipal
- 스프링부트
- 백트래킹
- 스프링 부트
- rest api
- webjar
- @Profile
- 리소스핸들러
- 백기선
- 리소스 서버
- JPA
- cors
- OAuth2
- HttpMessageConverters
- JsonSerializer
- Application Argument
- Application Runner
- Spring Security
- WebApplication Type
- Application Event
- @ConfigurationProperties
- EnableAutoConfiguration
- 외부설정
- Today
- Total
아카이브
OOP의 4가지 특징 본문
우선 OOP 란?
- Object-Oriented Programming
- 컴퓨터 프로그래밍의 패러다임
- 프로그램을 명렁어의 목록이 아닌, 독립된 "객체"들의 모임으로 바라봄
- Class, Object, Method, Message 등으로 구성
특징
1. 추상화 (Abstraction)
- 대상의 특성 중 불필요한 부분을 무시하고 필요한 공통점만을 다루어, 현실의 복잡성을 극복하고 목적에 집중할 수 있도록 하는 것
- 공통의 속성이나 기능을 묶어 이름을 붙이는 것
- Class를 정의하는 것
- ex)
Class Human {
String name
int age
}
2. 캡슐화 (Encapsulation)
- 객체 스스로가 자신의 상태를 책임지게 하여, 해당 객체의 역할 수행에 집중할 수 있도록 자율성을 높이는 것
- 데이터 구조와 데이터를 다루는 방법들을 결합시켜 묶는 것
- 변수와 함수를 하나로 묶는 것
- 데이터를 외부에서 접근하는 것을 방지하고, 오로지 함수를 통해서만 접근할 수 있게 하는 것
- 캡슐화의 2가지 관점
1) 상태-행위 캡슐화 (데이터 캡슐화) : 객체는 상태와 행동을 하나의 단위로 묶는 자율적 실체
2) 사적인 비밀의 캡슐화 (은닉화) : 외부에서 객체의 상태를 변경할 수 없도록 은닉
● 접근 변경자
public > protected > default > private
모든 접근 허용 > default + 상속 관계인 다른 패키지의 클래스 > 같은 패키지 > 같은 클래스
3. 상속성 (Ingeritance)
- 부모 클래스의 속성과 기능을 상속받아 동일하게 사용하는 것
- 범용적인 클래스를 작성한 후 상속을 활용하면, 여러 클래스에서 중복되는 속성과 기능을 재사용할 수 있음
4. 다형성 (Polymorphism)
- 동일 요청에 대해 서로 다른 방식으로 응답할 수 있도록 만드는 것
- Overriding : 상속받은 동일한 메소드 재정의
- Overloading : 동일한 메소드가 매개변수 타입, 개수 차이에 따라 다르게 동작
'프로그래밍' 카테고리의 다른 글
== 연산자와 equals()의 차이점 (0) | 2018.06.27 |
---|---|
Call by Value 와 Call by Reference (0) | 2018.06.18 |
Overriding 과 Overloading (0) | 2018.06.18 |
Garbage와 Garbage Collection (0) | 2018.06.18 |
Wrapper Class를 사용하는 이유 (0) | 2018.06.18 |