본문 바로가기
객체지향

객체지향 프로그래밍 이란

by 근즈리얼 2021. 2. 1.
728x90

자바는 흔히들 객체 지향 프로그래밍 언어라고 한다.

하지만 객체 지향 프로그래밍이 뭐냐고 물어본다면 확실하게 대답해지는 것이 어려워 진다. 

따라서 객체지향 프로그래밍이 무엇인지와 장점 그리고 특징에 대해서 알아볼 필요가 있다고 생각한다.

 

객체지향 프로그래밍이랑

- 컴퓨터 프로그래밍의 패러다임 중 하나로 여러 개의 독립된 객체들의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다. 여기서 객체는 필요한 데이터를 추상화시켜 상태와 행위를 가진 것을 말한다.

 

 

객체지향 프로그래밍의 장점과 단점

 

장점

 

* 코드 재사용의 용이

- 다른 사람의 클래스를 가져와 사용하기가 쉽다.

 

* 유지보수의 적합

- 수정해야할 부분이 있을 경우 클래스 내부의 멤버 변수 혹은 메서드만 수정하면 된다.

 

* 대형프로젝트에 적합

- 클래스 단위로 모듈화를 시켜 개발할 수 있기 때문에 대형 프로젝트에서 업무 분담에 용이하다.

 

단점

 

* 처리속도가 상대적으로 느림

* 객체가 많으면 용량이 커질 수 있음

* 설계시 많은 시간과 노력이 필요

 

객체지향 프로그래밍 기본 구성 요소

 

* 클래스(class)

- 같은 종류의 집단에 속하는 상태과 행위를 정의한 것. 다른 클래스와는 독립적으로 만들어야 한다.

- 어떤 문제를 해결하기 위한 데이터를 만들기 위해 추상화를 거쳐 집단에 속하는 속성과 행위를 변수와 메서드로 정의한것

ex) 게임 내의 몬스터 / 붕어빵 틀

 

* 객체(object)(인스턴스)

- 클래스의 인스턴스. 상위 클래스의 속성을 가지고 있으면서 개별적인 특성과 행위 또한 갖고 있다.

- 클래스에서 정의한 것을 토대로 실제 메모리상에 할당된 것

ex) 몬스터의 구체화 -> 드래곤, 슬라임, 호랑이 / 붕어빵

 

* 메서드(method)

-클래스로부터 생성된 객체를 사용하는 방법. 객체의 속성을 조작하는데 사용된다.

ex) 몬스터들이 하는 행위

 

객체지향 프로그래밍의 특성

 

1. 추상황

- 공통된 속성이나 기능을 묶어 이름을 붙이는 것

- 객체 지향적 관점에서 클래스를 정의하는 것

- 호랑이, 쥐, 토끼 -> 생물, 동물

 

2. 캡슐화

- 데이터 구조와 데이터를 다루는 방법들을 결합 시켜 묶는 것

- 객체가 맡은 역할을 수행하기 위한 하나의 목적을 하나로 묶는 것(은닉화)

- 데이터를 외부에서 직접 접근 x, 함수를 통해서만 접근

 

3. 상속

- 상위 개념의 특징을 하위 개념이 물려받는 것

- 객체 지향의 핵심 특성

- 자동차라는 클래스가 있음 -> 아반떼와 제네시스 모두 자동차라는 클래스를 상속

 

4. 다형성

- 하나의 클래스나 메소드가 다양한 방식으로 동작이 가능한 것을 의미

- 부모클래스가 자식클래스의 값으로 대체되는 오버라이딩

- 같은 메소드의 매개변수에 따라 다르게 동작하는 오버로딩

 

** 오버라이딩과 오버로딩

오버라이딩 : 상위 클래스의 메소드를 하위 클래스에서 재정의해서 사용

오버로딩 : 함수의 이름은 같으나 매개변수를 다르게 설정하여 사용 

728x90

댓글