2 minute read

클래스(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)

  • 자료 구조의 형태에 관계없이 데이터를 같은 방식으로 다룰 수 있도록 자료 구조를 추상화한 것

Categories:

Updated:

Leave a comment