[Java] ์—ด๊ฑฐํ˜•(enum)์ด๋ž€?
ยท
Backend/Java
* ๋ณธ ๋‚ด์šฉ์€ ์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. โ— ์—ด๊ฑฐํ˜•์€ ์—ฌ๋Ÿฌ ์ƒ์ˆ˜๋ฅผ ์„ ์–ธํ•ด์•ผ ํ•  ๋•Œ, ํŽธ๋ฆฌํ•˜๊ฒŒ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. โ— ์ผ๋ฐ˜์ ์œผ๋กœ ์ƒ์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š” ๋ฐฉ๋ฒ• class Card { static final int CLOVER = 0; static final int HEART = 1; static final int DIAMOND = 2; static final int SPADE = 3; final int kind; } โ— ์—ด๊ฑฐํ˜•์„ ์ด์šฉํ•˜์—ฌ ์ƒ์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š” ๋ฐฉ๋ฒ• class Card { enum Kind { CLOVER, HEART, DIAMOND, SPADE } final Kind kind; } ๋”ฐ๋กœ ๊ฐ’์„ ์ง€์ •ํ•ด์ฃผ์ง€ ์•Š์•„๋„ ์ž๋™์ ์œผ๋กœ 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ์ •์ˆ˜๊ฐ’์ด ํ• ๋‹น๋œ๋‹ค. ์—ด๊ฑฐํ˜•์„ ์ •์˜ํ•˜๋Š” ๋ฐฉ๋ฒ• - enum ์—ด๊ฑฐ..
[Java] ์˜ค๋ฒ„๋ผ์ด๋”ฉ(overriding)์ด๋ž€?
ยท
Backend/Java
* ๋ณธ ๋‚ด์šฉ์€ ์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. โ— ์ •์˜ ์กฐ์ƒ ํด๋ž˜์Šค๋กœ๋ถ€ํ„ฐ ์ƒ์†๋ฐ›์€ ๋ฉ”์„œ๋“œ์˜ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์ƒ์†๋ฐ›์€ ๋ฉ”์„œ๋“œ๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•˜์ง€๋งŒ, ์ž์† ํด๋ž˜์Šค ์ž์‹ ์— ๋งž๊ฒŒ ๋ณ€๊ฒฝํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ์ด๋Ÿด ๋•Œ ์กฐ์ƒ์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•œ๋‹ค. class Point { int x; int y; String Location() { return x + y; } } class Point3D extends point { int z; String Location() { return x + y + z; } } โ— ์˜ค๋ฒ„๋ผ์ด๋”ฉ์˜ ์กฐ๊ฑด ์„ ์–ธ๋ถ€๊ฐ€ ์กฐ์ƒ ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ์™€ ์ผ์น˜ํ•ด์•ผ ํ•œ๋‹ค. ์ ‘๊ทผ ์ œ์–ด์ž๋ฅผ ์กฐ์ƒ ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๋ณด๋‹ค ์ข์€ ๋ฒ”์œ„๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค. (public > protected > (default) ..
[Java] Map ์ธํ„ฐํŽ˜์ด์Šค
ยท
Backend/Java
* ๋ณธ ๋‚ด์šฉ์€ ์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. โ— Map์ธํ„ฐํŽ˜์ด์Šค๋Š” ํ‚ค(key)์™€ ๊ฐ’(value)์„ ํ•˜๋‚˜์˜ ์Œ์œผ๋กœ ๋ฌถ์–ด์„œ ์ €์žฅํ•˜๋Š” ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ํ‚ค๋Š” ์ค‘๋ณต๋  ์ˆ˜ ์—†์ง€๋งŒ ๊ฐ’์€ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•œ๋‹ค. ๊ธฐ์กด์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์™€ ์ค‘๋ณต๋œ ํ‚ค์™€ ๊ฐ’์„ ์ €์žฅํ•˜๋ฉด ๊ธฐ์กด์˜ ๊ฐ’์€ ์—†์–ด์ง€๊ณ  ๋งˆ์ง€๋ง‰์— ์ €์žฅ๋œ ๊ฐ’์ด ๋‚จ๊ฒŒ ๋œ๋‹ค. Map์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค๋กœ๋Š” Hashtable, HashMap, LinkedHashMap, SortedMap, TreeMap ๋“ฑ์ด ์žˆ๋‹ค. โ€ป Map์ธํ„ฐํŽ˜์ด์Šค์—์„œ ๊ฐ’(value)์€ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— Collectionํƒ€์ž…์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜๊ณ , ํ‚ค(key)๋Š” ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— Setํƒ€์ž…์œผ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
[Java] ๋žŒ๋‹ค์‹(Lambda Expression)
ยท
Backend/Java
* ๋ณธ ๋‚ด์šฉ์€ ์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. โ— ๋žŒ๋‹ค์‹(Lambda Expression)์€ ๋ฉ”์„œ๋“œ๋ฅผ ํ•˜๋‚˜์˜ '์‹(expression)'์œผ๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ์ด๋‹ค. ๋žŒ๋‹ค์‹์€ ํ•จ์ˆ˜๋ฅผ ๊ฐ„๋žตํ•˜๋ฉด์„œ๋„ ๋ช…ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค. ๋ฉ”์„œ๋“œ๋ฅผ ๋žŒ๋‹ค์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋ฉ”์„œ๋“œ์˜ ์ด๋ฆ„๊ณผ ๋ฐ˜ํ™˜๊ฐ’์ด ์—†์–ด์ง€๋ฏ€๋กœ, ๋žŒ๋‹ค์‹์„ '์ต๋ช… ํ•จ์ˆ˜(anonymous function)'๋ผ๊ณ ๋„ ํ•œ๋‹ค. ์ฆ‰, ๋žŒ๋‹ค์‹์œผ๋กœ ์ธํ•ด ๋ฉ”์„œ๋“œ๋ฅผ ๋ณ€์ˆ˜์ฒ˜๋Ÿผ ๋‹ค๋ฃจ๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ด์ง„ ๊ฒƒ์ด๋‹ค. โ— ๋žŒ๋‹ค์‹ ์ž‘์„ฑํ•˜๊ธฐ int max(int a, int b) { return a > b ? a : b; } ๋ฉ”์„œ๋“œ์—์„œ ์ด๋ฆ„๊ณผ ๋ฐ˜ํ™˜ํƒ€์ž…์„ ์ œ๊ฑฐํ•˜๊ณ  ๋งค๊ฐœ๋ณ€์ˆ˜ ์„ ์–ธ๋ถ€์™€ ๋ชธํ†ต{} ์‚ฌ์ด์— '->'๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค. (int a, int b) -> { return a > b ? a : b; }..
_์„ฑํ˜ธ_
'Backend/Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก