지지난 포스팅에서의 마지막 토픽인
클래스와 객체, 인스턴스의 관계에 대하여 알아보겠습니다.
클래스
객체
인스턴스
이 3가지도 자바 프로그래밍을 하며 흔히들 쓰는 용어이죠?
하나씩 차근차근 알아보겠습니다.
먼저, 첫 번째 객체란?
주체가 실생활에서 파악할 수 있는 모든 사물을 의미합니다.
말이 좀 어딘가 모르게 어렵죠? 간단하게 사물이라고 생각합니다.
사물에는 특성을 표현할 수 있는 속성과 움직을 표현하는 동작으로 이루어집니다.
두 번째, 클래스란?
객체의 설계도(blueprint)를 코드로 나타낸 것을 의미합니다.
다시 말해, 객체를 프로그램적으로 만들기 위한 설계 코드란 의미입니다.
우리는 객체를 클래스로 나타낼 때, 추상화라는 과정을 거칩니다.
추상화란 말 그대로 추상적이게 나타내는 것, 단순화를 의미합니다.
그렇게 객체를 단순화시켜 필요한 정보와 행위를 모은 것을 클래스라고 합니다.
(추상화의 정도는 용도에 따라 결정합니다.)
클래스는 Field, Method, Constructor로 구성이 됩니다.
단순화된 객체의 정보를 Field(변수)
객체의 동작을 Method(메소드. 함수)라고 합니다.
Method를 작성 시에는 객체의 정보를 노출할지 말지를 결정하게 되는데
이를 캡슐화라고 합니다. (이는 추후에 다시 다루도록 하겠습니다.)
Constructor(생성자)란?
클래스를 인스턴스화 하기 위한 코드 블록, 일종의 변형된 메소드입니다.
인스턴스화라는 표현이 나왔는데요
이제 인스턴스에 대해 알아보겠습니다.
세 번째, 인스턴스란?
객체를 생성하여 JVM (Java Virtual Machine 자바 가상 머신)이
관리하는 메모리에 적재된 것을 의미합니다.
인스턴스를 생성하는 방법에는 크게 3가지 타입이 있는데
그 중 가장 흔히 사용되는 방법은 new 표현식을 사용하는 것입니다.
new 표현식 = new 생성자
ex. Car c = new Car();
그리하여 객체를 실제로 생성하는 과정을 인스턴스화 한다고 표현합니다.
Finally,
위 내용을 바탕으로 클래스와 객체, 인스턴스의 관계를 규명하면
객체를 단순화시켜 설계한 코드가 클래스이며
코드화된 객체를 생성하여 메모리에 적재한 것을 인스턴스이다.
라고 결론지을 수 있습니다.
이상으로 JAVA의 기본 1,2,3편 포스팅을 마치겠습니다.