관리 메뉴

λͺ©λ‘Language/Java (20)

βœπŸ»κΈ°λ‘ν•˜λŠ” λΈ”λ‘œκ·Έ

[ JAVA ] 상속

μžλ°” 라이브 μŠ€ν„°λ”” 6μ£Ό μ°¨ - 상속 github.com/whiteship/live-study/issues/6#issuecomment-751219666 1. μžλ°” μƒμ†μ˜ νŠΉμ§• 클래슀λ₯Ό μ •μ˜ν•  λ•Œ 기쑴에 κ΅¬ν˜„λœ 클래슀λ₯Ό μƒμ†λ°›μ•„μ„œ 속성 (λ³€μˆ˜), κΈ°λŠ₯(λ©”μ„œλ“œ)이 ν™•μž₯λ˜λŠ” 것 기쑴의 클래슀λ₯Ό κ°€μ Έλ‹€κ°€ 쑰금 더 ν™•μž₯의 κ°œλ… uml λ‹€μ΄μ–΄κ·Έλž¨μœΌλ‘œ 상속을 ν‘œν˜„ μ‹œ μƒμ†λ°›λŠ” λΆ€λͺ¨ν΄λž˜μŠ€λ₯Ό μžμ‹ ν΄λž˜μŠ€κ°€ ν™”μ‚΄ν‘œλ‘œ κ°€λ¦¬ν‚€κ²Œ λœλ‹€. 닀쀑 상속을 μ§€μ›ν•˜μ§€ μ•ŠλŠ”λ‹€. μƒμ†μ˜ νšŸμˆ˜μ— μ œν•œ 두지 μ•ŠλŠ”λ‹€. 2. super ν‚€μ›Œλ“œ λΆ€λͺ¨ ν΄λž˜μŠ€λ‘œλΆ€ν„° 상속받은 ν•„λ“œλ‚˜ λ©”μ„œλ“œλ₯Ό μžμ‹ ν΄λž˜μŠ€μ—μ„œ μ°Έμ‘° μ‹œ μ‚¬μš©ν•˜λŠ” μ°Έμ‘° λ³€μˆ˜ λΆ€λͺ¨ 클래슀의 멀버와 μžμ‹ 클래슀의 멀버 이름이 같을 경우 super ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ ꡬ별 κ°€λŠ₯ class Paren..

Language/Java 2020. 12. 25. 18:12
[ JAVA ] μΆ”μƒν΄λž˜μŠ€

