언어란 "의사소통"의 수단이며 기본이다.
OOP는 Object-Oriented Programming(객체 지향 프로그래밍)의 약자이다.
외부, 내부 구조
- 전체적인 구조는 복잡하나, 내부구조는 단순하다.
- 최초 구축시 힘드나, 추후 수정이 용이하다.
OOP의 컨셉
1) Polymorphism(다형성)
- 하나의 인터페이스를 정의하고 여러가지 방법으로 구현(확장)을 할 수 있게 한다.
- 언어의 다형성, 메소드 재정의
- ex. Java에서 메소드 오버로딩(정적 다형성), 오버라이드(동적 다형성)
2) Encapsulation(캡슐화)
- 외부 간섭으로 부터 데이터와 코드를 안전하게 유지해준다. 즉 사용자로부터 구현 세부 정보를 숨기는 것이다.
- 정해진 규약(접근 제어자, 파라미터 등)을 통해서만 서로 통신할 수 있다.
- 외부 클래스는 다른 클래스의 변수에 접근할 수 없다.(getter, setter 메소드를 통해서 접근)
3) Inheritance(상속)
- 상위 클래스의 기능을 재사용, 확장하는 방법이다.
4) Abstarction(추상화)
- 메소드 시그니쳐를 먼저 선언하고 나중에 구현하는 방법이다.
- ex. A클래스, B클래스, C클래스들 간에 공통적인 메소드를 추출해 만들어진 클래스
'Java > OOP' 카테고리의 다른 글
[Java/OOP] SOLID 원칙 (0) | 2021.08.07 |
---|