클래스(Class)
- 객체의 속성과 기능을 변수와 함수로 정의해 놓은 것
객체(Object)
인스턴스(Instance)
사용자 정의 타입(User-defined-type)
- 기본 자료형 외에 사용자가 정의하는 타입(클래스)
변수(Variable)
- 객체의 속성을 나타내기 위한 것
- 클래스 변수(Class Variable)
- 인스턴스 생성없이 사용 가능하고, 모든 인스턴스가 같은 값을 유지하는 변수, 선택적 초기화
- 인스턴스 변수(Instance Variable)
- 인스턴스를 생성해야 사용 가능하고, 생성된 인스턴스마다 다른 값을 가질 수 있는 변수, 선택적 초기화
- 지역 변수(Local Variable)
- 클래스 영역 외인 메서드 내에서만 사용되는 변수, 필수적 초기화
메서드(Method)
- 객체의 기능을 나타내기 위한 것
- 클래스 메서드(Class method)
- 인스턴스를 생성하지 않고, 인스턴스 변수를 사용하지 않는 메서드
- 인스턴스 메서드(Instance method)
- 인스턴스를 생성하고, 인스턴스 변수를 사용하는 메서드
인자(Argument)와 매개변수(Parameter)
- 인자(인수) : 메서드 호출 시 사용하는 변수
- 매개변수 : 메서드 작성 시 작성하는 변수
오버로딩(Overloading)
- 한 클래스 내에 같은 이름의 메서드를 매개변수만 다르게하여 여러 개 선언하는 것
변수 초기화
- 생성자(Constructor)
- 인스턴스가 생성될 때 호출되어 변수를 초기화하는 메서드
- 명시적 초기화(Explicit initialization)
- 초기화 블럭(Initialization block)
- 클래스 초기화 블럭 : 클래스 변수의 복잡한 초기화에 사용
- 인스턴스 초기화 블럭 : 인스턴스 변수의 복잡한 초기화에 사용
- 초기화 시점
- 클래스 변수 : 클래스가 메모리에 로딩될 때 한번만 초기화
- 인스턴스 변수 : 인스턴스가 생성될 때마다 인스턴스마다 초기화
- 초기화 순서
- 클래스 변수 : 기본값 -> 명시적 초기화 -> 클래스 초기화 블럭
- 인스턴스 변수 : 기본값 -> 명시적 초기화 -> 인스턴스 초기화 블럭 -> 생성자
상속(Inheritance)
- 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것
클래스간 관계
- 상속 관계 : 기존 클래스의 멤버를 그대로 새로운 클래스로 가져오는 관계
- 포함 관계 : 기존 클래스의 인스턴스를 새로운 클래스에 생성하여 사용하는 관계
오버라이딩(Overriding)
- 조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것
패키지(Package)
제어자(Modifier)
- 클래스, 변수 또는 메서드의 선언부에 함께 사용하여 부가적인 의미를 나타내는 것
- 접근 제어자(Access modifier)
- public : 접근 제한이 없음을 의미
- protected : 같은 패키지 내, 다른 패키지의 자손 클래스에서 접근 가능함을 의미
- (default) : 같은 패키지 내에서만 접근 가능함을 의미
- private : 같은 클래스 내에서 접근 가능함을 의미
- 그 외 제어자
- static : 인스턴스 생성과 관계 없이 사용 가능 함을 의미
- final : 마지막 또는 변경될 수 없음을 의미
- abstract : 미완성임을 의미
다형성(Polymorpism)
- 조상 클래스 타입의 참조 변수로 자손 클래스의 인스턴스를 참조할 수 있도록 한 것
추상 클래스(Abstract class)
추상 메서드(Abstract method)
- 메서드의 선언부만 작성하고 구현부는 작성하지 않은 메서드
인터페이스(Interface)
- 오직 추상 메서드와 상수만을 멤버로 갖는 일종의 추상 클래스
익명 클래스(Anonymous class)
- 클래스 선언과 인스턴스 생성을 동시에 하는 상속 방법 중 하나로 한번만 사용되고 하나의 객체만 생성해야 하는 상황에 사용되는 일회용 클래스
지네릭스(Generics)
- 클래스나 메서드 내에서 다룰 타입을 미리 명시하여 컴파일 시 체크하는 기능
열거형(Enums)
- 관련 있는 여러 상수를 한 번에 묶어서 선언하기 위한 타입
애너테이션(Annotation)
- 다른 프로그램에게 코드에 대한 정보를 제공하는 것
프로세스(Process)
- 메모리에 적재된 현재 실행 중인 프로그램
쓰레드(Thread)
데몬 쓰레드(Daemon Thread)
- 일반 쓰레드를 돕는 보조 쓰레드(가비지 컬렉터, 자동 저장, 화면 자동 갱신)
람다식(Lambda expression)
- 메서드를 식(Expression)으로 표현하여 변수처럼 다루는 기능
함수형 인터페이스(Functional interface)
- 람다식이 실제로 선언되어 있는 익명 인터페이스
스트림(Stream)
- 자료 구조의 형태에 관계없이 데이터를 같은 방식으로 다룰 수 있도록 자료 구조를 추상화한 것
Leave a comment