✏️ TIL

유데미 μ·¨μ—…λΆ€νŠΈμΊ ν”„ - ν”„λ‘ νŠΈμ—”λ“œ&λ°±μ—”λ“œ : 17일차 TIL

Yuuuki 2024. 1. 8. 17:24

 

for문

반볡문 쀑 ν•˜λ‚˜λ‘œ, νŠΉμ • 쑰건이 참인 λ™μ•ˆ 일련의 μ½”λ“œ 블둝을 반볡 μ‹€ν–‰ν•©λ‹ˆλ‹€.

for (μ΄ˆκΈ°ν™”μ‹; 쑰건식; 증감식) {
    // 반볡 싀행될 μ½”λ“œ
}

for(i=1;i<=10;i++){
    System.out.printf("%d * %d =%d",5,i,5*i).println();
   }

 

 

μ΄ˆκΈ°κ°’μ„ 이미 i=1의 κ°’μœΌλ‘œ 사전에 μ •μ˜ν•΄λ‘μ—ˆκΈ° λ•Œλ¬Έμ— 반볡문의 () 쑰건문을 ν•„νžˆ μž‘μ„±ν•˜μ§€ μ•Šμ•„λ„ λœλ‹€.

 

 

μ΄ˆκΈ°ν™”μ‹μ„ i뿐만 μ•„λ‹ˆλΌ, j와 같이 μ—¬λŸ¬λ³€μˆ˜λ₯Ό μ‚¬μš©ν•΄μ„œ for문을 μ΄μš©ν•  수 μžˆλ‹€

쑰건식은 iκ°€ 10μ΄ν•˜μΌλ•ŒκΉŒμ§€ μ΄λ―€λ‘œ, 총 10번의 λ°˜λ³΅λ¬Έμ„ μˆ˜ν–‰ν•˜μ—¬ i = 1 → 11 , j = 2 →12κ°€ λ˜λŠ”κ²ƒμ„ 확인할 수 μžˆλ‹€.

 

Method

λ©”μ„œλ“œ(Method)λŠ” ν΄λž˜μŠ€λ‚˜ 객체의 λ™μž‘μ„ μ •μ˜ν•˜λŠ” μ½”λ“œ λΈ”λ‘μž…λ‹ˆλ‹€. λ©”μ„œλ“œλŠ” νŠΉμ •ν•œ μž‘μ—…μ„ μˆ˜ν–‰ν•˜κ³  값을 λ°˜ν™˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ©”μ„œλ“œλŠ” 클래슀 내뢀에 μ •μ˜λ˜κ±°λ‚˜, 클래슀 λ‚΄λΆ€μ—μ„œ 객체의 μΈμŠ€ν„΄μŠ€ λ©”μ„œλ“œλ‘œ μ •μ˜λ  수 μžˆμŠ΅λ‹ˆλ‹€.

[μ ‘κ·Ό μ œμ–΄μž] [static] [λ°˜ν™˜ μœ ν˜•] λ©”μ„œλ“œμ΄λ¦„(λ§€κ°œλ³€μˆ˜ λͺ©λ‘) {
    // λ©”μ„œλ“œμ˜ λ‚΄μš©
    return λ°˜ν™˜κ°’; // λ°˜ν™˜ μœ ν˜•μ΄ μžˆλŠ” 경우
}

❗️return νƒ€μž…μ˜ μœ ν˜•μ„ λͺ…μ‹œν•˜μ—¬, λ©”μ„œλ“œλ₯Ό μ •μ˜ν•΄μ•Όν•œλ‹€. (μΉ΄λ©œμΌ€μ΄μŠ€ 넀이밍을 μ‚¬μš©)

 

Mehod Overloading

μ˜€λ²„λ‘œλ”©μ€ 같은 μ΄λ¦„μ˜ λ©”μ„œλ“œκ°€ μ„œλ‘œ λ‹€λ₯Έ λ§€κ°œλ³€μˆ˜λ₯Ό κ°€μ§€λŠ” 것을 ν—ˆμš©ν•˜λŠ” κ°œλ…μž…λ‹ˆλ‹€.

즉, λ©”μ„œλ“œμ˜ μ‹œκ·Έλ‹ˆμ²˜(λ§€κ°œλ³€μˆ˜μ˜ μœ ν˜•, 개수, μˆœμ„œ)κ°€ λ‹€λ₯΄λ©΄ 같은 μ΄λ¦„μ˜ λ©”μ„œλ“œλ₯Ό μ—¬λŸ¬ 개 μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 

  • λ©”μ„œλ“œ 이름이 동일해야 ν•©λ‹ˆλ‹€.
  • λ§€κ°œλ³€μˆ˜μ˜ μœ ν˜•, 개수, μˆœμ„œ 쀑 ν•˜λ‚˜κ°€ 달라야 ν•©λ‹ˆλ‹€.
