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

πŸ’»/JAVA44

[Java] 14일차 : μ˜ˆμ™Έ(Exception)처리 μ—λŸ¬μ˜ μ’…λ₯˜ 컴파일 μ—λŸ¬ (compile time error) 컴파일 ν•  λ•Œ λ°œμƒλ˜λŠ” μ—λŸ¬ 잘λͺ»λœ 문법을 μ‚¬μš©ν•˜κ±°λ‚˜ λ³€μˆ˜λ₯Ό μ •μ˜ν•˜μ§€ μ•Šμ€ μƒνƒœμ—μ„œ μ‚¬μš©ν•˜λŠ” λ“± 컴파일 λ‹¨κ³„μ—μ„œ λ°œμƒλ˜λŠ” 문법적 μ—λŸ¬ λŸ°νƒ€μž„ μ—λŸ¬ (runtime error) ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ ν•  λ•Œ λ°œμƒν•˜λŠ” μ—λŸ¬λ‘œ μ—λŸ¬(error)와 μ˜ˆμ™Έ(exception)κ°€ μžˆλ‹€ - error(μ—λŸ¬) : μ‹œμŠ€ν…œ μ΄μƒμœΌλ‘œ λ°œμƒλ˜λŠ” μ—λŸ¬. μ‹œμŠ€ν…œ 레벨의 μ‹¬κ°ν•œ 였λ₯˜μ΄λ―€λ‘œ μ‹œμŠ€ν…œμ— λ³€ν™œλ₯΄ μ£Όμ–΄ 문제λ₯Ό μ²˜λ¦¬ν•˜λŠ” κ²½μš°κ°€ 일반적. ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ 쀑 μ—λŸ¬κ°€ λ°œμƒν•˜λ©΄ ν”„λ‘œκ·Έλž¨μ΄ μ’…λ£Œ -exception(μ˜ˆμ™Έ) : ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ 쀑 λ°œμƒλ˜λŠ” 비정상적인 상황을 의미. ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ 쀑 μ˜ˆμ™Έκ°€ λ°œμƒν•˜λ©΄ ν”„λ‘œκ·Έλž¨μ΄ μ’…λ£Œ 논리적 μ—λŸ¬ : κ°œλ°œμžκ°€ λ¬Έμ œλΆ„μ„μ„ 잘λͺ»ν•˜κ±°λ‚˜ μ‹€μˆ˜μ— μ˜ν•˜μ—¬.. 2024. 3. 5.
[Java] 14일차 : μ€‘μ²©ν΄λž˜μŠ€, μ—΄κ±°ν˜•, μ–΄λ…Έν…Œμ΄μ…˜, λ ˆμ½”λ“œ 쀑첩 클래슀(nested class) 쀑첩 클래슀 : ν΄λž˜μŠ€μ•ˆμ— 클래슀의 λ©€λ²„λ‘œ μ„ μ–Έλœ 클래슀 쀑첩 μΈν„°νŽ˜μ΄μŠ€ : ν΄λž˜μŠ€μ•ˆμ— 클래슀의 λ©€λ²„λ‘œ μ„ μ–Έλœ μΈν„°νŽ˜μ΄μŠ€ static 쀑첩 클래슀(static nested class) ν΄λž˜μŠ€μ•ˆμ— 클래슀의 λ©€λ²„λ‘œ μ„ μ–Έλœ static 클래슀 μ™ΈλΆ€ 클래슀의 클래슀 λ³€μˆ˜(static λ³€μˆ˜)와 클래슀 λ©”μ†Œλ“œ(static λ©”μ†Œλ“œ)λŠ” λ°”λ‘œ μ ‘κ·Όν•˜μ—¬ μ‚¬μš© κ°€λŠ₯ μ™ΈλΆ€ 클래슀의 μΈμŠ€ν„΄μŠ€ λ³€μˆ˜μ™€ μΈμŠ€ν„΄μŠ€ λ©”μ†Œλ“œλŠ” static 쀑첩 클래슀 μ•ˆμ—μ„œ λ°”λ‘œ 접근이 λΆˆκ°€λŠ₯ν•˜λ©°, μ™ΈλΆ€ 클래슀의 객체λ₯Ό μƒμ„±ν•΄μ„œ μ ‘κ·Όν•œλ‹€. μ™ΈλΆ€ 클래슀 객체 생성 없이 static 쀑첩 ν΄λž˜μŠ€λŠ” λ‹€λ₯Έ ν΄λž˜μŠ€μ—μ„œ λ°”λ‘œ 객체λ₯Ό μƒμ„±ν•΄μ„œ μ ‘κ·Ό ν•  수 μžˆλ‹€. 컴파일 ν›„ μƒμ„±λ˜λŠ” μ™ΈλΆ€ ν΄λž˜μŠ€μ™€ 쀑첩 클래슀 μ™ΈλΆ€ν΄λž˜μŠ€λͺ….clas.. 2024. 3. 5.
[Java] 14일차 : μΈν„°νŽ˜μ΄μŠ€(interface) μΈν„°νŽ˜μ΄μŠ€(interface)λž€? 클래슀λ₯Ό μœ„ν•œ νƒ¬ν”Œλ¦ΏμœΌλ‘œμ„œμ˜ κΈ°λŠ₯을 μˆ˜ν–‰ν•˜λŠ” 좔상 클래슀의 ν•œ μ’…λ₯˜ μΈν„°νŽ˜μ΄μŠ€λŠ” interfaceλΌλŠ” ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ μ„ μ–Έν•˜λ©°, λ©”μ†Œλ“œ μ‹œκ·Έλ„ˆμ²˜μ™€ μƒμˆ˜ μ„ μ–Έ(staticκ³Ό final이 λ‘˜ λ‹€ μ„ μ–Έλ˜λŠ” λ³€μˆ˜ μ„ μ–Έ)λ§Œμ„ 포함할 수 μžˆλ‹€. μžλ°” 8미만의 μΈν„°νŽ˜μ΄μŠ€λŠ” λͺ¨λ“  λ©”μ†Œλ“œκ°€ μ„ μ–Έλ§Œ 있고 μ •μ˜κ°€ μ—†λŠ” 좔상 λ©”μ†Œλ“œλ§Œ μ„ μ–Έ κ°€λŠ₯ μΈνΌν…Œμ΄μŠ€ λ‚΄μ˜ ν•„λ“œλŠ” μƒμˆ˜ μ„ μ–Έλ§Œ ν•œλ‹€. ν΄λž˜μŠ€μ—μ„œ μΈν„°νŽ˜μ΄μŠ€ κ΅¬ν˜„ν•˜κΈ° μœ„ν•΄μ„œλŠ” implementsν•œ ν΄λž˜μŠ€λŠ” ν•΄λ‹Ή μΈν„°νŽ˜μ΄μŠ€μ˜ λͺ¨λ“  좔상 λ©”μ†Œλ“œλ₯Ό μž¬μ •μ˜ ν•΄μ•Ό ν•œλ‹€. μΈν„°νŽ˜μ΄μŠ€λŠ” 닀쀑 상속이 κ°€λŠ₯함. 닀쀑 상속은 ","(콀마)둜 κ΅¬λΆ„ν•˜μ—¬ μ—¬λŸ¬ 개의 μΈν„°νŽ˜μ΄μŠ€λ₯Ό 상속할 수 μžˆλ‹€. μΈν„°νŽ˜μ΄μŠ€λΌλ¦¬ 상속 ν•  경우 extends ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•œλ‹€. β–Ά 특.. 2024. 3. 5.
[Java] 13일차 : 상속 2 μ—… μΊμŠ€νŒ…(up-casting) νŠΉμ • 객체가 ν•˜μœ„ 클래슀의 ν˜•μ—μ„œ μƒμœ„μ˜ 클래슀의 ν˜•μœΌλ‘œ μΊμŠ€νŒ…λ˜λŠ” 것 ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ μ‹œ μžλ™ νƒ€μž… λ³€ν™˜(Promotion)이 μΌμ–΄λ‚˜λ―€λ‘œ λ¬΅μ‹œμ μœΌλ‘œ μΊμŠ€νŒ…μ΄ κ°€λŠ₯ν•˜λ‹€ λ‹€μš΄ μΊμŠ€νŒ…(down-casting) μƒμœ„ 클래슀의 객체λ₯Ό ν•˜μœ„ 클래슀의 객체에 λŒ€μž…ν•˜λŠ” κ²ƒμœΌλ‘œ μ—… μΊμŠ€νŒ…(up-casting)ν•œ 것을 λ‹€μ‹œ μ›λž˜μ˜ ν˜•μœΌλ‘œ λ³€ν™˜ ν•œλ‹€. μ—… μΊμŠ€νŒ…λœ κ²ƒλ§Œ λ‹€μš΄ μΊμŠ€νŒ…μ‹œν‚¬ 수 μžˆλ‹€ λ¬΅μ‹œμ μœΌλ‘œ μΊμŠ€νŒ…μ΄ λΆˆκ°€λŠ₯ν•˜λ©°, λ°˜λ“œμ‹œ λͺ…μ‹œμ μΈ ν˜• λ³€ν™˜(κ°•μ œ μΊμŠ€νŒ…)을 ν•΄μ•Ό ν•œλ‹€ package ch08.unit03; public class Ex01 { public static void main(String[] args) { // 클래슀의 μ°Έμ‘°ν˜• λ³€μˆ˜μ˜ ν˜•λ³€ν™˜μ˜ 상속 κ΄€κ³„μ—μ„œλ§Œ κ°€λŠ₯ν•˜λ‹€. /* *.. 2024. 3. 4.
[Java] 13일차 : 상속 상속(Inheritance)μ΄λž€? 기쑴에 μ •μ˜λœ ν΄λž˜μŠ€μ— λ©”μ†Œλ“œμ™€ ν•„λ“œλ₯Ό μΆ”κ°€ν•˜μ—¬ μƒˆλ‘œμš΄ 클래슀λ₯Ό λ§Œλ“œλŠ” 것. 상속을 톡해 μ—°κ΄€λœ 일련의 ν΄λž˜μŠ€μ— λŒ€ν•œ 곡톡적인 κ·œμ•½μ„ μ •μ˜ν•˜κ³  μ μš©ν•˜λŠ”λ°, μƒμ†μ˜ μ‹€μ§ˆμ μΈ λͺ©μ μ΄ μžˆλ‹€. 슈퍼 클래슀(Super class) 상속을 ν•΄μ£ΌλŠ” λΆ€λͺ¨ 클래슀둜 μƒμœ„ 클래슀(Super class) λ˜λŠ” 기반 클래슀 (Base class)라 ν•œλ‹€. μ„œλΈŒ 클래슀(Sub class) 상속을 λ°›λŠ” μžμ‹ 클래슀둜 ν•˜μœ„ 클래슀 (Sub class) λ˜λŠ” νŒŒμƒ 클래슀 (Derived class)라 ν•œλ‹€. is - a 관계(상속 관계) Aν΄λž˜μŠ€κ°€ B클래슀λ₯Ό 상속받은 경우 AλŠ” B에 ν¬ν•¨λ˜κΈ° 떄문에 "AλŠ” B이닀"라고 ν‘œν˜„ν•  수 μžˆλŠ”λ°, μ΄λŸ¬ν•œ 관계λ₯Ό is-a관계라고 ν•œλ‹€. has- a 관계(포함 .. 2024. 3. 4.
[Java] 12일차 : μžλ°”μ˜ κΈ°λ³Έ API 클래슀 6 Arrays λ°°μ—΄ μ‘°μž‘ κΈ°λŠ₯을 κ°€μ§€κ³  있으며, λͺ¨λ“  λ©”μ†Œλ“œκ°€ static으둜 μ •μ˜λ˜μ–΄ λ°”λ‘œ μ‚¬μš© κ°€λŠ₯ν•˜λ‹€. λ‹¨μˆœν•œ λ°°μ—΄ λ³΅μ‚¬λŠ” System,arraycopy() λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•  수 μžˆμœΌλ‚˜, ArraysλŠ” λ°°μ—΄ 볡사 및 μΆ”κ°€μ μœΌλ‘œ ν•­λͺ© μ •λ ¬, ν•­λͺ© 검색, ν•­λͺ© 비ꡐ와 같은 κΈ°λŠ₯을 μ œκ³΅ν•œλ‹€. package ch07.unit08; import java.util.Arrays; import java.util.Collections; public class Ex01_Arrays { public static void main(String[] args) { String s; String[] ss = new String[] {"μ„œμšΈ","λΆ€μ‚°","λŒ€κ΅¬","인전","κ΄‘μ£Ό","λŒ€μ „","μšΈμ‚°","μ„Έμ’…"}; //Arrays : λ°°.. 2024. 3. 2.