[24.05.07] 내일배움캠프 16일차 JAVA TIL - 객체지향 프로그래밍

2024. 5. 7. 20:27T.I.L

오늘 한 일

  • Web 심화반 강의 수강 - 객체지향 설계
  • scoreDAO 수정및 병합 테스트 케이스 테스트
  • 추가 기능 선정<script async src=ㄱ
         crossorigin="anonymous"></script>

컴파일 시점 : 프로그램이 실행되기 직전의 시점

런타임 시점 : 프로그램이 실행되고 사용자와 상호작용하는 시간

 

오버라이딩 / 오버로딩

 오버 라이딩 -> 올라타다 즉, 이미 있는 기능을 다시 정의하는 것 (매개 인자가 같다)

런타임 다형성을 지원하며 이미 컴파일 되어 실행중인 상태에서 메소드가 선택

@Override 어노테이션을 사용하여 오버라이딩 함수임을 명확히 기재할 수 있다.

가독성이 향상되고, 컴파일러를 통해 오류가 방지된다.

 

 

오버 로딩 -> 매개인자가 다르게 로딩한다고 이해하면 된다. (정적 다형성 지원)

컴파일 시점에 어떤 메소드가 호출될지 결정된다.(매개인자를 보고 맞는 함수로 찾아감)

 


객체 지향 4가지

1. 캡슐화

2. 상속화

3. 추상화

4. 다형성 -> 부모 타입의 참조 변수를 통해 여러 자식 타입의 객체를 참조할 수 있다.(다운 캐스팅/업 캐스팅)

Spring 핵심 원리 (DI, IOC)도 다형성에 있다.

 

 

의존성 주입

public class Main {
	public static void main(String[] arge) {
		
		Driver driver = new Driver();
		
		Vehicle car = new Car();
		Vehicle motorCycle = new MotorCycle();
		
	}

}
  • 아래의 경우 new Car(); new MotorCycle();과 같이 객체에 직접적으로 의존하고 있다.
  • 이러한 경우 의존성 주입이라는 Spring 의 핵심 개념으로 해결한다.
  • 꼭 해당 내용에 대해 학습해보자.

링크 참조 

https://ko.wikipedia.org/wiki/%EC%9D%98%EC%A1%B4%EC%84%B1_%EC%A3%BC%EC%9E%85