클래스와 객체, 인스턴스 개념 구별하기
- 객체 지향 프로그래밍 = 프로그램을 설계하는 방법에 대한 이론
- 정해진 문법이 아니다.
- 한 개 이상의 클래스들이 서로 유기적으로 동작.
- 자바에서 클래스는 프로그래밍의 기본 단위이다.
- 객체: 데이터 혹은 기능을 갖고 있어, 그 목적을 수행하는 것이다.
- 클래스 vs 객체: JVM 힙 메모리 영역에 생성되었는지 여부
- 클래스가 JVM의 메모리를 할당받아서 생성되었을 때, 비로소 클래스에서 객체로 호칭이 변화된다.
- 클래스는 객체를 만들기 위한 일종의 기능 명세서이며 객체는 그 결과물이다.
- 클래스로부터 새로운 객체를 만드는 과정 = 인스턴스화
- 개발자가 만들고자 하는 객체의 기능과 속성을 논리적으로 뽑아내어 클래스로 설계하는 과정 = 추상화
- 클래스 간의 관계를 유기적으로 설정하기 위해 제어자 및 키워드를 사용한다.