주둜 μƒμ†μ˜ μƒμœ„ 클래슀둜 μ‚¬μš©λ¨ 좔상 클래슀 μ„ μ–Έ ν˜•μ‹ abstract λ°˜ν™˜νƒ€μž… λ©”μ†Œλ“œμ΄λ¦„(); κ΅¬ν˜„λœ λ©”μ„œλ“œλŠ” ν•˜μœ„ ν΄λž˜μŠ€κ°€ κ³΅ν†΅μœΌλ‘œ μ‚¬μš©ν•˜λŠ” κΈ°λŠ₯의 λ©”μ„œλ“œ , ν•˜μœ„ ν΄λž˜μŠ€μ— 따라 μž¬μ •μ˜κ°€ κ°€λŠ₯ 좔상 ν΄λž˜μŠ€λŠ” new (μΈμŠ€ν„΄μŠ€ν™”)κ°€ λΆˆκ°€ν•˜λ‹€ → λ©”μ„œλ“œμ˜ λ°”λ””κ°€ μ—†μœΌλ―€λ‘œ μ˜ˆμ‹œ) μžμ£Όμ‚¬μš©ν•˜λŠ” λͺ¨λ“ˆμ˜ κ³΅ν†΅λ˜λŠ” 뢀뢄을 미리 λ§Œλ“€κ³  , λ°›μ•„ μ‚¬μš©ν•˜λŠ” μͺ½μ—μ„œ μžμ‹ μ΄ ν•„μš”ν•œ λΆ€λΆ„λ§Œ μž¬μ •μ˜ν•˜μ—¬ μ‚¬μš©, 생산성이 ν–₯상 λͺ¨λ“  λ©”μ„œλ“œκ°€ κ΅¬ν˜„λ˜μ—ˆλ‹€κ³  해도 ν΄λž˜μŠ€μ— abstract ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ 좔상 클래슀 → jdk 내뢀에도 쑴재, μ˜€λ‘œμ§€ 상속을 μœ„ν•œ 좔상 클래슀 package abstractex; public abstract class Computer { public abstract void display(); pub..

Language/Java 2020. 12. 20. 22:38
μƒμ†μ—μ„œ 클래슀 생성 κ³Όμ •κ³Ό ν˜• λ³€ν™˜

ν•˜μœ„ ν΄λž˜μŠ€κ°€ μƒμ„±λ˜λŠ” κ³Όμ • ν•˜μœ„ ν΄λž˜μŠ€κ°€ 생성될 λ•Œ μƒμœ„ ν΄λž˜μŠ€κ°€ λ¨Όμ € 생성됨 μƒμœ„ 클래슀의 μƒμ„±μžκ°€ 호좜되고 ν•˜μœ„ 클래슀의 μƒμ„±μžκ°€ 호좜됨 ν•˜μœ„ 클래슀의 μƒμ„±μžμ—μ„œλŠ” 무쑰건 μƒμœ„ 클래슀의 μƒμ„±μžκ°€ ν˜ΈμΆœλ˜μ–΄μ•Ό 함 ν•˜μœ„ ν΄λž˜μŠ€μ—μ„œ μƒμœ„ 클래슀의 μƒμ„±μžλ₯Ό ν˜ΈμΆœν•˜λŠ” μ½”λ“œκ°€ μ—†λŠ” 경우 μ»΄νŒŒμΌλŸ¬λŠ” μƒμœ„ 클래슀 κΈ°λ³Έ μƒμ„±μžλ₯Ό ν˜ΈμΆœν•˜κΈ° μœ„ν•œ super()λ₯Ό 좔가함 super()둜 ν˜ΈμΆœλ˜λŠ” μƒμ„±μžλŠ” μƒμœ„ 클래슀의 κΈ°λ³Έ μƒμ„±μž λ§Œμ•½ μƒμœ„ 클래슀의 κΈ°λ³Έ μƒμ„±μžκ°€ μ—†λŠ” 경우( λ§€κ°œλ³€μˆ˜κ°€ μžˆλŠ” μƒμ„±μžλ§Œ μ‘΄μž¬ν•˜λŠ” 경우 ) ν•˜μœ„ ν΄λž˜μŠ€λŠ” λͺ…μ‹œμ μœΌλ‘œ μƒμœ„ 클래슀의 μƒμ„±μžλ₯Ό ν˜ΈμΆœν•΄μ•Ό 함 μƒμ†μ—μ„œ λ©”λͺ¨λ¦¬ μƒνƒœ μƒμœ„ 클래슀의 μΈμŠ€ν„΄μŠ€κ°€ λ¨Όμ € μƒμ„±λ˜κ³ , ν•˜μœ„ 클래슀의 μΈμŠ€ν„΄μŠ€κ°€ 생성됨 μƒμœ„ 클래슀둜의 λ¬΅μ‹œμ  ν˜• λ³€ν™˜ ( μ—… μΊμŠ€νŒ… ) ..

Language/Java 2020. 11. 29. 23:07
[JAVA] μ˜ˆμ™Έμ²˜λ¦¬

였λ₯˜μ˜ μ’…λ₯˜ 컴파일 였λ₯˜ μ½”λ“œ μž‘μ„± 쀑 문법적인 였λ₯˜ μ‹€ν–‰ 였λ₯˜ (runtime error) μžλ°”λŠ” λ°œμƒ κ°€λŠ₯ν•œ 였λ₯˜μ— λŒ€ν•΄ μ˜ˆμ™Έμ²˜λ¦¬λ₯Ό ν•˜μ—¬ ν”„λ‘œκ·Έλž¨μ΄ λΉ„μ •μƒμ μœΌλ‘œ μ’…λ£Œλ˜λŠ” 것을 막고 둜그둜 남길 수 μžˆλ‹€. 였λ₯˜μ™€ μ˜ˆμ™Έν΄λž˜μŠ€ 였λ₯˜ μ‹œμŠ€ν…œμ μΈ λΆ€λΆ„, 반볡적인 μž¬κ·€ 호좜둜 μΈν•œ stack over flow λ“± 가상 λ¨Έμ‹ μ—μ„œ λ°œμƒ 동적 λ©”λͺ¨λ¦¬λ₯Ό λ‹€ μ‚¬μš©ν•œ 경우 μ˜ˆμ™Έ ν”„λ‘œκ·Έλž¨μ—μ„œ 제거 κ°€λŠ₯ν•œ 였λ₯˜, μ½μœΌλ €λŠ” 파일이 μ—†μŒ , λ„€νŠΈμ›Œν¬ μ†ŒμΌ“ μ—°κ²° 였λ₯˜ λ“± → μžλ°” ν”„λ‘œκ·Έλž¨μ—μ„œ μ˜ˆμ™Έμ— λŒ€ν•œ μ²˜λ¦¬κ°€ κ°€λŠ₯함 μ˜ˆμ™Έλ₯Ό μ²˜λ¦¬ν•˜λŠ” 방법 try-catch try{ μ˜ˆμ™Έκ°€ λ°œμƒν•  수 있느 μ½”λ“œ }catch(μ²˜λ¦¬ν•  μ˜ˆμ™Έ νƒ€μž… e){ tryμ—μ„œ μ˜ˆμ™Έ λ°œμƒ μ‹œ μ—¬κΈ°μ„œ μ˜ˆμ™Έλ₯Ό 처리 try의 μ½”λ“œκ°€ λͺ¨λ‘ μ‹€ν–‰λœλ‹€μŒ catch둜 μ˜€λŠ”κ²ƒμ΄ μ•„..

Language/Java 2020. 11. 22. 22:52
[ JAVA ] 상속

상속 클래슀λ₯Ό μ •μ˜ν•  λ•Œ 기쑴에 κ΅¬ν˜„λœ 클래슀λ₯Ό μƒμ†λ°›μ•„μ„œ 속성 (λ³€μˆ˜), κΈ°λŠ₯(λ©”μ†Œλ“œ)κ°€ ν™•μž₯λ˜λŠ” 것 기쑴의 클래슀λ₯Ό κ°€μ Έλ‹€κ°€ 쑰금 더 ν™•μž₯의 κ°œλ…, 이질적인 클래슀 λΌλ¦¬λŠ” 상속이 μΌμ–΄λ‚˜μ§€ μ•ŠμŒ a class ← b class bν΄λž˜μŠ€κ°€ a클래슀λ₯Ό μƒμ†λ°›λŠ”λ‹€. 단일 μƒμ†λ§Œ κ°€λŠ₯ 상속은 μ½”λ“œμ˜ μž¬μ‚¬μš©μ΄ μ•„λ‹˜ μƒμ†λ°›λŠ” 클래슀λ₯Ό ν™”μ‚΄ν‘œλ‘œ 가리킴 예제) 고객관리 ν”„λ‘œκ·Έλž¨ 고객 μ€‘μ—λŠ” 일반 고객 customer, 단골 고객 vipCustomerκ°€ μžˆλ‹€. vipCustomer : 일반 고객과 속성은 μœ μ‚¬ν•˜μ§€λ§Œ 더 λ§Žμ€ ν˜œνƒμ„ κ°€μ§€κ²Œ 됨 예 ) μ œν’ˆ ꡬ맀 μ‹œ 10% 할인 λ³΄λ„ˆμŠ€ 포인트 5% λ‹΄λ‹Ή 상담원 λ°°μ • 상속받을 Customer 클래슀 λ³€μˆ˜ μ ‘κ·Ό μ œν•œμžλ₯Ό 보면 protected둜 선언이 λ˜μ–΄μžˆλ‹€. protect..

Language/Java 2020. 11. 15. 15:11