클래스(Class)
클래스는 객체를 코드로 구현한 것이다.
객체지향 프로그래밍의 가장 기본요소이며 어떤 문제를 해결하기 위한 데이터를 만들기 위해 추상화를 거쳐
집단에 속하는 속성(attribute)와 행위(behavior)를 변수와 메서드로 정의한 것이다.
인스턴스(Instance)
클래스에서 정의한것을 토대로 실제 메모리상에 활당된 것으로 실제 프로그램에서 사용되는 데이터이다.
클래스로부터 생성된 객체이며 힙 메모리에 멤버변수 크기에 따라 메모리가 생성된다.
클래스를 기반으로 new 키워드를 이용하여 여러개의 인스턴스를 생성한다.
Customer cusmoterL = new Customer();
여기서 cusmoterL 은 생성된 인스턴스를 참조하는 변수이다.
Customer에 있는 멤버변수는 new Customer로 생성할 때 힙 영역으로 들어가게 된다.
id, name, address 라는 멤버변수를 생성한다고 할 때 이 멤버변수들이 힙 영역에 들어가서 하나의 공간에 존재하게
되고 Stack에 들어가게 된 참조변수가 힙 영역으로 연결되어 사용할 수 있게 된다.
여기서 customerK라는 참조변수를 하나 더 만들어준다면 그 참조변수가 이미 힙 영역에 있는 customerL의 멤버변수에
접근하는 것이 아니라 힙 영역에 새로 멤버변수가 들어가고 그 멤버변수에 연결된다.
이때 힙 영역에 있는 객체들을 인스턴스라고 한다. 각각의 인스턴스는 별개의 메모리를 갖는다.
'JAVA' 카테고리의 다른 글
캡슐화(Encapsulation) (0) | 2021.01.27 |
---|---|
추상화(Abstraction) (0) | 2021.01.27 |
객체지향프로그래밍(Object Oriented Programming, OOP) (0) | 2021.01.25 |
REST API의 개념 (0) | 2020.05.19 |
REST (0) | 2020.05.19 |