static 예약어
- 멤버 변수와 메서드 앞에 붙일 수 있는 modifier로서, 활용 방법을 제어함
static 예약어가 붙지 않는 인스턴스 변수
- 생성된 인스턴스마다 그 안에 클래스의 인스턴스 변수들이 포함됨
- 일반적인 멤버 변수를 인스턴스 변수라고 부름
static 예약어가 붙는 클래스 변수
- 클래스로부터 생성된 인스턴스에 포함되지 않는 변수
- 많은 인스턴스를 생성하더라도 메모리에 하나의 변수만 존재함
인스턴스 변수
- 클래스로부터 객체가 생성될 떄마다 각 객체의 변수들이 생성됨
클래스 변수
- 클래스로부터 생성된 모든 객체들이 하나의 클래스 변수를 공유함
- 객체가 생성될 떄 메모리 영역을 할당하지 않고,
클래스가 로딩되는 과정에서 메모리에 한번만 할당되는 멤버임
클래스 메서드
- 클래스로부터 인스턴스를 생성하지 않고 호출이 가능함
- 인스턴스 변수는 인스턴스를 생성해야만 메모리가 잡히기 때문에
클래스 메서드에서 사용이 불가능함
*클래스 메서드에서는 클래스 메서드만 호출이 가능함
#생성자의 개념
생성자는 클래스로부터 객체를 생성할 때, 호출되며, 객체의 멤버 변수를 초기화하는데 사용되는 메서드임
객체를 생성활 때 객체에 필요한 값들을 초기화하는 개념은 배열과 동일함
객체를 생성할 때 객체에 필요한 값들을 초기화하는 개념은 배열과 동일함
- 정수형 배열객체를 생성하고 적절한 값들을 초기화하는 경우
# 생성자의 특징
-생성자는 클래스와 같은 이름을 가진 특별한 메서드로서 객체 생성시 맴버 변수의 초기화를 담당함
-일반 멤버 메서드와 달리 반환형이 없음 (void도 허용되지않음)
-생성자는 이름은 같지만 매개변수를 달리하여 여러 개를 중복 정의 할수 있음
-생성자는 키워드 'new'와 항상 같이 사용됨
-명시적으로 작성하지않을 경우, 기본 생성자가 제공됨