JAVA 10

[Java] GUI, ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ

์ด๋ฒคํŠธ(event) ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ทธ๋ž˜ํ”ฝ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(GUI)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํŠน์ • ๋ช…๋ น์„ ์š”์ฒญํ•˜๋Š” ํ–‰์œ„๋ฅผ ์˜๋ฏธ (ex. ๋ฒ„ํŠผ ํด๋ฆญ, ํ‚ค๋ณด๋“œ ๋ฌธ์ž ์ž…๋ ฅ, ๋งˆ์šฐ์Šค ์Šคํฌ๋กค ๋“ฑ) Event Class ํด๋ž˜์Šค ์„ค๋ช… ActionEvent ๋ฒ„ํŠผ ํด๋ฆญ, ๋ฉ”๋‰ด ์„ ํƒ, ๋ชฉ๋ก ํ•ญ๋ชฉ ํด๋ฆญ ์‹œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ MouseEvent ๋งˆ์šฐ์Šค ๋“œ๋ž˜๊ทธ, ๋งˆ์šฐ์Šค ํด๋ฆญ ์‹œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ MouseWheelEvent ๋งˆ์šฐ์Šค ํœ ์„ ์›€์ง์ผ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ KeyEvent ํ‚ค๋ณด๋“œ ์ž…๋ ฅ ์‹œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ ItemEvent ์ฒดํฌ๋ฐ•์Šค๋‚˜ ๋ชฉ๋ก ํ•ญ๋ชฉ ํด๋ฆญ ์‹œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ TextEvent ํ…์ŠคํŠธ ์˜์—ญ์ด๋‚˜ ํ…์ŠคํŠธ ํ•„๋“œ์˜ ๊ฐ’์ด ๋ณ€๊ฒฝ๋  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ WindowEvent ์œˆ๋„์šฐ ์ฐฝ์ด ํ™œ์„ฑํ™”/๋น„ํ™œ์„ฑํ™”, ์—ด๋ฆฌ๊ฑฐ๋‚˜ ๋‹ซํž ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ ์ด๋ฒค..

JAVA 2024.01.15

[Java] ์Šค์œ™ (Swing)

์Šค์œ™ (Swing) Java ์–ธ์–ด๋กœ ๊ฐœ๋ฐœ๋œ ๊ทธ๋ž˜ํ”ฝ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(GUI) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ AWT๋ณด๋‹ค ๋” ๊ฐ•๋ ฅํ•˜๊ณ  ์ผ๊ด€๋œ GUI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ๊ณต ํ”Œ๋žซํผ ๋…๋ฆฝ์„ฑ์„ ํ™•๋ณดํ•˜๊ธฐ ์œ„ํ•ด ์ˆœ์ˆ˜ Java ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๊ตฌํ˜„๋จ => Java์—์„œ ์ง€ํ–ฅํ•˜๋Š” "Write Once, Run Everywhere(WORE)"๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด, ์‹œ์Šคํ…œ์—์„œ ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฒ„ํŠผ ๋“ฑ์˜ UI ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ œ๊ณตํ•จ ๋ชจ๋“  AWT ์ปดํฌ๋„ŒํŠธ์™€ 100% ํ˜ธํ™˜๋˜๋Š” ์ปดํฌ๋„ŒํŠธ๋กœ ์žฌ์ž‘์„ฑ ๋˜์–ด์žˆ์Œ AWT ์ปดํฌ๋„ŒํŠธ์™€ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ์Šค์œ™ ์ปดํฌ๋„ŒํŠธ์˜ ์ด๋ฆ„์€ ๋Œ€๋ฌธ์ž J๋กœ ์‹œ์ž‘ (ex. JComboBox, JButton, JMenu..etc) Swing ํด๋ž˜์Šค ๊ตฌ์กฐ JComponent ํด๋ž˜์Šค ๋ชจ๋“  ์Šค์œ™ ์ปดํฌ๋„ŒํŠธ์˜ ๊ธฐ๋ณธ ํด๋ž˜์Šค๋กœ ๊ทธ๋ž˜ํ”ฝ ๊ทธ๋ฆฌ๊ธฐ, ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์„ ํ•˜..

