🍡 java

JAVA | λ‚˜λ„μ½”λ”© μžλ°” κ°•μ˜ (μΆ”μƒν΄λž˜μŠ€, μΈν„°νŽ˜μ΄μŠ€) _ Quiz#8

c0zi 2023. 2. 10. 17:29

 

좔상 클래슀

 

좔상 ν΄λž˜μŠ€λž€, 아직 μ™„μ„±λ˜μ§€ μ•Šμ€ 클래슀둜 μžμ‹ ν΄λž˜μŠ€μ—μ„œ μ˜€λ²„λΌμ΄λ”© ν•˜μ—¬ μ‚¬μš©ν•˜λŠ” 클래슀λ₯Ό λ§ν•œλ‹€.

 

package chap_08.camera;

public abstract class Camera { // 카메라 λΆ€ν’ˆμœΌλ‘œ νŒλ§€ν•˜μ§€ μ•ŠλŠ” λΉ„λ§€ν’ˆ
    public void takePicture() {
        System.out.println("사진을 μ΄¬μ˜ν•©λ‹ˆλ‹€.");
    }

    public void recordVideo() {
        System.out.println("λΉ„λ””μ˜€λ₯Ό μ΄¬μ˜ν•©λ‹ˆλ‹€.");
    }

    public abstract void showMainFeature(); // κ΅¬ν˜„ν•΄μ•Ό ν•˜λŠ” λ©”μ†Œλ“œ (좔상 λ©”μ†Œλ“œ)
}

 

μœ„μ—μ„œ Camera ν΄λž˜μŠ€λŠ” abstractλ₯Ό μ‚¬μš©ν•˜μ˜€κΈ° λ•Œλ¬Έμ— λ‹€λ₯Έ ν΄λž˜μŠ€μ—μ„œ Cameraλ₯Ό μ§μ ‘μ μœΌλ‘œ μ‚¬μš©ν•  수 μ—†κ²Œ λœλ‹€.

12라인의 showMainFeature λ©”μ†Œλ“œλŠ” μ€‘κ΄„ν˜Έλ‘œ λ©”μ†Œλ“œμ˜ κ΅¬ν˜„λΆ€λ₯Ό 적어주지 μ•Šκ³  μžμ‹ ν΄λž˜μŠ€μ—μ„œ μ˜€λ²„λΌμ΄λ”© ν•˜μ—¬ μ‚¬μš©ν•  수 있게 λœλ‹€.

 

μΈν„°νŽ˜μ΄μŠ€

 

μΈν„°νŽ˜μ΄μŠ€λž€, 좔상 λ©”μ†Œλ“œμ™€ μƒμˆ˜λ§Œμ„ μ‚¬μš©ν•  수 μžˆλŠ” μΌμ’…μ˜ 좔상 ν΄λž˜μŠ€μ΄λ‹€.

 

package chap_08.detector;

public interface Detectable {
    void detect(); // 감지
    // μΈν„°νŽ˜μ΄μŠ€ λ©”μ†Œλ“œλŠ” μžλ™μœΌλ‘œ public abstractκ°€ μƒλž΅
    // μΈν„°νŽ˜μ΄μŠ€ λ³€μˆ˜λŠ” μžλ™μœΌλ‘œ public static final μƒλž΅
}

 

μœ„μ™€ 같이 μ„ μ–Έν•˜λ©°, μœ„μ˜ μ½”λ“œμ—μ„œ detect μ—­μ‹œ abstractκ°€ μƒλž΅λœ 좔상 λ©”μ†Œλ“œμ΄λ‹€.

 

Quiz #8

 

package chap_08;

import chap_08.camera.SpeedCam;
import chap_08.detector.AccidentDetector;
import chap_08.reporter.VideoReporter;

public class _Quiz_08 {
    // μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ΄μš©ν•˜μ—¬ 과속 단속 카메라에 ꡐ톡 사고 감지 및 μ‹ κ³  κΈ°λŠ₯을 μΆ”κ°€ν•˜μ‹œμ˜€

