객체: 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있으면서 식별 가능한 것
클래스: 객체를 생성하기 위한 필드와 메소드가 정의되어 있는 설계도
필드: 객체의 고유 데이터, 부품 객체, 상태 정보를 저장하는 곳
필드 선언: 클래스 중괄호 {} 블록 어디서든 선언하나, 생성자와 메소드 내부에서는 선언 할 수 없다.
필드 사용: 클래스 내부의 생성자와 메소드에서 바로 사용이 가능하나, 클래스 외부에서 사용할 경우에는 반드시 객체를 생성하고 참조 변수를 통해 사용해야 함.
생성자: new 연산자로 호출되는 중괄호{} 블록. 객체 생성시 초기화를 담당하며, 모든 클래스에 반드시 하나 이상 존재한다.
기본 생성자: 클래스 선언 시 생성자 선언을 생략했다면 컴파일러에 의해 자동으로 추가되는 생성자
생성자 선언: 클래스로부터 객체를 생성할 때 호출되는 생성자를 명시적으로 선언할 수 있다. 생성자를 선언 하면 기본 생성자는 생성되지 않음
매개 변수: 생성자 호출 시 값을 전달받기 위해 선언되는 변수
객체 초기화: 객체를 사용하기 전에 준비하는 과정으로 필드를 선언할 때 초기화하거나 생성자 내부에서 필드값을 초기화할 수 있으며, 메소드를 호출하는 내용으로 구성됨
오버로딩: 매개 변수를 달리하는 생성자를 여러개 선언하는 것
this(): 객체 자신의 또 다른 생성자를 호출할 때 사용
메소드: 객체의 동작에 해당하는 중괄호{} 블록.
return문: 메소드 선언부에 리턴 타입이 있다면 리턴값을 지정하기 위해 return문을 반드시 사용. 리턴 타입이 void라면 return문은 필요없지만, 메소드 실행 종료를 위해 사용할 수도 있음
메소드 호출: 메소드를 실행하려면 메소드 이름(매개값, ...) 형태로 호출
메소드 오버로딩: 클래스 내에 같은 이름의 메소드를 여러 개 선언하는 것. 조건은 매개 변수의 타입, 개수, 순서 중 하나가 달라야 함
인스턴스 멤버: 객체를 생성한 후 사용할 수 있는 필드와 메소드
this: 주로 생성자와 메소드의 매개 변수 이름이 필드와 동일한 경우, 인스턴스 멤버인 필드임을 명시하고자 할 때 사용.
정적 멤버: 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메소드. 선언시 static 키워드를 추가로 붙이면 됨.
싱글톤: 전체 프로그램에서 단 하나의 객체만 만들도록 보장해야 하는 경우.
final 필드: 초기값이 저장되면 이것이 최종적인 값이 되어 프로그램 실행 도중에 수정할 수 없는 필드.
상수: 불변의 값을 저장하는 필드. final static 키워드로 선언.
패키지 선언: 해당 클래스 또는 인터페이스가 어떤 패키지에 속할 것인지를 선언하는 것 (소스 파일의 최상단에 위치)
mport문: 사용하고자 하는 클래스 또는 인터페이스가 다른 패키지에 소속되어 있다면, 해당 패키지의 클래스 또는 인터페이스를 가져와 사용할 것임을 컴파일러에게 알리기 위해 사용
접근 제한자: 클래스와 인터페이스를 다른 패키지에서 사용하지 못하도록 막을 필요가 있을 때나, 객체 생성을 막기 위해 생성자를 호출하지 못하게 하거나 필드나 메소드를 사용하지 못하도록 막아야 할 때 사용
Getter/Setter: 필드는 외부에서 접근 할 수 없도록 막고 메소드는 공개해서 외부에서 메소드를 통해 필드에 접근하도록 유도.
Getter: 필드의 값을 외부로 리턴해주는 메소드
Setter: 외부에서 값을 받아 필드를 변경하는 메소드