본문 바로가기
TIL

내일배움캠프 4주차 객체지향

by 율량동박씨 2024. 5. 7.

오늘의 키워드

  • 객체지향
  • Compile, Runtime
  • 오버라이딩, 오버로딩
  • @Override Annotation
  • 객체 지향 4가지 특성

오늘의 내용

  • 객체지향
    • 로직을 상태(state)와 행위(behave)로 이루어진 객체(Object)로 만드는 것이다
  • Compile과 Runtime
    • Compile 
      • 소스 코드를 작성하고 컴파일러에 의해 컴파일되는 시점
      • 컴파일러는 코드를 검사하고 바이트 코드로 변환
    • Runtime
      • 프로그램이 실행되고 사용자와 상호작용하는 동안 발생하는 시간
      • 프로그램이 시작되고 객체가 생성되며 메서드가 호출되는 시간
      • 런타임 시점에서 객체의 실제 타입을 결정하고 해당 객체의 메서드가 호출된다
  • 오버라이딩, 오버로딩
    • 오버로딩
      • 같은 이름은 가진 메서드나 생성자를 여러 개 정의하는 것
      • 매개변수의 타입, 순서, 개수가 다를 때 사용
      • 정적 다형성을 지원
    • 오버라이딩
      • 상위 클래스에서 정의된 메서드를 하위클래스에서 동일한 메소드 시그니처(메서드 이름, 매개변수 타입 및 반환 타입)를 재정의 하는 것
      • 런타임 다형성을 지원하며 이미 컴파일되어 실행 중인 상태에서 객체의 실제 타입을 따라 메서드가 동적으로 선택한다
  • @Override Annotation
    • 메소드 오버라이딩을 명시적으로 지정하기 위한 어노테이션입으로 이 어노테이션을 사용하면 컴파일러가 메소드 오버라이딩의 정확성을 검증하고 오버라이딩 규칙을 준수하는지 확인
    • 오버라이딩의 실수 방지(=> 어노테이션을 사용하여 개발자가 실수로 오버라이딩이 아닌 메서드를 선하는 것을 방지)
    • 코드의 가독성 향상
  • 객체지향의 4가지 특성
    • 캡슐화
    • 상속
    • 추상화
    • 다형성
      • 객체의 속성이나 기능이 상황에 따라 여러 가지 형태를 가지는 성질
      • 상위 클래스의 타입을 참조 변수로 하위 클래스의 객체를 참조할 수 있다
      • 다운캐스팅 : 상위 클래스가 하위 클래스로 형변환 되는 것
      • 일시적 다운캐스팅 : 변수 없이 호출하는 순간 다운캐스팅을 하는 것
      • 명시적 다운캐스팅
      • instanceof : 다운 캐스팅을 안정성 있게 사용할 수 있다
      • 업 캐스팅 : 생략이 가능하고 안정성을 보장한

오늘의 회고

  • 팀프로젝트에 실시간 강의에 정신이 하나도 없다 😵‍💫😵‍💫😵‍💫
  • 내일은 병원 진료라 하루가 통으로 날아갈 텐데 실시간 강의도 못 듣고 잃는 게 너무 많은 거 같아 아쉽다
  • 내일이 지나면 팀 프로젝트도 어느 정도 마무리 되겠지?