๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (39)

โœ๐Ÿป๊ธฐ๋กํ•˜๋Š” ๋ธ”๋กœ๊ทธ

[ JAVA ] ์ถ”์ƒํด๋ž˜์Šค

์ฃผ๋กœ ์ƒ์†์˜ ์ƒ์œ„ ํด๋ž˜์Šค๋กœ ์‚ฌ์šฉ๋จ ์ถ”์ƒ ํด๋ž˜์Šค ์„ ์–ธ ํ˜•์‹ abstract ๋ฐ˜ํ™˜ํƒ€์ž… ๋ฉ”์†Œ๋“œ์ด๋ฆ„(); ๊ตฌํ˜„๋œ ๋ฉ”์„œ๋“œ๋Š” ํ•˜์œ„ ํด๋ž˜์Šค๊ฐ€ ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์˜ ๋ฉ”์„œ๋“œ , ํ•˜์œ„ ํด๋ž˜์Šค์— ๋”ฐ๋ผ ์žฌ์ •์˜๊ฐ€ ๊ฐ€๋Šฅ ์ถ”์ƒ ํด๋ž˜์Šค๋Š” new (์ธ์Šคํ„ด์Šคํ™”)๊ฐ€ ๋ถˆ๊ฐ€ํ•˜๋‹ค → ๋ฉ”์„œ๋“œ์˜ ๋ฐ”๋””๊ฐ€ ์—†์œผ๋ฏ€๋กœ ์˜ˆ์‹œ) ์ž์ฃผ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“ˆ์˜ ๊ณตํ†ต๋˜๋Š” ๋ถ€๋ถ„์„ ๋ฏธ๋ฆฌ ๋งŒ๋“ค๊ณ  , ๋ฐ›์•„ ์‚ฌ์šฉํ•˜๋Š” ์ชฝ์—์„œ ์ž์‹ ์ด ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ์žฌ์ •์˜ํ•˜์—ฌ ์‚ฌ์šฉ, ์ƒ์‚ฐ์„ฑ์ด ํ–ฅ์ƒ ๋ชจ๋“  ๋ฉ”์„œ๋“œ๊ฐ€ ๊ตฌํ˜„๋˜์—ˆ๋‹ค๊ณ  ํ•ด๋„ ํด๋ž˜์Šค์— abstract ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ถ”์ƒ ํด๋ž˜์Šค → jdk ๋‚ด๋ถ€์—๋„ ์กด์žฌ, ์˜ค๋กœ์ง€ ์ƒ์†์„ ์œ„ํ•œ ์ถ”์ƒ ํด๋ž˜์Šค package abstractex; public abstract class Computer { public abstract void display(); pub..

Language/Java 2020. 12. 20. 22:38
[ JAVA ] ๊ธฐ๋ณธํด๋ž˜์Šค ( Object, String, Wrapper)

Object ํด๋ž˜์Šค (java.lang.Object) ๋ชจ๋“  ํด๋ž˜์Šค์˜ ์ตœ์ƒ์œ„ ํด๋ž˜์Šค, ๋ชจ๋“  ํด๋ž˜์Šค๋Š” object ํด๋ž˜์Šค๋ฅผ ์ƒ์† ๋ฐ›์Œ -> ๋”ฐ๋กœ extends ํ•˜์ง€ ์•Š์•„๋„ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅ ๋ฐ”๋กœ toString () ๋ฉ”์„œ๋“œ๋ฅผ ์“ธ ์ˆ˜ ์žˆ๋Š” ์ด์œ  ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ž๋™ importํ•จ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ extendsํ•˜์ง€ ์•Š์•„๋„ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ž๋™์œผ๋กœ ๋„ฃ์–ด์คŒ java.langํŒจํ‚ค์ง€๋Š” ์ž๋ฐ”์—์„œ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋™์ž‘์„ ํ•˜๋Š” ํด๋ž˜์Šค java.langํŒจํ‚ค์ง€๋Š” ๋”ฐ๋กœ importํ•˜์ง€ ์•Š์•„๋„ ํด๋ž˜์Šค์— ์ด๋ฆ„๋งŒ์œผ๋กœ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅ ex) String, Void , System Object ํด๋ž˜์Šค๋Š” ํ•„๋“œ๋ฅผ ๊ฐ€์ง€์ง€ ์•Š์œผ๋ฉฐ, ์ด 11๊ฐœ ๋ฉ”์„œ๋“œ๋กœ๋งŒ ๊ตฌ์„ฑ 1. toString() ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜, ๋ฌธ์ž์—ด์€ ํด๋ž˜์Šค ์ด๋ฆ„@16์ง„์ˆ˜ ํ•ด์‰ฌ ์ฝ”๋“œ๋กœ ์ถœ..

Language/Java 2020. 12. 13. 21:26
์ƒ์†์—์„œ ํด๋ž˜์Šค ์ƒ์„ฑ ๊ณผ์ •๊ณผ ํ˜• ๋ณ€ํ™˜

ํ•˜์œ„ ํด๋ž˜์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๊ณผ์ • ํ•˜์œ„ ํด๋ž˜์Šค๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ์ƒ์œ„ ํด๋ž˜์Šค๊ฐ€ ๋จผ์ € ์ƒ์„ฑ๋จ ์ƒ์œ„ ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž๊ฐ€ ํ˜ธ์ถœ๋˜๊ณ  ํ•˜์œ„ ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž๊ฐ€ ํ˜ธ์ถœ๋จ ํ•˜์œ„ ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž์—์„œ๋Š” ๋ฌด์กฐ๊ฑด ์ƒ์œ„ ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž๊ฐ€ ํ˜ธ์ถœ๋˜์–ด์•ผ ํ•จ ํ•˜์œ„ ํด๋ž˜์Šค์—์„œ ์ƒ์œ„ ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ƒ์œ„ ํด๋ž˜์Šค ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•œ 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