JAVA 2024.01.15

[Java] ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค (User Interface)

๊ทธ๋ž˜ํ”ฝ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค (Graphic User Interface) ์‚ฌ์šฉ์ž๊ฐ€ ๋งˆ์šฐ์Šค๋‚˜ ํ‚ค๋ณด๋“œ ๋“ฑ์„ ์ด์šฉํ•˜์—ฌ ํŽธ๋ฆฌํ•˜๊ฒŒ ์ž…์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ทธ๋ž˜ํ”ฝ ํ™”๋ฉด ๊ตฌ์„ฑ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ GUI(graphic user interface)๋ผ๊ณ ๋„ ๋ถ€๋ฆ„ ๊ทธ๋ž˜ํ”ฝ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์˜ ํ•„์š”์„ฑ ์‚ฌ์šฉ์„ฑ ๊ฐœ์„  : ๋ฒ„ํŠผ, ๋ฉ”๋‰ด ๋“ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ณ  ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„ํ•จ์œผ๋กœ์จ ์‚ฌ์šฉ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ด ์ƒํ˜ธ์ž‘์šฉ ํ–ฅ์ƒ : ์‚ฌ์šฉ์ž๊ฐ€ ์ปดํ“จํ„ฐ์—๊ฒŒ ์‹œ๊ฐ์ ์ธ ์ž…๋ ฅ์„ ๋ณด๋‚ด๊ณ , ์ปดํ“จํ„ฐ๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์‹œ๊ฐ์ ์ธ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณต ์•ˆ์ „์„ฑ ํ–ฅ์ƒ : ์‚ฌ์šฉ์ž๊ฐ€ ์ž˜๋ชป๋œ ์ž‘์—…์„ ํ•  ๊ฐ€๋Šฅ์„ฑ์„ ์ค„์ž„์œผ๋กœ์จ, ์‹œ์Šคํ…œ์˜ ์˜ค๋™์ž‘ ๊ฐ€๋Šฅ์„ฑ์„ ์ค„์ผ ์ˆ˜ ์žˆ์Œ Java์—์„œ ๊ทธ๋ž˜ํ”ฝ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ตฌํ˜„ ๊ตฌ๋ถ„ ์„ค๋ช… AWT - Abstract Window Toolkit์˜ ์•ฝ์–ด๋กœ ..

JAVA 2024.01.15

[Java] Map ์ปฌ๋ ‰์…˜

Map ์ปฌ๋ ‰์…˜ ํ‚ค(key)์™€ ๊ฐ’(value)์œผ๋กœ ๊ตฌ์„ฑ๋œ ์ž๋ฃŒ ๊ตฌ์กฐ์˜ ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•จ ์š”์†Œ๋“ค์„ ์ €์žฅํ•  ๋•Œ ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ˆœ์„œ๊ฐ€ ์—†์Œ ํ‚ค๋Š” ์ค‘๋ณตํ•ด์„œ ์ €์žฅํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๋งŒ์•ฝ ๊ธฐ์กด์— ์žˆ๋˜ ํ‚ค์™€ ๊ฐ™์€ ํ‚ค๊ฐ€ ์ž…๋ ฅ๋˜๋ฉด, ํ•ด๋‹น ํ‚ค์˜ ๊ฐ’์ด ์ƒˆ๋กœ์šด ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝ๋จ ๋Œ€ํ‘œ์ ์œผ๋กœ HashTable, HashMap, LinkedHashMap, TreeMap ํด๋ž˜์Šค๊ฐ€ ์žˆ์Œ Map ์ปฌ๋ ‰์…˜์€ ํ‚ค๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•จ ํ‚ค๋Š” ์ค‘๋ณตํ•ด์„œ ์ €์žฅํ•  ์ˆ˜ ์—†์ง€๋งŒ, ๊ฐ’์€ ์ค‘๋ณตํ•ด์„œ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Œ HashMap ํด๋ž˜์Šค ํ‚ค์™€ ๊ฐ’์„ ์Œ์œผ๋กœ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ Map ๊ธฐ๋ฐ˜ ์ปฌ๋ ‰์…˜์ด๋ฉฐ HashMap ๋˜๋Š” HashMap๋กœ ํ‘œ์‹œํ•จ ์ €์žฅ ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•˜์ง€ ์•Š์œผ๋‚˜, ํ•ด์‹ฑ์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š”๋ฐ ์œ ์šฉํ•จ

