java | January 03, 2022
Class의 실행과 interface를 분리하고 interface에 집중할 수 있다면, 프로그램을 추론하고 설계하는 것이 더 쉽다.
Class의 복잡한 구현 세부 사항을 추상화하고, clean하고 사용하기 쉬운 interface만 제공한다.
Class에 포함된 정보에 코드의 나머지 부분들과 구분되는 보호 장벽을 형성한다.
Data와 functions를 class 단위로 묶어서 캡슐화한다.
외부로부터 class의 private details를 숨길 수 있고, interfacing에 중요한 기능만 노출할 수 있다.
Class가 자신의 private data에 직접 접근하는 것을 허용하지 않으면, encapsulation이 잘 되었다고 한다.
Class가 다른 class에서 상속되면, 자동으로 해당 class에서 동일한 functionality와 properties를 가져온다.
동시에, 별도의 code와 data를 포함하도록 확장할 수도 있다.
상위 클래스의 기능이 하위 클래스에서 재정의 될 필요가 없기 때문에, 코드의 재사용이 가능하다.
OOP에서 다형성을 사용하면, 계층 구조에서 class를 균일하게 처리할 수 있다.
Calling code는 계층의 root에서만 작성되고, 계층 구조에서 child class에 의해 instance화 된 모든 object들은 동일한 방식으로 처리된다.
Java OOP
What Is Object-Oriented Programming? The Four Basic Concepts of OOP