    // 쑰건 1
    // 과속 단속 카메라 SpeedCam 클래슀의 detect(), report() κ°œμ„ 
    // ꡐ톡 사고λ₯Ό κ°μ§€ν•˜λŠ” Accidentdetector 클래슀 μ‹ κ·œ 생성
    // μ‹ κ³  κΈ°λŠ₯은 기쑴에 μž‘μ„±λœ VideoReporter 클래슀 ν™œμš©

    public static void main(String[] args) {
        SpeedCam speedCam = new SpeedCam();
        speedCam.setDetector(new AccidentDetector());
        speedCam.setReporter(new VideoReporter());
        speedCam.detect();
        speedCam.report();
    }
}

 

importν•œ ν΄λž˜μŠ€κ°€ λ§Žμ•„ λ©”μ†Œλ“œλ‚˜ μΆ”μƒλ©”μ†Œλ“œ, 상속 관계에 μžˆλŠ” μ±•ν„°μ˜ 글은 ν‘œν˜„ν•˜κΈ°κ°€ μ–΄λ €μš΄ 것 κ°™λ‹€ γ…œγ…œ

κ·Έλ ‡λ‹€κ³  λ‹€ λ„£κΈ°μ—λŠ” λ„ˆλ¬΄ 양도 많고..

 

μ•„λ¬΄νŠΌ μ‹€ν–‰κ²°κ³ΌλŠ” λ‹€μŒκ³Ό κ°™λ‹€.

 

β–Ό μ‹€ν–‰κ²°κ³Ό

ꡐ톡 사고λ₯Ό κ°μ§€ν•©λ‹ˆλ‹€.
직전 30초 μ˜μƒκ³Ό ν•¨κ»˜ ν™”μž¬ μ‹ κ³ λ₯Ό μ§„ν–‰ν•©λ‹ˆλ‹€.

 

λ„ˆλ¬΄ 볡작 μ–΄λ €μ› λŠ”λ° 천천히 정리해보닀 λ³΄λ‹ˆ μ‘°κΈˆμ”© 이해가 λ˜λŠ” 것 같기도 ... μ•„λ‹Œ 것 같기도 ... ν•˜λ‹€.

 

λ‚΄κ°€ μ˜μƒμ„ 길게 λ³΄λŠ” κ±Έ 잘 λͺ»ν•΄μ„œ κ°•μ˜ μ˜μƒμ„ ν•œλ²ˆ μ­‰ λ³Έ λ’€μ—λŠ” TCP School ν™ˆνŽ˜μ΄μ§€μ— λ‚˜μ™€μžˆλŠ” μžλ°” κ°œλ…λ“€μ„ λ³΄λ©΄μ„œ ν•œλ²ˆ 더 μ •λ¦¬ν•˜κ³  μžˆλ‹€.

 

λ‚˜λ„μ½”λ”© μžλ°” κ°•μ˜

 

https://www.inflearn.com/course/%EB%82%98%EB%8F%84%EC%BD%94%EB%94%A9-%EC%9E%90%EB%B0%94-%EA%B8%B0%EB%B3%B8

 

λ‚˜λ„μ½”λ”©μ˜ μžλ°” 기본편 - ν’€μ½”μŠ€ (20μ‹œκ°„) - μΈν”„λŸ° | κ°•μ˜

λ°°μ›€μ˜ 즐거움을 μ•Œκ²Œ ν•΄μ£ΌλŠ” κ°•μ˜. λ‚˜λ„μ½”λ”©μ˜ μžλ°” κΈ°λ³ΈνŽΈμ„ μ†Œκ°œν•©λ‹ˆλ‹€., - κ°•μ˜ μ†Œκ°œ | μΈν”„λŸ°...

www.inflearn.com

 

TCP School

 

 

http://www.tcpschool.com/

 

 

μ½”λ”©κ΅μœ‘ ν‹°μ”¨ν”ΌμŠ€μΏ¨

4μ°¨μ‚°μ—…ν˜λͺ…, μ½”λ”©κ΅μœ‘, μ†Œν”„νŠΈμ›¨μ–΄κ΅μœ‘, μ½”λ”©κΈ°μ΄ˆ, SWμ½”λ”©, κΈ°μ΄ˆμ½”λ”©λΆ€ν„° μžλ°” 파이썬 λ“±

tcpschool.com