JAVA 2024.01.15

[Java] List ์™€ Set ์ปฌ๋ ‰์…˜

List ์ปฌ๋ ‰์…˜ ์„ ํ˜• ์ž๋ฃŒ ๊ตฌ์กฐ์˜ ํ˜•ํƒœ๋กœ ์š”์†Œ๋ฅผ ์ €์žฅ ์š”์†Œ๋ฅผ ์ธ๋ฑ์Šค๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์š”์†Œ๋ฅผ ์ €์žฅํ•˜๋ฉด ์ž๋™์œผ๋กœ ์ €์žฅ ์ˆœ์„œ์˜ ์ธ๋ฑ์Šค๊ฐ€ ๋ถ€์—ฌ๋˜๊ณ , ์ธ๋ฑ์Šค๋กœ ์š”์†Œ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ™์€ ์š”์†Œ๋ฅผ ์ค‘๋ณตํ•ด์„œ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Œ ๋Œ€ํ‘œ์ ์œผ๋กœ ArrayList, LinkedList, Vector ํด๋ž˜์Šค๊ฐ€ ์žˆ์Œ ArrayList ํด๋ž˜์Šค List ์ปฌ๋ ‰์…˜ ๊ธฐ๋ฐ˜์˜ ์„ ํ˜• ์ˆœ์„œ๋กœ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฐ์—ด ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ํ•œ ๋ฒˆ ์ƒ์„ฑ๋˜๋ฉด ํฌ๊ธฐ๊ฐ€ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๋ฐฐ์—ด๊ณผ ๋‹ฌ๋ฆฌ ArrayList๋Š” ํฌ๊ธฐ๊ฐ€ ๊ฐ€๋ณ€์ ์ž„ ์ €์žฅ ์šฉ๋Ÿ‰์„ ์ดˆ๊ณผํ•˜๋ฉด ๋ถ€์กฑํ•œ ๋งŒํผ ์ž๋™์œผ๋กœ ์ €์žฅ ์šฉ๋Ÿ‰์ด ๋Š˜์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์—, ์ผ๋ฐ˜์ ์ธ ๋ฐฐ์—ด๋ณด๋‹ค ์œ ์—ฐ์„ฑ์ด ๋›ฐ์–ด๋‚˜ ๋„๋ฆฌ ์‚ฌ์šฉ Set ์ปฌ๋ ‰์…˜ ๋น„์„ ํ˜• ์ž๋ฃŒ ๊ตฌ์กฐ์˜ ํ˜•ํƒœ๋กœ ์š”์†Œ๋ฅผ ์ €์žฅํ•จ ์š”์†Œ๋ฅผ ์ธ๋ฑ์Šค๋กœ ๊ด€๋ฆฌํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ €์žฅ ์ˆœ์„œ..

JAVA 2024.01.15

[Java] Collection ์ปฌ๋ ‰์…˜

