관리 메뉴

λͺ©λ‘πŸ’» Study !/JAVA (12)

Partially Committed

[CH08] μ˜ˆμ™Έμ²˜λ¦¬(Exception handling)

λ³Έ ν¬μŠ€νŒ…μ€ μžλ°”μ˜ 정석 ꡐ재λ₯Ό κ³΅λΆ€ν•˜λ©°, κ°„λ‹¨νžˆ 정리/기둝 μš©λ„λ‘œ μž‘μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€. ν˜Ήμ—¬, 잘λͺ»λœ λ‚΄μš©μ΄ μžˆλ‹€λ©΄ μ§€μ ν•΄μ£Όμ‹œλ©΄ κ°μ‚¬ν•˜κ² μŠ΅λ‹ˆλ‹€. 1. μ˜ˆμ™Έμ²˜λ¦¬(exception handling) 컴파일 μ—λŸ¬λŠ” 컴파일 μ‹œ λ°œμƒν•˜λŠ” μ—λŸ¬λ₯Ό λ§ν•˜λ©°, λŸ°νƒ€μž„ μ—λŸ¬λŠ” μ‹€ν–‰ μ‹œ λ°œμƒν•˜λŠ” μ—λŸ¬μ΄κ³  논리적 μ—λŸ¬λŠ” 싀행은 잘 λ˜μ§€λ§Œ μ˜λ„μ™€λŠ” λ‹€λ₯΄κ²Œ λ™μž‘ν•˜λŠ” 경우λ₯Ό λ§ν•œλ‹€. μžλ°”μ—μ„œλŠ” runtime - error λ₯Ό 2가지(error, exception) 으둜 κ΅¬λΆ„ν•˜μ˜€λ”°. error λŠ” λ©”λͺ¨λ¦¬ λΆ€μ‘±(OutOfMemoryError) μ΄λ‚˜ StackOverflowError 와 같은 볡ꡬ할 수 μ—†λŠ” μ‹¬κ°ν•œ 였λ₯˜ exception 은 λ°œμƒλ˜λ”λΌλ„ 수슡이 κ°€λŠ₯ν•œ 비ꡐ적 λ―Έμ•½ν•œ 였λ₯˜ μžλ°”μ—μ„œλŠ” μ‹€ν–‰ μ‹œ λ°œμƒν•  수 μžˆλŠ” 였λ₯˜λ₯Ό 클래슀둜 ..

πŸ’» Study !/JAVA 2022. 8. 2. 17:32
[CH07] 객체지ν–₯ν”„λ‘œκ·Έλž˜λ°4 (OOP)

λ³Έ ν¬μŠ€νŒ…μ€ μžλ°”μ˜ 정석 ꡐ재λ₯Ό κ³΅λΆ€ν•˜λ©°, κ°„λ‹¨νžˆ 정리/기둝 μš©λ„λ‘œ μž‘μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€. ν˜Ήμ—¬, 잘λͺ»λœ λ‚΄μš©μ΄ μžˆλ‹€λ©΄ μ§€μ ν•΄μ£Όμ‹œλ©΄ κ°μ‚¬ν•˜κ² μŠ΅λ‹ˆλ‹€. 1. 좔상 클래슀(Abstract class) [μΆ”μƒν΄λž˜μŠ€λž€?] 좔상 클래슀(Abstract class) λŠ” 좔상 λ©”μ„œλ“œ(Abstract method)λ₯Ό ν¬ν•¨ν•˜κ³  μžˆλŠ” 클래슀둜, μΈμŠ€ν„΄μŠ€λ₯Ό 생성할 수 μ—†κ³  μ˜€λ‘œμ§€ 상속을 ν†΅ν•΄μ„œλ§Œ 완성이 κ°€λŠ₯ν•˜λ‹€. ν‚€μ›Œλ“œ abstract λ₯Ό μ•žμ— λΆ™μ—¬ μ™„μ„±ν•  수 있으며, 좔상 λ©”μ„œλ“œλ₯Ό ν¬ν•¨ν•˜κ³  μžˆλ‹€λŠ” 것 μ™Έμ—λŠ” 일반 ν΄λž˜μŠ€μ™€ μ™„μ „νžˆ λ™μΌν•˜λ‹€. [μΆ”μƒλ©”μ„œλ“œλž€?] 좔상 λ©”μ„œλ“œλŠ” λ©”μ„œλ“œμ˜ μ„ μ–ΈλΆ€λ§Œ κ΅¬ν˜„λœ 것을 μ˜λ―Έν•˜λ©°, μžμ„Έν•œ κ΅¬ν˜„/λ™μž‘μ€ 상속받은 ν΄λž˜μŠ€μ— λ”°λΌμ„œ 달라진닀. abstract void paly(int pos); 와 같이 μ„ μ–Έ..

πŸ’» Study !/JAVA 2022. 8. 2. 17:30
[CH07] 객체지ν–₯ν”„λ‘œκ·Έλž˜λ°3 (OOP)

