프로그래밍에서 필요한 데이터를 한 데 모아 추사오하시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 협력과 유기적인 상호작용을 통해 특정 기능을 구성.
즉, 실제 사물의 속성과 기능을 분석한 후에 이것을 프로그래밍의 변수와 함수로 정의함으로 실제 세계를 최대한 컴퓨터 프로그래밍에 반영
객체를 정의한 설계도 또는 틀
클래스를 통해 생성된 객체를 해당 클래스의 인스턴스라고 한다.
클래스로부터 객체를 만드는 과정을 인스턴스화라고 지칭한다.
클래스는 네 가지 요소로 구성되어있다.
위 구성 요소들 중 생성자를 제외한 나머지 3가지 요소를 클래스의 멤버라고 한다.
이 중에서 필드와 메서드는 각각의 클래스가 가지는 속성과 기능을 대표한다.
특정 클래스 타입의 참조변수를 선언, new 키워드와 생성자를 통해 인스턴스 생성하여 참조변수에 할당
참조 변수는 실제 데이터값이 아니라 실제 데이터가 저장되어 있는 힙 메모리의 주소값을 가리킨다.
즉, new 키워드와 생성자를 통해 클래스를 생성한다는 것은 해당 객체를 힙 메모리에 넣고 그 주소값을 참조변수에 저장하는 것.
클래스에 포함된 변수
자바에서 변수는 크게 클래스 변수, 인스턴스 변수, 지역 변수로 구분된다.
이 중 필드라 부르는 것은 클래스 변수와 인스턴스 변수이고, 이 둘은 static 키워드의 유무로 구분한다.
static 키워드와 함께 선언된 것은 클래스 변수, 그렇지 않은 것은 인스턴스 변수, 이 두 가지 변수 유형에 포함되지 않고 메서드 내에 포함된 모든 변수를 지역변수라 한다.
static은 클래스의 멤버(필드, 메서드, 이너 클래스)에 사용하는 키워드이다.
정적 멤버라고 부른다.