객체란?
객체 지향 프로그래밍(OOP: Object-Oriented-Programming)을 알기 위해서 객체란 무엇인지 이해할 필요가 있습니다. 객체(Object)는 사물로 이해하면 쉽습니다. 우리 주변에는 사물이 많습니다. 자동차, 컴퓨터, 마우스, 책, 연필, 의자, 소파, 시계, 반지, 냉장고, 계산기 등이 모두 객체라고 할 수 있습니다.
이러한 객체들은 각각 속성과 기능으로 구성됩니다. 예를 들어 의자는 색, 모양, 길이와 같은 속성을 가지며 앉을 수 있는 기능이 있습니다. 자동차 또한 색상, 문, 속도와 같은 속성을 가지며 가속, 정지, 방향전환 같은 기능이 있습니다. 사물은 속성과 기능이 있습니다. 이것을 프로그래밍으로 가져와서 이해해 보겠습니다.
자동차를 만든다고 가정해보면, 속성으로 색상(Color), 크기(Size), 속도(Speed)를 정의합니다. 기능으로 주행(Drive), 정지(Stop), 주차(Parking)를 정의합니다. 중요한 것은 속성과 기능입니다.
객체(Object) = 속성(Attribute) + 기능(Function)
객체지향 언어의 장점
객체 지향 프로그래밍을 사용하는 이유(장점)는 여러 가지가 있습니다. 그중에서 대표적인 이유는 다음과 같습니다.
1. 코드의 재사용이 쉽다 : 기존에 사용했던 클래스(틀)를 사용하면 속성과 기능만 변경해서 다른 프로그램 쉽게 개발이 가능하다.
2. 프로그램 관리(유지 보수)가 쉽다 : 프로그램의 수정, 삭제와 같은 유지 보수 발생 시 코드 변경이 편하다.
3. 프로그램의 모듈화 : 하드웨어 부품처럼 필요에 따라 다른 프로그램에 이식 혹은 제거가 가능하다.
4. 신뢰도가 높은 프로그래밍 : 제어자, 메서드를 이용해서 데이터를 보호해서 올바른 값을 유지할 수 있다.
정리
객체는 속성과 기능으로 구성됩니다. 객체지향언어가 사람들에게 선호되는 이유는 코드의 재사용, 유지보수의 용이성, 프로그램의 모듈화, 신뢰도 높은 프로그래밍이라는 장점 때문입니다.
프로그래밍이란 무엇인가 창조하고자 하는 인간욕구의 결과물입니다. 사용하고 있는 컴퓨터, 마우스, 책, 스마트폰, 시계, 의자 등은 모두 객체입니다. 누군가의 설계도(클래스)를 통해 객체를 생산한 것이죠.
Java공부를 하다 보면 객체지향개념에서 막히는 분들이 많은 것 같습니다. 저도 처음에 객체지향이 무엇인지 이해를 못해서 답답했습니다. 개념 이해와 코드를 반복해서 쳐보는 것이 도움이 됩니다. 이어서 클래스, 인스턴스, 상속, 다형성과 같은 개념들도 정리해 보겠습니다.
'IT NOTE' 카테고리의 다른 글
[IT뉴스 스크랩] 새로운 SNS, 스레드(Thread) 출시. (0) | 2023.07.10 |
---|---|
[IT뉴스 스크랩] 자바스크립트는 어쩌다 '애증의 언어'가 됐을까 (1) | 2023.07.08 |
커맨드(cmd)창이란 무엇인가? 명령어 모음 (2) | 2023.06.13 |
프로그래머와 개발자의 차이 (0) | 2023.05.17 |
프로그래밍(Programming), 프로그래밍 언어(Programming Languages). (1) | 2023.05.07 |