πŸ“š JRE, Java Platform, λ©”μ„œλ“œ λ°˜ν™˜ν˜•, Has-a 관계

labbielΒ·2025λ…„ 4μ›” 10일

μžλ°”

λͺ©λ‘ 보기
3/9
post-thumbnail

λͺ©μ°¨

μžλ°”μ˜ μ‹€ν–‰ ꡬ쑰

JREλž€?

Java Platformμ΄λž€?

Method Return Type (λ©”μ„œλ“œ λ°˜ν™˜ν˜•)

Has-a κ΄€κ³„λž€?


μžλ°”μ˜ μ‹€ν–‰ ꡬ쑰

μžλ°”λŠ” 2단계 μ‹€ν–‰ ꡬ쑰λ₯Ό κ°€μ§€κ³  μžˆμŠ΅λ‹ˆλ‹€.

  • 1단계: 컴파일
    .java β†’ javac β†’ .class(λ°”μ΄νŠΈμ½”λ“œ 생성)
    이 λ‹¨κ³„μ—μ„œλŠ” ν”„λ‘œκ·Έλž¨μ΄ μ‹€μ œλ‘œ μ‹€ν–‰λ˜μ§€λŠ” μ•ŠμŠ΅λ‹ˆλ‹€.

  • 2단계: μ‹€ν–‰ (Runtime)
    .class νŒŒμΌμ„ java λͺ…λ Ήμ–΄λ‘œ μ‹€ν–‰ν•©λ‹ˆλ‹€.
    JVM(Java Virtual Machine)이 λ°”μ΄νŠΈμ½”λ“œλ₯Ό 읽고 ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ν•©λ‹ˆλ‹€.


πŸ“Œ μžλ°”λŠ” 이처럼 μ‹€ν–‰ ν™˜κ²½μ„ λΆ„λ¦¬ν•˜μ—¬ μš΄μ˜μ²΄μ œμ— μ’…μ†λ˜μ§€ μ•Šκ³ , λ‹€μ–‘ν•œ ν™˜κ²½μ—μ„œ λ™μž‘μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€.
β†’ "Write Once, Run Anywhere"


JREλž€?

JRE (Java Runtime Environment)λŠ”
μžλ°” ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•  수 μžˆλŠ” ν™˜κ²½μž…λ‹ˆλ‹€.

πŸ“Œ JRE κ΅¬μ„±μš”μ†Œ

  • JVM (Java Virtual Machine)
  • μžλ°” ν‘œμ€€ 클래슀 라이브러리(API)

JREλŠ” μžλ°” ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰λ§Œ ν•  수 있으며,
개발(μ½”λ”©, 컴파일)은 λΆˆκ°€λŠ₯ν•©λ‹ˆλ‹€.
κ°œλ°œν•˜λ €λ©΄ JDKκ°€ ν•„μš”ν•©λ‹ˆλ‹€!


Java Platformμ΄λž€?

Java Platform은 μžλ°” ν”„λ‘œκ·Έλž¨μ„ κ°œλ°œν•˜κ³  μ‹€ν–‰ν•˜κΈ° μœ„ν•œ 전체 ν™˜κ²½μž…λ‹ˆλ‹€.

πŸ“¦ κ΅¬μ„±μš”μ†Œ

  • JDK (Java Development Kit) β†’ 개발 도ꡬ 포함
  • JRE (μ‹€ν–‰ ν™˜κ²½)
  • JVM (μ‹€μ œ μ‹€ν–‰ μ—”μ§„)
  • Java API (ν‘œμ€€ 클래슀 라이브러리)
    μ΄λŸ¬ν•œ ꡬ쑰 덕뢄에 μžλ°”λŠ” ν”Œλž«νΌ 독립적인 μ‹€ν–‰ ν™˜κ²½μ„ μ œκ³΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Method Return Type (λ©”μ„œλ“œ λ°˜ν™˜ν˜•)

λ©”μ„œλ“œ λ°˜ν™˜ν˜•μ€ λ©”μ„œλ“œκ°€ μ‹€ν–‰λœ ν›„ μ–΄λ–€ νƒ€μž…μ˜ 값을 λ°˜ν™˜ν• μ§€λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

πŸ“Œ μ£Όμš” λ°˜ν™˜ν˜• μ˜ˆμ‹œ

int sum() {
    return 10;  // intν˜• κ°’ λ°˜ν™˜
}
String getName() {
    return "James";  // λ¬Έμžμ—΄ λ°˜ν™˜
}
void printInfo() {
    System.out.println("정보 좜λ ₯");  // λ°˜ν™˜ μ—†μŒ
}
  • int, String, boolean λ“± β†’ λ°˜ν™˜ νƒ€μž…μ΄ λͺ…μ‹œλ©λ‹ˆλ‹€.
  • voidλŠ” λ°˜ν™˜κ°’μ΄ μ—†λŠ” λ©”μ„œλ“œμ— μ‚¬μš©ν•©λ‹ˆλ‹€.

πŸ’‘ λ°˜ν™˜ν˜•μ΄ 잘λͺ»λ˜λ©΄ 컴파일 μ—λŸ¬κ°€ λ°œμƒν•˜λ―€λ‘œ, λ©”μ„œλ“œ 선언뢀와 μ‹€μ œ λ°˜ν™˜κ°’μ˜ νƒ€μž…μ΄ μΌμΉ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.


Has-a κ΄€κ³„λž€?

Has-a κ΄€κ³„λŠ” 클래슀 κ°„ 포함 관계λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€.
즉, ν•˜λ‚˜μ˜ ν΄λž˜μŠ€κ°€ λ‹€λ₯Έ 클래슀의 객체λ₯Ό ν•„λ“œλ‘œ κ°€μ§ˆ λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€.

πŸ“Œ μ˜ˆμ‹œ

class Engine {}

class Car {
    Engine engine = new Engine();  // Car has-a Engine
}
  • Car ν΄λž˜μŠ€λŠ” Engine 클래슀λ₯Ό 내뢀에 ν¬ν•¨ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.
  • μ΄λŠ” 객체 κ°„μ˜ ν˜‘μ—… ꡬ쑰λ₯Ό λ§Œλ“€κ³ , μœ μ§€λ³΄μˆ˜μ„±κ³Ό ν™•μž₯성을 λ†’μ΄λŠ” OOP(객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°)의 κΈ°λ³Έ κ΅¬μ‘°μž…λ‹ˆλ‹€.

0개의 λŒ“κΈ€