본문 바로가기
교육, 학습/스프링 입문을 위한 자바 객체지향의 원리와 이해

JAVA의 OOP - 객체, 인스턴스, 클래스

by 개발하는 경제학도 2022. 2. 3.

책 소개

현재 읽고 있는 '스프링 입문을 위한 자바 객체 지향의 원리와 이해' 중의 일부를 적은 내용입니다.


추상화는 모델링이다

추상화란 구체적인 것을 분해해서 관심 영역에 있는 특성만을 가지고 재조합하는 것이다. 즉, 모델링이다.

클래스 설계에서 추상화가 사용되며, 객체 지향에서 추상화의 결과는 클래스이다.

 

 

객체, 인스턴스, 클래스

객체

세상에 존재하는 유일무이한 사물이다.

 

인스턴스

클래스를 통해 object를 만들었다는 것을 강조할 때 사용한다.

 

클래스

분류, 집합 같은 속성과 기능을 가진 객체를 총칭하는 개념이다

=> 객체는 유일무이하게 존재하는 실체로 속성에 값을 가지며, 클래스는 개념이자 분류체계로 속성에 값을 가질 수 없다.

 

하지만 만약 쥐의 꼬리는 1개, 승용차의 바퀴는 4개처럼 항상 같은 값을 가지는 경우 static을 붙여 정적 멤버로 만든다.

정적 멤버는 T메모리의 static 영역에 클래스가 배치될 때 메모리 공간이 함께 확보된다.

반면 객체 속성은 힙 영역에 객체가 생성되면 그때 각 객체 안에 멤버 속성을 위한 메모리 공간이 할당된다.

 

 

변수 유형별 메모리 위치

이름 다른 이름 T메모리 내 위치
static 변수 클래스 속성, 정적변수, 정적속성 static 영역
인스턴스 변수 객체 속성, 객체 변수 heap 영역
local 변수 지역 변수 stack 영역(스택 프레임 내부)

 

댓글