CAPS 위키 : 객체지향

객체지향 프로그래밍 객체지향에서 넘어옴. #객체지향 [ 수정 내역 ] [ 수정 ]

최근 수정:

목차

1. 개요

2. 특징

2.1. 캡슐화 (Encapsulation)

2.2. 상속 (Inheritance)

2.3. 다형성 (Polymorphism)

1. 개요

객체지향. 말 그대로 객체를 기반으로 프로그래밍하는 방식.

흔히 말하는 절차지향 프로그래밍 (구조적 프로그래밍) 방식과 비교해서 많은 차이가 있다.

2. 특징

객체 개념에 집중한다. 객체는 메소드와 데이터로 이루어져 있고, 이를 한데 묶어놓음으로써 변경에 대한 책임을 가두어 놓는다.

이를 단일 책임 클래스라 하고 Single Responsibility라는 중요한 객체 지향의 원리이다.

추가로 중요한 몇 가지 특징이 존재한다.

2.1. 캡슐화 (Encapsulation)

메소드와 데이터를 캡슐화 한다. public, private 등의 접근 지정자를 사용하여 외부에서 원하는 것만 보여주고, 내부는 감출 수 있다.

2.2. 상속 (Inheritance)

상당히 강력한 기능. is-a관계, (또는 is a kind of) 관계에 대한 클래스들은 상속 관계로 묶을 수 있다.

예를 들어 Dog is a kind of Animal이라면 Dog는 Animal을 상속받을 수 있다.

2.3. 다형성 (Polymorphism)

객체지향에서 가장 중요한 특징 중 하나. 같은 인터페이스인데 파생된 객체의 타입에 따라 다르게 동작하는 것을 말한다.

예를 들어 Animal에 Sound 메소드가 있다고 할 때 Dog는 멍멍, Cat는 냐옹 이라고 오버라이드를 한다면 Animal 인터페이스로 각각의 객체의 Sound 메소드를 호출하면 각자 객체에 오버라이드한 내용으로 호출된다.