Singleton
- 클래스의 인스턴스가 하나만 생성되도록 보장하는 디자인 패턴
- 전역 변수를 사용하지 않고도 객체를 하나만 생성하여 어디서든 접근할 수 있게 함
- 리소스 공유, 데이터 일관성 유지 등에 유용하게 사용됨
Deprecated
- 더 이상 사용을 권장하지 않는 프로그래밍 요소를 표시하는 키워드
- 향후 버전에서 제거될 가능성이 있는 메서드, 클래스 등을 나타냄
- 개발자에게 해당 요소의 사용을 피하고 대체 방법을 찾도록 권고하는 역할
Initialization Block
- 클래스나 인스턴스 변수를 초기화하는 코드 블록
- 생성자 호출 전에 실행되며, 클래스 로딩 시(static) 또는 객체 생성 시 실행됨
- 복잡한 초기화 로직을 별도로 분리하여 코드의 가독성과 유지보수성을 높임
Destructor
- 객체가 메모리에서 제거될 때 자동으로 호출되는 메서드
- 객체가 사용한 리소스를 해제하거나 정리하는 작업을 수행함
- C++에서는 명시적으로 선언하지만, Java에서는 가비지 컬렉터가 이 역할을 대신함
- finalize(), close()
is-a
- 객체 지향 프로그래밍에서 상속 관계를 나타내는 관계
- 하위 클래스가 상위 클래스의 특성을 물려받는 관계를 의미함
- "A는 B이다"라는 문장이 성립할 때 사용 (예: 고양이는 동물이다)
has-a
- 객체 지향 프로그래밍에서 포함 관계를 나타내는 관계
- 한 클래스가 다른 클래스의 객체를 포함하고 있음을 의미함
- "A는 B를 가지고 있다"라는 문장이 성립할 때 사용 (예: 자동차는 엔진을 가지고 있다)
Variable shadowing
- 동일한 이름의 변수가 서로 다른 범위(스코프)에 존재할 때 발생하는 현상
- 지역 변수가 전역 변수나 상위 범위의 변수를 가리는 경우를 말함
- 코드의 가독성을 떨어뜨리고 버그의 원인이 될 수 있어 주의가 필요함