본문 바로가기
프로그래밍 언어

객체(Object)의 개념

by do_ng 2019. 9. 3.

객체 지향 프로그래밍이란? 

자동차를 만들 때 각종 부품을 먼저 개발하고 이 부품들을 하나씩 조립해서 완성된 제품(자동차)을 만들 듯이, 소프트웨어를 개발할 때도 만들고자 하는 완성품인 객체를 모델링해 여러 부품들을 조립해서 완성된 하나의 프로그램(Object)을 만드는 기법을 객체 지향 프로그래밍이라 한다.

 

객체란?

물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것을 말함. 예를 들자면 자동차는 색상, 모델명이라는 속성과 달린다, 멈춘다라는 동작이 있다. 자바에서는 이 속성과 동작들을 각각 필드(field)와 메서드(method)라고 부른다.

 

객체와 클래스 

자동차를 만들기 위해서는 설계도를 바탕으로 자동차가 만들어지는데 자바에서는 설계도=클래스(class)라고 부르고 클래스안에는 객체를 생성하기 위한 필드와 메서드가 정의되어 있다. 그리고 클래스는 두 가지 용도로 쓰이는데 하나는 다른 클래스에서 이용할 목적으로 설계된 라이브러리(API)고 다른 하나는 실행용, 즉 Main Class라고 할 수 있다. 프로그램 전체에서 사용되는 클래스가 50개라면 49개는 API고 1개는 실행 클래스이다. 하나의 설계도(클래스)로 여러 개의 자동차 즉, 여러 개의 인스턴스(객체)를 만드는 것이 가능하다.

 

아래 코드를 통해 클래스 선언후 객체를 생성하는 방법을 알아보자

new 연산자로 생성된 객체는 메모리 힙(heap) 영역에 객체를 생성시키고 객체의 주소를 리턴함 이 주소를 참조 타입인 클래스 변수(p1, p2)에 저장해두면 변수(p1, p2)를 통해 객체를 사용할 수 있음 위 그림에서 같은 Person이라는 Class로부터 객체가 생성이 되었지만 p1, p2 참조하는 Person객체는 완전히 독립된 서로 다른 객체이다