λ³Έ ν¬μŠ€νŒ…μ€ μžλ°”μ˜ 정석 ꡐ재λ₯Ό κ³΅λΆ€ν•˜λ©°, κ°„λ‹¨νžˆ 정리/기둝 μš©λ„λ‘œ μž‘μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€. ν˜Ήμ—¬, 잘λͺ»λœ λ‚΄μš©μ΄ μžˆλ‹€λ©΄ μ§€μ ν•΄μ£Όμ‹œλ©΄ κ°μ‚¬ν•˜κ² μŠ΅λ‹ˆλ‹€. 1. package 와 import [νŒ¨ν‚€μ§€; package] νŒ¨ν‚€μ§€λŠ” 클래슀 ν˜Ήμ€ μΈν„°νŽ˜μ΄μŠ€λ₯Ό ν¬ν•¨μ‹œν‚¬ 수 μžˆμ–΄μ„œ μ„œλ‘œ κ΄€λ ¨λœ ν΄λž˜μŠ€λ“€λΌλ¦¬ κ·Έλ£Ή λ‹¨μœ„λ‘œ λ¬Άμ–΄ λ†“μŒμœΌλ‘œμ¨ 클래슀λ₯Ό 효율적으둜 관리할 수 μžˆλ„λ‘ ν•œλ‹€. ν•˜λ‚˜μ˜ μ†ŒμŠ€ νŒŒμΌμ—λŠ” 첫 번째 λ¬Έμž₯으둜 ν•œ ν•œ 번의 νŒ¨ν‚€μ§€ μ„ μ–Έλ§Œμ„ ν—ˆμš©ν•˜λ©°, λͺ¨λ“  ν΄λž˜μŠ€λŠ” λ°˜λ“œμ‹œ ν•˜λ‚˜μ˜ νŒ¨ν‚€μ§€μ— 속해야 ν•œλ‹€. λ˜ν•œ νŒ¨ν‚€μ§€λŠ” 점을 κ΅¬λΆ„μžλ‘œ 계측ꡬ쑰λ₯Ό ꡬ성할 수 있으며, 물리적으둜 .class νŒŒμΌμ„ ν¬ν•¨ν•˜λŠ” ν•˜λ‚˜μ˜ 디렉토리이닀. νŒ¨ν‚€μ§€ 선언문은 ν•˜λ‚˜μ˜ μ†ŒμŠ€ 파일 λ‹Ή 1 번만 선언될 수 μžˆλ‹€. 클래슀λͺ…κ³Ό κ΅¬λΆ„ν•˜κΈ° μœ„ν•΄ μ†Œλ¬Έμžλ₯Ό μ‚¬μš©ν•˜λ„..

πŸ’» Study !/JAVA 2022. 8. 1. 18:24
[CH07] 객체지ν–₯ν”„λ‘œκ·Έλž˜λ°2 (OOP)

λ³Έ ν¬μŠ€νŒ…μ€ μžλ°”μ˜ 정석 ꡐ재λ₯Ό κ³΅λΆ€ν•˜λ©°, κ°„λ‹¨νžˆ 정리/기둝 μš©λ„λ‘œ μž‘μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€. ν˜Ήμ—¬, 잘λͺ»λœ λ‚΄μš©μ΄ μžˆλ‹€λ©΄ μ§€μ ν•΄μ£Όμ‹œλ©΄ κ°μ‚¬ν•˜κ² μŠ΅λ‹ˆλ‹€. 1. 상속(Inheritance) [μƒμ†μ˜ μ •μ˜μ™€ μž₯점] μƒμ†μ΄λΌλŠ” 것은 κΈ°μ‘΄ 클래슀λ₯Ό ν™œμš©ν•˜μ—¬ μƒˆλ‘œμš΄ 클래슀λ₯Ό μž‘μ„±ν•˜λŠ” 것을 λ§ν•˜λ©°, 이λ₯Ό μ΄μš©ν•˜λ©΄ 보닀 적은 μ–‘μ˜ μ½”λ“œλ‘œ μƒˆλ‘œμš΄ 클래슀λ₯Ό μž‘μ„±ν•  수 있고 관리가 μš©μ΄ν•΄μ§„λ‹€. 이λ₯Ό 톡해 μ½”λ“œμ˜ μž¬μ‚¬μš©μ„±μ„ 높이고 쀑볡을 μ œκ±°ν•˜μ—¬ 생산성과 μœ μ§€λ³΄μˆ˜μ— 크게 κΈ°μ—¬ν•  수 μžˆκ²Œλœλ‹€. μžλ°”μ—μ„œ 상속을 κ΅¬ν˜„ν•˜λ €λ©΄ μƒˆλ‘œ μž‘μ„±ν•˜κ³ μž ν•˜λŠ” 클래슀 이름 뒀에 extends λ₯Ό μž‘μ„±ν•΄μ£Όλ©΄ λœλ‹€. class Child extends Parent { ... } μœ„μ™€ 같이 ν•˜λ©΄ Child λΌλŠ” μƒˆλ‘œμš΄ Class λŠ” Parent λΌλŠ” Class ..

πŸ’» Study !/JAVA 2022. 7. 31. 14:47