클래스(Class)는 객체 지향 프로그램의 기본 단위로,
객체를 생성하기 위해 객체를 정의하는 템플릿이다.
필드(데이터)와 메소드(동작)을 포함하며, 이를 통해 객체의 상태와 행동을 정의한다.
즉, 클래스는 객체의 속성(필드)와 동작(메소드)를 묶어놓은 설계도와 같다.
필드(Field)는 클래스 내에서 정의된 변수로, 객체의 상태를 나타낸다.
각 인스턴스(객체)마다 독립된 값을 가진다.
필드는 변수와 관련이 있지만 엄연히 다르다.
인스턴스 필드
클래스의 각 인스턴스(객체)에 속하며, 객체마다 개별적으로 존재
인스턴스 멤버인 인스턴스 필드와 메소드는 객체에 소속된 멤버로,
객체 없이는 사용할 수 없다.
클래스 필드(정적 필드)
static으로 선언되며, 클래스에 속한다.
모든 인스턴스가 공유하는 단일 필드
정적 필드와 정적 메소드는 클래스에 고정된 멤버로,
객체 생성 없이 사용할 수 있다.
로컬 변수(Local Variable)
메소드나 생성자 내에서 언언
메소드나 생성자가 실행되는 동안 유효, 블록을 벗어나면 소멸
매개변수(Parameter)
메소드나 생성자에 전달되는 값을 담기위해 선언된 변수
필드(Field)
클래스의 속성을 나타내는 멤버 변수
인스턴스 필드와 클래스 필드가 있다.
생성자(Constructor)는 클래스의 인스턴스를 초기화하는 특별한 메소드다.
객체가 생성될 때 호출되며, 객체 생성 시 초기화를 담당한다.
생성자는 클래스 이름과 동일해야 하며 반환 타입이 없다.
메소드(Method)는 클래스 내에서 정의된 함수로, 객체의 동작을 정의한다.
객체의 상태(필드)를 변경하거나 특정 작업을 수행하는데 사용된다.
인스턴스(Instance)는 클래스를 기반으로 생성된 실제 객체를 의미한다.
클래스가 설계도라면, 인스턴스는 그 설계도를 바탕으로 만들어진 실제 건물이다.
인스턴스는 메모리에 존재하며 클래스에서 정의한 필드와 메소드를 사용해 동작한다.
new 키워드를 사용해 생성된다.new 는 클래스의 생성자를 호출해 객체를 생성하고,클래스로부터 객체를 생성하려면 new 키워드(연산자)를 사용한다.
new 키워드 뒤에는 생성자가 오는데, 생성자는 클래스() 형태를 가진다.
생성된 객체는 메모리 Heap영역에 생성된다.
메모리 내에서 생성된 객체의 위치를 모르면 객체를 사용할 수 없다.
그래서 new 연산자는 Heap 영역에 객체를 생성시킨 뒤 객체의 메모리 주소를 리턴한다.
이 메모리 주소를 참조 타입인 클래스 변수에 저장해 변수를 통해 객체를 사용(참조)한다.
MyClass myClass = new MyClass();