-
객체지향 프로그래밍(Object Oriented Programming) 네가지 주요특징■ 아빠 프로그래밍/기본개념 2017. 8. 19. 09:39반응형
객체지향 프로그래밍(Object Oriented Programming)
네가지 주요특징
1) 상속(Inheritance)
상위클래스(Parent, Super, Base)
하위클래스(Child, Sub, Derived)
상위클래스의 특징을 하위클래스가 모두 물려받는 것
하위클래스는 상위클래스가 가지고 있는 맴버변수와 메소드를 모두 물려받아 사용할 수 있다.
이 관계를 상속관계에 있다. 계층구조가 형성되어있다. 라고 한다.
상속에 의해 오버로딩, 오버라이딩, this등의 다양한 문법들이 생겼다.
2) 캡슐화(Encapsulation)
실제 기능은 숨기고, 접근할 방법만 노출하는 것을 말한다.
캡슐화로 알 필요가 없는 정보를 숨겨 프로그램의 복잡도를 제어할 수 있는데,
이러한 기능을 은닉성(Hidden)이라고 한다.
자바에서는 캡슐화를 위해 네가지의 접근제한자를 제공한다.
private - 외부 객체에서 접근 불가
default - 같은 패키지의 객체만 접근 가능
protected - 상속관계의 객체만 접근가능 일반객체는 접근 불가
public - 모든 객체에서 접근가능
3) 추상화(Abstraction)
객체의 공통적인 특징을 뽑아내는 과정
추상화 과정
- 객체들의 공통적인 개념 추출
- 추출한 개념을 이용하여 최소한의 기능을 가진 상위 개념의 객체를 만든다.
- 나머지 객체는 상위개념의 객체를 상속받아 구현하는 형태로 변경
추상화는 다향성을 구현하기 위한 기법으로 활용된다.
4) 다형성(Polymorphism)
객체가 여러가지 형태를 가질 수 있다는 뜻이다.
상속관계의 경우 부모는 모든 자식을 포함하는 큰 개념이므로 상위 클래스 타입의 변수로 하위 클래스 타입의 모든 객체를 참조할 수 있다.
다형성을 이용해 코드를 작성하면, 새로운 하위 클래스를 추가하더라도 기존의 코드를 변경할 필요가 없다.
반응형