public class Calculator {
    
    // μ •μˆ˜ 두 개λ₯Ό λ”ν•˜λŠ” λ©”μ„œλ“œ
    public int add(int a, int b) {
        return a + b;
    }
    
    // μ‹€μˆ˜ 두 개λ₯Ό λ”ν•˜λŠ” λ©”μ„œλ“œ (μ˜€λ²„λ‘œλ”©)
    public double add(double a, double b) {
        return a + b;
    }
    
    // λ¬Έμžμ—΄ 두 개λ₯Ό κ²°ν•©ν•˜λŠ” λ©”μ„œλ“œ (μ˜€λ²„λ‘œλ”©)
    public String add(String a, String b) {
        return a + b;
    }
}

λ§€κ°œλ³€μˆ˜μ˜ μœ ν˜•μ΄ λ‹€λ₯Έ μ˜€λ²„λ‘œλ”© addν•¨μˆ˜ (int,double,string)

 

❗️ μ»΄νŒŒμΌλŸ¬λŠ” 맀개 λ³€μˆ˜μ˜ μˆ˜μ™€ μœ ν˜•μœΌλ‘œ 두 λ©”μ„œλ“œλ₯Ό ꡬ뢄할 수 μžˆμŠ΅λ‹ˆλ‹€.

 

Mehod Overriding

μ˜€λ²„λΌμ΄λ”©μ€ 상속 κ΄€κ³„μ—μ„œ λΆ€λͺ¨ 클래슀의 λ©”μ„œλ“œλ₯Ό μžμ‹ ν΄λž˜μŠ€μ—μ„œ λ‹€μ‹œ μ •μ˜ν•˜μ—¬ μžμ‹ 클래슀의 λ™μž‘μœΌλ‘œ λ³€κ²½ν•˜λŠ” 것을 μ˜λ―Έν•©λ‹ˆλ‹€.

  • λ©”μ„œλ“œ 이름, λ°˜ν™˜ μœ ν˜•, λ§€κ°œλ³€μˆ˜μ˜ μ‹œκ·Έλ‹ˆμ²˜κ°€ λΆ€λͺ¨ 클래슀의 λ©”μ„œλ“œμ™€ 동일해야 ν•©λ‹ˆλ‹€.
  • μ ‘κ·Ό μ œμ–΄μžλŠ” λΆ€λͺ¨ 클래슀의 λ©”μ„œλ“œμ™€ λ™μΌν•˜κ±°λ‚˜ ν™•μž₯λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.
  • μ˜ˆμ™Έ(throws)λ₯Ό μ„ μ–Έν•  경우, λΆ€λͺ¨ 클래슀의 λ©”μ„œλ“œμ—μ„œ μ„ μ–Έλœ μ˜ˆμ™Έμ™€ λ™μΌν•˜κ±°λ‚˜ ν•˜μœ„ μ˜ˆμ™Έλ₯Ό μ„ μ–Έν•΄μ•Ό ν•©λ‹ˆλ‹€.
class Animal {
    public void makeSound() {
        System.out.println("Animal makes a sound");
    }
}

class Dog extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Dog barks");
    }
}

Dog(μžμ‹) ν΄λž˜μŠ€κ°€ Animal(λΆ€λͺ¨)의 makeSound λ©”μ†Œλ“œλ₯Ό μž¬μ •μ˜(μ˜€λ²„λΌμ΄λ”©)ν•˜μ—¬ μžμ‹ λ§Œμ˜ λ™μž‘μœΌλ‘œ λ³€κ²½ν•œλ‹€.

 

 

JDK, JRE, JVM 

 
πŸ€” μžλ°” μ½”λ“œλ₯Ό λ‹€μ–‘ν•œ μš΄μ˜μ²΄μ œμ—μ„œ μž‘λ™λ˜κΈΈ μ›ν•œλ‹€. ν•˜μ§€λ§Œ, 각 μš΄μ˜μ²΄μ œλ§ˆλ‹€ λͺ…λ Ήμ–΄κ°€ λ‹€λ₯Έλ° μžλ°”λŠ” 이것을 μ–΄λ–»κ²Œ ν•΄κ²°ν• κΉŒ?
 