์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ €์žฅ, ๊ด€๋ฆฌ ๋ฐ ์กฐ์ž‘ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ •์˜๋กœ ๋ฐ์ดํ„ฐ์˜ ์‚ฝ์ž…, ์‚ญ์ œ, ๊ฒ€์ƒ‰, ์ •๋ ฌ๊ณผ ๊ฐ™์€ ์—ฐ์‚ฐ์„ ํšจ์œจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•จ ์ปฌ๋ ‰์…˜(collection) ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ €์žฅ, ๊ด€๋ฆฌ ๋ฐ ์กฐ์ž‘ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋กœ์„œ List, Set, Map ๋“ฑ๊ณผ ๊ด€๋ จ๋œ ๋‹ค์–‘ํ•œ ํด๋ž˜์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ๊ณตํ•จ ๋ฐฐ์—ด๊ณผ์˜ ์ฐจ์ด์  ๋ฐฐ์—ด ์ปฌ๋ ‰์…˜ ๋™์ผํ•œ ์œ ํ˜•์˜ ๋ฐ์ดํ„ฐ๋งŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Œ ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Œ (๊ฐ€๋Šฅํ•˜์ง€ ์•Š์€ ์ปฌ๋ ‰์…˜๋„ ์žˆ์Œ) ํฌ๊ธฐ๊ฐ€ ๊ณ ์ •๋˜์–ด ์žˆ์Œ(์ •์ ) ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ์Œ(๋™์ ) ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์ด ๋‚ฎ์Œ ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์„ฑ์ด ์ข‹์Œ ์ปฌ๋ ‰์…˜์˜ ํ•„์š”์„ฑ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐํ™” : ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์กฐํ™”ํ•˜์—ฌ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š”๋ฐ ๋„์›€์„ ์ฃผ๋ฏ€๋กœ, ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ์ฐพ๊ณ  ์กฐ์ž‘ ๊ฐ€๋Šฅ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ : ์ปฌ..

JAVA 2024.01.15

[Java] ํŒŒ์ผ ์ž…์ถœ๋ ฅ

