-
Notifications
You must be signed in to change notification settings - Fork 1
Day 12(21.09.16)
※ 들어가기에 앞서
본 정리글은 수업의 진행대로 정리하고 있기에 내용에 따라 순서가 뒤죽박죽일 수 있습니다.
필드, 메소드를 하나로 묶고 실제 구현 내용을 감추는 것을 말한다. 외부 객체는 객체 내부의 구조를 알 수 없으며 객체가 겉으로 드러나서 제공하는 필드와 메소드만 제공할 수 있다. 쉽게 말하면 외부 객체에서는 캡슐화된 객체의 필드에 접근할 수 없단 얘기다.
이렇게 캡슐화를 통해 객체 정보를 보호하는 이유는 외부의 잘못된 사용으로 인해 객체가 손상되지 않도록 하기 위함이다. 예를 들어, 자동차의 중요 부품이 겉으로 드러나 충격 등의 외부적 요인에 의해 망가지지 않도록 차체 내부에 숨기는 것이나 마찬가지다. 이러한 캡슐화는 외부에서 접근을 허락할 것인가를 결정하기 위해 **접근 제한자(Access Modifier)**를 사용한다. 접근 제한자의 종류에는 private, default, protected, public이 있는데 이들에 대한 내용은 추후에 작성할 예정이다.
상속이란 일반적으로 부모가 가지고 있는 것을 자식에게 물려주는 것을 만한다. 객체 지양 프로그래밍에서도 부모 역할을 하는 상위 객체와 자식 역할의 하위 객체가 있는데, 상위 객체는 자신이 가지고 있는 필드와 메소드를 하위 객체에게 물려줄 수 있다. 이러한 상속은 상위 객체를 재사용하여 하위 객체를 쉽고 빠르게 설계할 수 있도록 도와주며, 이미 개발된 객체를 사용하는 것이므로 반복된 코드의 중복을 줄여준다. 또한, 상위 객체의 수정함으로서 하위 객체를 수정하는 효과가 있으므로 유지 보수 시간을 최소화시켜 주기도 한다.
같은 타입이지만 실행 결과가 다양한 객체를 이용할 수 있는 성질을 말한다. 프로그래밍 측면에서는 하나의 타입에 여러 객체를 대입하여 다양한 기능을 이용할 수 있도록 해주는 것이다. 자바에선 이를 위해 부모 클래스 또는 인터페이스의 타입 변환을 허용하고 있다. 부모 타입에는 모든 자식 객체가 대입될 수 있으며, 인터페이스 타입에는 모든 구현 객체가 대입될 수 있다. 예를 들어, 자동차 한대가 있을 때, 타이어라면 K 타이어든, H 타이어든 전부 사용할 수 있으나 성능이 다르게 나오는 것과 마찬가지이다.