πŸ’‘λ°”μ΄νŠΈ μ½”λ“œλ‘œ μ»΄νŒŒμΌν•˜μ—¬ ν•΄κ²°ν•œλ‹€!
 
 
 
  1. JVM (Java Virtual Machine):
    • JVM은 Java 가상 λ¨Έμ‹ μ˜ 의미둜, λ°”μ΄νŠΈ μ½”λ“œ(bytecode)둜 μ»΄νŒŒμΌλ©λ‹ˆλ‹€. 
    • JVM은 Java μ‘μš© ν”„λ‘œκ·Έλž¨μ˜ ν”Œλž«νΌ 독립성을 μ œκ³΅ν•©λ‹ˆλ‹€. 즉, ν•œ 번 μž‘μ„±λœ Java ν”„λ‘œκ·Έλž¨μ€ μ—¬λŸ¬ ν”Œλž«νΌμ—μ„œ 싀행될 수 μžˆμŠ΅λ‹ˆλ‹€.
    • JVM은 λ©”λͺ¨λ¦¬ 관리, κ°€λΉ„μ§€ μ»¬λ ‰μ…˜ λ“±μ˜ μž‘μ—…μ„ μ²˜λ¦¬ν•˜μ—¬ Java ν”„λ‘œκ·Έλž¨μ΄ μ•ˆμ •μ μœΌλ‘œ μ‹€ν–‰λ˜λ„λ‘ μ§€μ›ν•©λ‹ˆλ‹€.
  2. JRE (Java Runtime Environment):
    • JREλŠ” Java μ‘μš© ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•˜κΈ° μœ„ν•΄ ν•„μš”ν•œ ν™˜κ²½μ„ μ œκ³΅ν•©λ‹ˆλ‹€.
    • JREλŠ” JVM, Java 클래슀 라이브러리, Java 클래슀 λ‘œλ” λ“±μœΌλ‘œ κ΅¬μ„±λ©λ‹ˆλ‹€.
    • Java μ‘μš© ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•˜λ €λ©΄ JREκ°€ μ‹œμŠ€ν…œμ— μ„€μΉ˜λ˜μ–΄ μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.
    • JREλŠ” κ°œλ°œμžκ°€ Java ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•  수 μžˆλ„λ‘ ν•„μš”ν•œ λͺ¨λ“  λŸ°νƒ€μž„ ν™˜κ²½μ„ μ œκ³΅ν•©λ‹ˆλ‹€.
  3. JDK (Java Development Kit):
    • JDKλŠ” Java ν”„λ‘œκ·Έλž¨μ„ κ°œλ°œν•˜κΈ° μœ„ν•œ 도ꡬ와 ν™˜κ²½μ„ μ œκ³΅ν•©λ‹ˆλ‹€.
    • JDKμ—λŠ” JREκ°€ ν¬ν•¨λ˜μ–΄ 있으며, λ”λΆˆμ–΄ 컴파일러, 디버거, Java λ¬Έμ„œ 생성 도ꡬ, κ°œλ°œμ— ν•„μš”ν•œ 라이브러리 등이 ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
    • κ°œλ°œμžκ°€ Java ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±, 컴파일, λ””λ²„κΉ…ν•˜κ³  μ‹€ν–‰ν•  수 μžˆλŠ” λͺ¨λ“  도ꡬ와 라이브러리λ₯Ό JDKμ—μ„œ μ œκ³΅ν•©λ‹ˆλ‹€.
    • JDKλ₯Ό μ„€μΉ˜ν•˜λ©΄ JRE도 ν•¨κ»˜ μ„€μΉ˜λ˜λ―€λ‘œ, Java μ‘μš© ν”„λ‘œκ·Έλž¨μ„ κ°œλ°œν•˜κ³  μ‹€ν–‰ν•˜λŠ” 데 ν•„μš”ν•œ λͺ¨λ“  것을 μ œκ³΅ν•©λ‹ˆλ‹€.
 

 

πŸ‘‰πŸ» JDKλŠ” Java κ°œλ°œμ„ μœ„ν•œ 전체 도ꡬ와 ν™˜κ²½μ„ ν¬ν•¨ν•˜κ³ , JREλŠ” Java ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•˜κΈ° μœ„ν•œ μ΅œμ†Œν•œμ˜ ν™˜κ²½μ„ ν¬ν•¨ν•˜λ©°, JVM은 Java ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•˜λŠ” 가상 머신을 λ‚˜νƒ€λ‚Έλ‹€.