클래스(class)란?
- Java에서 객체를 정의하는 틀 또는 설계도
- 구성
- 필드(field)
- 객체의 상태
- 클래스에 포함된 변수
- 메소드(method)
- 객체의 행동
- 어떠한 특정 작업을 수행하기 위한 명령문의 집합
- 필드(field)
인스턴스(instance)란?
- 선언된 해당 클래스 타입의 객체
- 메모리에 할당된 객체
- 하나의 클래스로부터 여러 개의 인스턴스를 생성할 수 있다.
- 인스턴스는 독립된 메모리 공간에 저장된 자신만의 필드를 가질 수 있다.
- 해당 클래스의 모든 메소드(method)는 해당 클래스에서 생성된 모든 인스턴스가 공유하게 된다.
클래스의 인스턴스화란?
- 클래스로부터 객체를 선언하는 과정
- Java에서 클래스를 사용하기 위해서는 해당 클래스 타입의 객체를 선언해야 한다.
클래스 정의 방법
인스턴스의 생성 방법
생성자(constructor)란?
- 객체의 생성과 동시에 인스턴스 변수를 원하는 값으로 초기화할 수 있는 메소드
- Java에서 생성자(constructor)의 이름은 해당 클래스의 이름과 같아야 한다.
- 특징
- 생성자는 반환값이 없지만 반환 타입을 void형으로 선언하지 않는다.
- 생성자는 초기화를 위한 데이터를 인수로 전달받을 수 있다.
- 객체를 초기화하는 방법이 여러 개 존재할 경우에는
하나의 클래스가 여러 개의 생성자를 가질 수 있다.- 생성자도 메소드이기 때문에 메소드 오버로딩이 가능하다.
- 사용 예시
클래스를 가지고 객체를 생성하면 해당 객체는 메모리에 즉시 생성된다.
이렇게 생성된 객체는 모든 인스턴스 변수가 아직 초기화되지 않은 상태다.
this 참조 변수
- 인스턴스가 바로 자기 자신을 참조하는 데 사용하는 변수
- 해당 인스턴스의 주소를 가리킨다.
- 사용 예시
this() 메소드
- 생성자 내부에서만 사용할 수 있는 메소드
- 같은 클래스의 다른 생성자를 호출할 때 사용한다.
- 인수를 전달해서 사용하면 생성자 중에서 메소드 시그니처가 일치하는 다른 생성자를 찾아 호출한다.
- 사용 예시