728x90
Class란 설계도를 뜻한다. 설계도에는 멤버 변수와 멤버 함수(메소드)가 있다.
멤버 변수란 객체가 가지는 속성을 변수로 표현하는 것이다.
멤버 함수(메소드)란 객체의 기능을 구현한다.
예를들어 자동차라는 Class에는 차종, 무게, 색, 가격 등의 멤버 변수와, 가속하기, 후진하기, 에어컨틀기 등등의 멤버 함수가 있을 수 있다.
객체란 class에서 생성된 인스턴스를 뜻한다.
내가 자동차 하나를 샀다고 해보자. 그럼 그 자동차가 객체, 인스턴스가 되는 것이다.
객체와 인스턴스는 비슷하지만 객체란 모든 인스턴스를 대표하는 포괄적인 의미를 갖고있고
인스턴스는 더 구체적인 단일 개체를 뜻한다.
인스턴스가 생성되는 위치는 Heap(힙) 영역이다. Heap 영역은 동적인 메모리 공간이다. 메인 함수내에 있는 지역변수는 Stack영역에 쌓이지만 동적으로 생성된 인스턴스는 Heap 영역에 생성된다.
생성하는 방법은 new를 사용한다 예를들어 class 이름이 car라면 car myCar = new car(); 와 같이 생성한다.
동적 영역에 있는 메모리는 Java의 경우는 Garbage Collector에 의해 해제된다고 한다. C++이나 C에서는 프로그래머가 직접 delete나 free를 통해 해제해야하는데 한결 간편한 기능이라 할 수 있다.
728x90
'프로그래밍 이론 & 책 > 기타' 카테고리의 다른 글
[git] 커밋 합치기 (0) | 2020.12.16 |
---|---|
메모리 구조 (0) | 2020.01.30 |