λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

TIL/Java

πŸ“š 1/18(λͺ©) 내일배움캠프 Java-Spring 19일차 TIL - java 클래슀(2)

πŸ“ μ˜€λŠ˜μ˜ ν•™μŠ΅ ν‚€μ›Œλ“œ

  • 클래슀(class)
    • 클래슀의 섀계

 

 

 

 

πŸ“ν΄λž˜μŠ€ 섀계

  λ©”λͺ¨λ¦¬μ—μ„œ μ‚¬μš©ν•˜κ³  싢은 객체가 μžˆλ‹€λ©΄ μš°μ„  μ„€κ³„λ„λ‘œ ν•΄λ‹Ή 객체λ₯Ό λ§Œλ“œλŠ” μž‘μ—…μ΄ ν•„μš”ν•˜λ‹€. μžλ°”μ—μ„œλŠ” μ„€κ³„도가 λ°”λ‘œ 클래슀(class)이닀. 클래슀의 ꡬ성 λ©€λ²„μ—λŠ” ν•„λ“œ, μƒμ„±μž, λ©”μ†Œλ“œκ°€ μžˆλ‹€. ν΄λž˜μŠ€λ‘œλΆ€ν„° 객체λ₯Ό λ§Œλ“œλŠ” 과정을 μΈμŠ€ν„΄μŠ€ν™”λΌκ³  ν•œλ‹€. ν•˜λ‚˜μ˜ ν΄λž˜μŠ€λ‘œλΆ€ν„° μ—¬λŸ¬ 개의 μΈμŠ€ν„΄μŠ€λ₯Ό λ§Œλ“€ 수 μžˆλŠ”λ°, 이것은 λ™μΌν•œ μ„€κ³„λ„λ‘œλΆ€ν„° μ—¬λŸ¬ λŒ€μ˜ μžλ™μ°¨λ₯Ό λ§Œλ“œλŠ” 것과 λ™μΌν•˜λ‹€. 

 

πŸ“Œ 클래슀 섀계 μˆœμ„œ Tip!

1. λ§Œλ“€λ €κ³  ν•˜λŠ” 클래슀λ₯Ό μ„ μ–Έν•œλ‹€.
2. 객체가 κ°€μ§€κ³  μžˆμ–΄μ•Ό ν•  속성(ν•„λ“œ)을 μ •μ˜ν•œλ‹€.
3. 객체λ₯Ό λ§Œλ“€ λ•Œ, μ–΄λ–»κ²Œ λ§Œλ“€ 것인지 μ •μ˜ν•œλ‹€.(μƒμ„±μž)
- 처음 객체가 생성될 λ•Œ, μ–΄λ–€ 둜직이 듀어와야 ν•˜λ©° λ“€μ–΄κ°€μ•Ό ν•  ν•„μˆ˜ 값을 μ •μ˜ν•œλ‹€.
- κΈ°λ³Έ μƒμ„±μžλŠ” μƒλž΅ κ°€λŠ₯ν•˜λ‹€.
4. 객체가 κ°€μ§€κ³  μžˆμ–΄μ•Ό ν•  ν–‰μœ„(λ©”μ†Œλ“œ)λ₯Ό μ •μ˜ν•œλ‹€.

 

 

 

 

 

 

 

πŸ“ ν΄λž˜μŠ€μ˜ μ„ μ–Έ

  곡개된 μžλ™μ°¨ 클래슀의 선언을 μ˜λ―Έν•œλ‹€.

public class Car {

}

 

 

 

 

 

 

πŸ“ ν΄λž˜μŠ€μ˜ ν•„λ“œ μ •μ˜

  ν•„λ“œλŠ” 객체의 μ†μ„±μœΌλ‘œμ¨ 데이터λ₯Ό μ €μž₯ν•˜λŠ” 역할을 ν•œλ‹€.

public class Car {
		String company; // μžλ™μ°¨ νšŒμ‚¬
    String model; // μžλ™μ°¨ λͺ¨λΈ
    String color; // μžλ™μ°¨ 색상
    double price; // μžλ™μ°¨ 가격
    double speed;  // μžλ™μ°¨ 속도 , km/h
    char gear; // κΈ°μ–΄μ˜ μƒνƒœ, P,R,N,D
    boolean lights; // μžλ™μ°¨ μ‘°λͺ…μ˜ μƒνƒœ
}

 

 

 

 

 

 

πŸ“ ν΄λž˜μŠ€μ˜ μƒμ„±μž μ •μ˜

  μžλ™μ°¨ 객체의 생성 방식을 μ„ μ–Έν•œλ‹€.

public Car() {} // κΈ°λ³Έ μƒμ„±μž

 

 

 

 

 

 

πŸ“ ν΄λž˜μŠ€μ˜ λ©”μ†Œλ“œ μ •μ˜

  μžλ™μ°¨ 객체의 λ©”μ†Œλ“œλ₯Ό μ„ μ–Έν•œλ‹€.

double gasPedal(double kmh) {
        speed = kmh;
        return speed;
    }

    double brakePedal() {
        speed = 0;
        return speed;
    }

		char changeGear(char type) {
        gear = type;
        return gear;
    }

    boolean onOffLights() {
        lights = !lights;
        return lights;
    }

		void horn() {
        System.out.println("λΉ΅λΉ΅");
    }

 

 

 

 

 

 

πŸ“ μ™„μ„±λœ 클래슀

  ν•„λ“œ, μƒμ„±μž, λ©”μ†Œλ“œκ°€ μžˆλŠ” μžλ™μ°¨ ν΄λž˜μŠ€κ°€ μ™„μ„±λ˜μ—ˆλ‹€.

public class Car {
    String company; // μžλ™μ°¨ νšŒμ‚¬
    String model; // μžλ™μ°¨ λͺ¨λΈ
    String color; // μžλ™μ°¨ 색상
    double price; // μžλ™μ°¨ 가격
    double speed;  // μžλ™μ°¨ 속도 , km/h
    char gear; // κΈ°μ–΄μ˜ μƒνƒœ, P,R,N,D
    boolean lights; // μžλ™μ°¨ μ‘°λͺ…μ˜ μƒνƒœ

    public Car() {} // κΈ°λ³Έ μƒμ„±μž

    double gasPedal(double kmh) {
        speed = kmh;
        return speed;
    }

    double brakePedal() {
        speed = 0;
        return speed;
    }

    char changeGear(char type) {
        gear = type;
        return gear;
    }

    boolean onOffLights() {
        lights = !lights;
        return lights;
    }

    void horn() {
        System.out.println("λΉ΅λΉ΅");
    }
}