기본 개념 및 용어
객체지향 프로그래밍
Object Oriented Programming, OOP
프로그램을 수많은 '객체(Object)'라는 기본 단위로 나누고 이들의 상호작용으로 서술하는 방식
객체는 하나의 역할을 수행하는 메소드와 변수(데이터)의 묶음
인터페이스(interface)
서로 다른 두 객체를 연결해주는 역할을 수행
* 예를 들어 아래와 같이 분업을 한다고 가정해보자.
- A : 여러 가지 메소드를 가지고 특정 프로그램의 main을 구성
- B : 각 메소드의 기능을 실제로 구현
이 때 잘 정의된 인터페이스만 있으면 B가 실제로 기능을 구현해두지 않아도 A는 main을 구성해 나가는데 지장이 없음
* <구현부> 규칙
1) 어떤 인터페이스를 구현하는지 'implements'로 알려줘야 함
2) 인터페이스에 정의된 모든 메소드를 오버라이딩(재정의) 해야 함
다형성
하나의 변수, 또는 함수가 상황에 따라 다른 의미로 해석될 수 있는 것을 말한다.
오버라이딩과 오버로딩은 물론, 부모 타입 객체에 자식 타입의 객체가 들어가는 경우도 다형성의 일종
- ex) List<> list = new ArrayList<>(); → List는 interface로, 하위(자식) 클래스인 ArrayList type의 객체를 담을 수 있음
오버라이딩과 오버로딩
상위 클래스에서 정의된 메소드를 하위 클래스에서 재정의해서 사용 = overriding(오버라이딩)
매개변수의 개수나 type을 달리해서 같은 이름의 메소드(혹은 생성자)를 사용 = overloading(오버로딩)
JVM(Java Virtual Machine)
Java로 개발한 프로그램(소스파일)을 컴파일하여 만들어지는 '바이트코드' 파일을 실행시키기 위한 가상머신(VM)
각 운영체제(OS) 환경에 맞는 JVM이 필요함(OS에 따라 JDK 버전이 다른 이유)
JRE(Java Runtime Environment)에 포함되어 있음
* Hello.java 실행 과정
Hello.java(소스파일) → javac 명령어 → Hello.class(바이트코드파일) → java 명령어 → 기계어(00100111...) → JVM → 각 OS 환경에 맞는 기계어로 번역 → 결과 출력
'Spring-Java > Spring' 카테고리의 다른 글
Day53_Spring Legacy Project 설정 (0) | 2023.12.14 |
---|---|
Day51_MVC Architecture (2) | 2023.12.06 |
Day48_STS, Tomcat Server 설치 및 환경 설정 (0) | 2023.10.27 |
Day47_Apache Tomcat (0) | 2023.10.26 |
Day46_Spring Framework (1) | 2023.10.25 |