* 객체 지향 프로그래밍이란 프로그램을 객체 단위로 작성하는 방법이다.
프로그램은 객체들로 구성되고 객체들은 속성과 기능을 가지고 있다.
객체 지향 기법들의 특징
---------------------------
* 캡슐화(encapsulation)
- 관련된 데이터와 알고리즘(코드)이 하나의 묶음으로 정리되어 있어야 한다.
데이터와 알고리즘을 캡슐에 넣어서 포장한다는 것을 의미한다.
객체 지향에서는 이 캡슐을 클래스라고 부른다.
캡슐화는 데이터를 감추고 외부와의 상호작용은 메소드를 통하는 방법이며, 내부의 데이터를 캡슐로 보호하는 역할
을 한다.(정보 은닉-information hiding)
* 상속(inheritance)
- 기존의 코드를 재활용하기 위한 기법으로 이미 작성된 클래스를 받아 새로운 클래스를 생성하는 기법이다.
새로운 클래스는 이미 작성된 클래스의 모든 속성과 동작을 받는다, 새로운 클래스는 필요한 기능을 새롭게 추가 또는
변경을 할 수 있다.
상속을 통해 코드의 중복을 줄일 수 있어서 유지 보수와 변경도 쉬워진다.
* 다형성(polymorphism)
- 객체가 취하는 동작이 상황에 따라 달라지는 것을 의미한다.
실제 동작은 다르더라도 개념적으로 동일한 작업을 하는 멤버 함수들에 똑같은 이름을 부여할 수 있으므로 코드가
간단해진다.
* 추상 클래스(abstract class)
- 완전하게 구현되어 있지 않은 메소드를 가지고 있는 클래스를 의미한다.
메소드가 미완성 되어 있어 객체를 생성할 수 없다.
주로 상속 계층에서 추상적인 개념을 나타내기 위한 용도로 사용된다.
하나 이상의 추상 메소드를 가지고 있다. (아래의 AAA() 처럼 몸체가 없는 메소드)
\*
public abstract class A {
public abstract void AAA();
...
};
*\
추상 클래스를 상속받는 서브 클래스에서는 반드시 추상 메소드를 재정의하여야 한다.(재정의 하지 않을 시 오류 발생)
추상 클래스라고 하더라도 추상 메소드가 아닌 보통의 메소드도 가질 수 있다.
* 객체(object)
- 상태와 동작을 가지고 있다.
객체의 상태(state)는 객체의 속성값 이다.
객체의 동작(behavior) 또는 행동은 객체가 취할 수 있는 동작이다.
객체의 상태와 동작은 각각 필드와 메소드로 표현할 수 있다.
객체 안의 변수를 필드(field), 객체 안의 함수를 메소드(method) 라고 한다.
* 클래스(class)
- 객체 지향 언어에서는 프로그램 개발의 단위가 클래스이다.
하나의 클래스 안에는 여러 개의 메소드가 포함될 수 있으며, 하나의 메소드 안에는 여러 개의 문장이 포함될 수
있다.
클래스는 메소드와 변수로 이루어진다.
클래스로부터 만들어지는 각각의 객체를 그 클래스의 인스턴스(instance)라고도 한다.
'IT' 카테고리의 다른 글
Angular CLI 설치하기 (0) | 2019.08.21 |
---|---|
앵귤러 간단 정리 (0) | 2019.08.20 |
자바에서 sql 쓸수있는 종류와 장단점 (0) | 2018.12.17 |
디자인 패턴 (0) | 2018.12.17 |
빅오 빅세타 빅오메가, 시간복잡도, 공간복잡도에 대해 정리 (0) | 2018.12.17 |