ํŒŒ์ผ์ฒ˜๋ฆฌ ? - ํŒŒ์ผ์— ๋Œ€ํ•ด ์ฝ๊ธฐ, ์“ฐ๊ธฐ, ํŽธ์ง‘ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธ - ํŒŒ์ผ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ํด๋ž˜์Šค๋Š” java.io ํŒจํ‚ค์ง€์— ์žˆ์œผ๋ฏ€๋กœ, ํ•ด๋‹น ํŒจํ‚ค์ง€๋ฅผ ํฌํ•จํ•ด์•ผ ํ•จ - ํŒŒ์ผ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ์ŠคํŠธ๋ฆผ(Stream)์ด ํ•„์š” ํŒŒ์ผ ์ฒ˜๋ฆฌ์˜ ํ•„์š”์„ฑ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ : ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๋™์•ˆ ๋ฐ์ดํ„ฐ(ํ…์ŠคํŠธ, ์ด๋ฏธ์ง€ ๋“ฑ)๋ฅผ ๋ณด์กดํ•˜๊ณ  ์œ ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณต ๋กœ๊ทธ ๊ด€๋ฆฌ : ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์ผ์— ๊ธฐ๋กํ•จ์œผ๋กœ์จ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๋””๋ฒ„๊น… ํ•˜๋Š”๋ฐ ์œ ์šฉํ•˜๊ฒŒ ํ™œ์šฉ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ : ์„œ๋ฒ„ ๋“ฑ์œผ๋กœ๋ถ€ํ„ฐ ์›๊ฒฉ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ฑฐ๋‚˜ ์“ฐ๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐฑ์—… ๋“ฑ์— ์œ ์šฉ ์ž…์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ฐ๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ฐœ๋…์œผ๋กœ ์ŠคํŠธ๋ฆผ์ด๋ž€ ๋ฐ์ดํ„ฐ์˜ ํ๋ฆ„์„ ์˜๋ฏธํ•จ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ฐฉ์‹์— ๋”ฐ๋ผ ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ(byte stream)๊ณผ ๋ฌธ์ž ์ŠคํŠธ๋ฆผ(c..

JAVA 2024.01.09

[Java] ํŒจํ‚ค์ง€ (package)

ํŒจํ‚ค์ง€ (package) ? ๊ธฐ๋Šฅ ๋ณ„๋กœ ๊ด€๋ จ๋œ ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค, ํ•˜์œ„ ํŒจํ‚ค์ง€ ๋“ฑ์„ ๋ฌถ์–ด์ฃผ๋Š” ๋‹จ์œ„๋กœ ํด๋”(๋””๋ ‰ํ† ๋ฆฌ)์™€ ์œ ์‚ฌํ•œ ๊ฐœ๋…์ด๋ฉฐ ์ด๋ฅผ ํ†ตํ•ด ์บก์Šํ™”๋ฅผ ์ง€์›ํ•จ ํŒจํ‚ค์ง€์˜ ํ•„์š”์„ฑ ์žฌ์‚ฌ์šฉ์„ฑ ํ–ฅ์ƒ : ๊ธฐ๋Šฅ์— ๋”ฐ๋ผ ํด๋ž˜์Šค ๋“ฑ์„ ์กฐ์งํ™”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์›ํ•˜๋Š” ํด๋ž˜์Šค๋ฅผ ์ฐพ๊ธฐ ์‰ฝ๊ณ  ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Œ ์ ‘๊ทผ ์ œ์–ด : ์ ‘๊ทผ ์ œํ•œ์ž์™€ ํŒจํ‚ค์ง€๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ์บก์Šํ™”๋ฅผ ์ง€์›ํ•˜๊ณ  ํด๋ž˜์Šค ๋“ฑ์˜ ์ ‘๊ทผ ์ •๋„๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Œ ์ถฉ๋Œ ๋ฐฉ์ง€ : ํŒจํ‚ค์ง€๋Š” ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜์—ฌ ํด๋ž˜์Šค ์ด๋ฆ„์˜ ์ ‘๋‘์‚ฌ๋กœ ์‚ฌ์šฉ๋˜๋ฏ€๋กœ ํด๋ž˜์Šค ์ด๋ฆ„์˜ ์ถฉ๋Œ ๋ฐฉ์ง€ ํŒจํ‚ค์ง€์˜ ์œ ํ˜• ์‚ฌ์šฉ์ž ์ •์˜ ํŒจํ‚ค์ง€ : ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๊ธฐ๋Šฅ์— ๋”ฐ๋ผ ํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ถ„๋ฅ˜ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”์— ๋”ฐ๋ผ ์ƒ์„ฑํ•˜๋Š” ํŒจํ‚ค์ง€ ๋‚ด์žฅ ํŒจํ‚ค์ง€ : Java์–ธ์–ด์—์„œ ์‚ฌ์ „์— ์ •์˜ํ•˜์—ฌ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•ด ์ œ๊ณตํ•˜๋Š” ํŒจํ‚ค์ง€

JAVA 2024.01.08

[Java] ์ถ”์ƒํ™”์™€ ์ธํ„ฐํŽ˜์ด์Šค

Interface (์ธํ„ฐํŽ˜์ด์Šค) ? - ํ•˜๋‚˜ ์ด์ƒ์˜ ์ธํ„ฐํŽ˜์ด์Šค ๋ฉ”์„œ๋“œ๋ฅผ ํฌํ•จํ•˜๊ณ  interface ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ ์–ธํ•˜๋ฉฐ ์ผ๋ฐ˜ ๋ฉ”์„œ๋“œ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์—†์Œ - ์ธํ„ฐํŽ˜์ด์Šค ๋ฉ”์„œ๋“œ๋Š” ๋ฉ”์„œ๋“œ์˜ ์„ ์–ธ๋งŒ ์žˆ๊ณ  abstract ํ‚ค์›Œ๋“œ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์„ ์–ธํ•˜์ง€ ์•Š์•„๋„ ๋˜๋ฉฐ, ์‹ค์ œ ๊ตฌํ˜„์€ ์ƒ์† ๋ฐ›์€ ์ž์‹ ํด๋ž˜์Šค์—์„œ ์ด๋ฃจ์–ด์ง interface Car { public void drive(); } public class ElectricCar implements Car { public void drive() { System.out.println("์ „๊ธฐ์ฐจ ์ฃผํ–‰"); } } ์ธํ„ฐํŽ˜์ด์Šค์˜ ํ•„์š”์„ฑ ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์ธํ„ฐํŽ˜์ด์Šค ๋ฉ”์„œ๋“œ๋ฅผ ์„ ์–ธํ•˜๊ณ  ์ž์‹ ํด๋ž˜์Šค์—์„œ ์šฉ๋„์— ๋งž๊ฒŒ ์žฌ์ •์˜ํ•จ์œผ๋กœ์จ ๋‹คํ˜•์„ฑ์˜ ๊ธฐ๋ฐ˜์ด ๋˜๋ฉฐ ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์— ๋„์›€์„ ์คŒ ํด๋ž˜์Šค ..

JAVA 2024.01.08

[Java] ์ถ”์ƒํ™”์™€ ์ถ”์ƒ ํด๋ž˜์Šค

์ถ”์ƒํ™”(abstraction) ? ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ถˆํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ˆจ๊ธฐ๊ณ  ์ค‘์š”ํ•œ ์ •๋ณด๋งŒ์„ ๋‚˜ํƒ€๋ƒ„์œผ๋กœ์จ ํ•ต์‹ฌ์— ์ง‘์ค‘ํ•˜๊ฒŒ ํ•˜๋Š” ๊ฐœ๋… ์ถ”์ƒํ™”์˜ ํ•„์š”์„ฑ ๋ณต์žก์„ฑ ๊ฐœ์„  : ๋ถˆํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ˆจ๊ธฐ๊ณ  ์ค‘์š”ํ•œ ์ •๋ณด๋งŒ์„ ํ‘œํ˜„ํ•จ์œผ๋กœ์จ ๊ฐ์ฒด ๊ฐ„์˜ ๋ณต์žก์„ฑ์„ ์ค„์ผ ์ˆ˜ ์žˆ์Œ ์ค‘๋ณต ๋ฐฉ์ง€ : ๊ณตํ†ต์ ์ธ ์ฝ”๋“œ๋ฅผ ๋ณ„๋กœ๋„ ๊ตฌํ˜„ํ•จ์œผ๋กœ์จ ์ฝ”๋“œ์˜ ์ค‘๋ณต์„ ์ค„์ด๊ณ  ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Œ ๋ณด์•ˆํ–ฅ์ƒ : ํ”„๋กœ๊ทธ๋žจ์˜ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์ˆจ๊น€์œผ๋กœ์จ ์ฝ”๋“œ ๋ณด์•ˆ์— ๋„์›€์ด ๋จ ์ถ”์ƒํ™”์˜ ์œ ํ˜• ๊ณผ์ • ์ถ”์ƒํ™” : ์ƒ์„ธ ์ˆ˜ํ–‰ ๋‹จ๊ณ„ ๊ณ ๋ ค ์ „์— ์ƒ์œ„ ์ˆ˜์ค€์—์„œ ์ˆ˜ํ–‰ ํ๋ฆ„๋งŒ ๋จผ์ € ์„ค๊ณ„ํ•˜๋Š” ์›๋ฆฌ ๋ฐ์ดํ„ฐ ์ถ”์ƒํ™” : ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๋Œ€ํ‘œํ•  ์ˆ˜ ์žˆ๋Š” ํ‘œํ˜„์œผ๋กœ ๋Œ€์ฒดํ•˜๋Š” ์„ค๊ณ„ ์›๋ฆฌ ์ œ์–ด ์ถ”์ƒํ™” : ์ œ์–ด ํ๋ฆ„์„ ๋Œ€ํ‘œํ•  ์ˆ˜ ์žˆ๋Š” ํ‘œํ˜„์œผ๋กœ ๋Œ€์ฒดํ•˜๋Š” ์„ค๊ณ„ ์›๋ฆฌ ์ถ”์ƒํ™” ๊ตฌํ˜„ ๋ฐฉ๋ฒ• ์ถ”์ƒ ํด๋ž˜์Šค ํ•˜๋‚˜ ์ด์ƒ์˜ ์ถ”์ƒ ๋ฉ”..

JAVA 2024.01.08