객체를 정의한 설게도 또는 틀이다.
클래스는 객체를 생성하는데 사용되며, 반대로 객체는 클래스에 정의되고 설게된 내용 그대로 생성된다.
클래스는 객체를 생성하는 데 사용되는 하나의 틀이다.
Class 클래스명{} int x = 3; // 필드
void printX(){} // 메서드
ExampleClass{} // 생성자
class ExampleClass2{} // 이너 클래스
}
new 키워드를 사용해서 생성할 수 있다. 객체의 생성
클래스명 참조_변수명 = new 생성자();
new 키워드는 생성된 객체를 힙 메모리에 넣으라는 의미를 가지고 있다.
여기서 참조 변수는 실제 데이터가 저장되어 있는 힙 메모리의 주소값을 가르킨다.
클래스의 객체를 생성한다는 것은 해당 객체를 힙 메모리에 넣고 그 주소값을 참조변수에 저장하는 것과 같다.

method Area = class Area = Static Area
메소드 영역
스택 영역
스택 영역에는 지역변수와 매개변수가 저장된다.
지역변수 = 로컬변수(Local variable), 매개변수 = 파라미터(Parameter)
로컬변수와 매개변수의 특징은 선언된 그 블록 안에서만 유효만 변수들이다.
힙 영역
new 키워드를 통해 생성된 인스턴스 변수가 놓인다.인스턴스를 별도의 힙 영역에 할당하는 이유는 인스턴스의 소멸방법과 소명시점이 지역변수(스택에 할당되는)과는 다르기 때문이다.
참조 변수들은 실행될 때마다 많은 데이터들을 스택메모리 영역에 뒀다 뺐다 하는게 매우 비효율적이므로, 힙 영역에 그 내용(진짜 값)이 저장되고, 스택 메모리에는 간단하게 그 주소만 저장되는 것이다.
정리하자면 스택 영역의 지역변수들은 메소드가 호출되고 끝이나는 프로그램의 실행 흐름에 관여하는 것들이고 힙영역의 인스턴스들은 지역변수가 참조하고 있는 실제의 값들을 가지고 있다.
. 포인트 연산자의 의미는 '해당 위치에 있는 객체 안을 보세요'라는 뜻을 가지고 있다.기본적인 문법
ex). 참조 변수명. 필드명 // 필드값 호출하기
참조변수명.메소드명 // 메서드 호출하기 static 키워드의 유무로 구본될 수 있다.static 키워드가 함께 선언된 것 -> 클래스 변수이며 그렇지 않은 것은 인스턴스 변수이다.new 생성자()를 통해 인스턴스가 생성될 때 만들어진다.static 키워드를 사용하여 클래스 변수를 선언하게 된다.클래스명.클래스변수명 을 통해 사용이 가능하다.(메모리 구조에서 메소드처럼, 클래스 변수 또한 클래스 영역에 저장되어 그 값을 공유하기 때문에 가능하다.){}블록에서만 사용이 가능한 변수이다.static.멤버명 로 사용한다.static.멤버명으로 사용이 가능하다.메서드는 특정 작업을 수행하는 일련의 명령문들의 집합을 의미한다.
메서드는 메서드 시그니처(method signature)와 몸통에 해당하는 메서드 바디(method body)로 구분할 수 있다.
자바제어자 반환타입 메서드(매개변수){ // 메서드 시그니처
메서드 내용 // 메서드 바디
}
void가 아닌이상 반드시 return문이 존재해야 한다. 결과값은 반환타입과 일치하거나 자동 형변환이 가능해야 한다..를 통해 메서드를 호출할 수 있다.()안에 넣어주는 입력 값을 인자(argument)라고 하는데 인자의 개수와 순서는 반드시 메서드를 정의할 때 선언된 매개변수와 일치되어야 한다. 그렇지 않으면 오류가 발생한다!