๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ”ญComputer Science๐Ÿ”ญ/JAVA

(9)
[JAVA] Enum ํ™œ์šฉํ•ด๋ณด๊ธฐ Enum์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ทธ๋ƒฅ static final ์ƒ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ฝ”๋“œ๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์ด๋Ÿฌํ•œ enum ํ™œ์šฉ๋ฒ•์„ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 1. Enum enum์€ ์„œ๋กœ ๊ด€๋ จ์ด ์žˆ๋Š” ์ƒ์ˆ˜์˜ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค. enum์ด ๋‚˜์˜ค๊ธฐ ์ด์ „์—๋Š” ํด๋ž˜์Šค์˜ `private static`์ด๋‚˜ `interface`์˜ ์ƒ์ˆ˜๊ฐ’์„ ํ™œ์šฉํ•˜์—ฌ ์ƒ์ˆ˜์ง‘ํ•ฉ์„ ์ •์˜ํ•˜์˜€์Šต๋‹ˆ๋‹ค. a. ๊ธฐ์กด ์ƒ์ˆ˜์˜ ๋ฌธ์ œ์  1. ์„œ๋กœ ๋‹ค๋ฅธ ์ƒ์ˆ˜์ง‘ํ•ฉ์€ ๋น„๊ตํ•˜๋ฉด ์•ˆ๋œ๋‹ค. - ๊ธฐ์กด ์ƒ์ˆ˜์ง‘ํ•ฉ๋“ค์€ ํƒ€์ž…๋งŒ ๊ฐ™์œผ๋ฉด ๋น„๊ต๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ณ  ๋‚˜์ค‘์— ๋Ÿฐํƒ€์ž„์—์„œ ์ด๋กœ ์ธํ•œ ์—๋Ÿฌ๋ฅผ ์žก๊ธฐ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. b. ์ •์˜๋ฐฉ๋ฒ• public enum Day { MONDAY, TUESDAY; } class DayStatic { private final static DayStatic MO..
์ผ๊ธ‰ ์ปฌ๋ ‰์…˜(First Class Collection)์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž ๐Ÿ’ก tocoble์„ ๋ณด๋‹ค๊ฐ€ ์ผ๊ธ‰ ์ปฌ๋ ‰์…˜์„ ์•Œ๊ฒŒ ๋˜์—ˆ๊ณ  ์ด์— ๋Œ€ํ•ด ์•Œ๊ฒŒ๋œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด๋‘๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 1. ์ผ๊ธ‰ ์ปฌ๋ ‰์…˜ ๊ทœ์น™ ๋จผ์ €, ์ผ๊ธ‰ ์ปฌ๋ ‰์…˜์˜ ๊ทœ์น™์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ด…์‹œ๋‹ค. ํด๋ž˜์Šค๋Š” ์ปฌ๋ ‰์…˜์„ ์ œ์™ธํ•˜๊ณ  ๋‹ค๋ฅธ ์–ด๋–ค ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๊ฐ€ ์—†์–ด์•ผ ํ•จ ์ปฌ๋ ‰์…˜์„ Wrappingํ•˜๋ฉด์„œ Wrappingํ•œ Collection์™ธ ๋‹ค๋ฅธ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๊ฐ€ ์—†๋Š” ์ƒํƒœ๋ฅผ ๋œปํ•จ 2. ์˜ˆ์‹œ SafariService ์‚ฌํŒŒ๋ฆฌ์„œ๋น„์Šค๊ฐ€ ๋™๋ฌผ๋“ค์„ List ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ์ง์ ‘ ๊ด€๋ฆฌํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ด…์‹œ๋‹ค. ๋งŒ์•ฝ ์šฐ๋ฆฌ๊ฐ€ ์—๋ฒ„๋žœ๋“œ์˜ ์‚ฌํŒŒ๋ฆฌ ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•œ๋‹ค๋ฉด ์—ฌ๋Ÿฌ ๋™๋ฌผ๋“ค์„ ๊ด€๋ฆฌํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‚ฌํŒŒ๋ฆฌ์— ์žˆ๋Š” ๋™๋ฌผ๋“ค์€ ์ •ํ•ด์ง„ ์ตœ์†Œ ์—๋„ˆ์ง€๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ SafariService๋Š” ๊ด€๋ฆฌํ•˜๋Š” ๋™๋ฌผ๋“ค์ด ์กฐ๊ฑด์— ๋ถ€ํ•ฉํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋กœ์ง์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. class Saf..
์ถ”์ƒํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค ์ฐจ์ด๋ฅผ ์ƒ๊ฐํ•ด๋ณด๊ธฐ ๐Ÿคจ ์ถ”์ƒํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋น„๊ตํ•ด๋ณด๊ณ  ์ƒ๊ฐํ•ด๋ณธ ๋‚ด์šฉ์„ ๊ธฐ๋กํ•ด๋‘๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ถ”์ƒํด๋ž˜์Šค ์ถ”์ƒ๋ฉ”์„œ๋“œ๋ฅผ ์ ์–ด๋„ 1๊ฐœ๊ฐ€์ง„ ํด๋ž˜์Šค ์„œ๋กœ ๊ด€๋ จ์„ฑ์ด ๋†’์€ ํด๋ž˜์Šค๊ฐ„ ๊ณตํ†ต ์ฝ”๋“œ๋ฅผ ๊ณต์œ ํ•˜๊ณ  ํ™•์žฅํ•˜๋ ค๋Š” ๋ชฉ์  ์ถ”์ƒํด๋ž˜์Šค๋Š” 'is kind of' ๊ด€๊ณ„์ด๋‹ค. ex) ํฌ์œ ๋ฅ˜ - ์‚ฌ๋žŒ, ์กฐ๋ฅ˜ - ์•ต๋ฌด์ƒˆ ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„๋œ ๋ฉ”์„œ๋“œ ์—†์ด ์ถ”์ƒ๋ฉ”์„œ๋“œ์™€ ์ƒ์ˆ˜๋งŒ์„ ๊ฐ€์ง„ ํด๋ž˜์Šค (default์™€ static ์ œ์™ธ) ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด๋ฏธ ์ƒ์†์„ ๋ฐ›์€ ํด๋ž˜์Šค๋„ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Œ ์„œ๋กœ ๋‹ค๋ฅธ ๊ด€๋ จ์„ฑ ์—†๋Š” ํด๋ž˜์Šค๋“ค์„ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๊ฐ™์€ ๊ธฐ๋Šฅ์˜ ๊ตฌํ˜„์„ ๊ฐ•์ œํ•˜๋Š” ๋ชฉ์  ์ถ”์ƒํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์‚ฌ์šฉ์˜๋„์—์„œ ์ฐจ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ถ”์ƒํด๋ž˜์Šค๋Š” ๊ณตํ†ต๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•˜๊ฑฐ๋‚˜ ์„œ๋กœ ๊นŠ๊ฒŒ ์—ฐ๊ด€๋œ ํด๋ž˜์Šค๋ผ๋Š” ๊ฒƒ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. (๋™๋ฌผ..
[JAVA] ์–•์€ ๋ณต์‚ฌ์™€ ๊นŠ์€ ๋ณต์‚ฌ ์–•์€ ๋ณต์‚ฌ์™€ ๊นŠ์€ ๋ณต์‚ฌ๋ฅผ ์ดํ•ดํ•ด์•ผ๋งŒ ๊ทธ ์ฐจ์ด์—์„œ ์˜ค๋Š” ์—๋Ÿฌ๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ๊ณ  ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์–•์€ ๋ณต์‚ฌ ํ•œ ์ชฝ์—์„œ ์ˆ˜์ • ๋ฐœ์ƒ ์‹œ ๋‹ค๋ฅธ ์ชฝ์—๋„ ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค. ์–•์€ ๋ณต์‚ฌ๋Š” "์ฃผ์†Œ"๋ฅผ ๋ณต์‚ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์†Œ๋กœ ๊ฐ’์„ ์ฐธ์กฐํ•˜์—ฌ ๊ฐ’์„ ๋ฐ”๊พธ๊ฒŒ ๋œ๋‹ค. ์ฆ‰, ๋ณต์‚ฌ๋œ ์ฃผ์†Œ์™€ ์›๋ž˜ ์ฃผ์†Œ ๋ชจ๋‘ ๊ฐ™์€ ๊ฐ’์„ ์ฐธ์กฐํ•˜๋ฏ€๋กœ ํ•œ ์ชฝ ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋ฉด ๋‹ค๋ฅธ ํ•œ์ชฝ ๊ฐ’์ด ๊ทธ ๊ฐ’์„ ์ฐธ์กฐํ•˜๊ฒŒ ๋œ๋‹ค. # 2์ฐจ์› ๋ฐฐ์—ด์˜ ์–•์€ ๋ณต์‚ฌ int[][] arr = new int[2][2]; int[][] arr_copy = a; copy[0][0] = 1; for (int[] ar : arr) { for (int v : ar) System.out.print(v + " "); System.out.println(); } System.out.println(); fo..
[JAVA] ํŒจํ‚ค์ง€์— ๋Œ€ํ•ด.. ํŒจํ‚ค์ง€ ํด๋ž˜์Šค๋ฅผ ๊ตฌ๋ถ„ ์ง“๋Š” ํด๋”์˜ ๊ฐœ๋… ์†Œ์Šค์˜ ์œ— ์ค„์— ์œ„์น˜ํ•˜๋ฉฐ, ์†Œ์Šค ํ•˜๋‚˜์— ํ•˜๋‚˜๋งŒ ์กด์žฌํ•œ๋‹ค. ํŒจํ‚ค์ง€ ์ด๋ฆ„๊ณผ ์œ„์น˜ํ•œ ํด๋”์˜ ์ด๋ฆ„์€ ๊ฐ™๋‹ค. ๋ชจ๋“  ํด๋ž˜์Šค์—๋Š” ์ •์˜๋œ ํด๋ž˜์Šค ์ด๋ฆ„๊ณผ ํŒจํ‚ค์ง€ ์ด๋ฆ„์ด ์žˆ๋”ฐ. ์ด ๋‘˜์„ ํ•ฉ์น˜๋ฉด ์™„์ „ํ•œ ํด๋ž˜์Šค๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. FQCN(Fully Qualified Class Name)์ด๋ผ๊ณ  ํ•œ๋‹ค. ex) Stringํด๋ž˜์Šค์˜ ํŒจํ‚ค์ง€ --> java.lang.String ํŒจํ‚ค์ง€ ์ด๋ฆ„ ๊ทœ์น™ java -> ์ž๋ฐ” ๊ธฐ๋ณธ ํŒจํ‚ค์ง€ javax -> ์ž๋ฐ” ํ™•์žฅ ํŒจํ‚ค์ง€ org -> ์ผ๋ฐ˜์ ์œผ๋กœ ๋น„์˜๋ฆฌ๋‹จ์ฒด ํŒจํ‚ค์ง€ com -> ์ผ๋ฐ˜์ ์œผ๋กœ ์˜๋ฆฌ๋‹จ์ฒด ํŒจํ‚ค์ง€ ๋นŒํŠธ์ธ ํŒจํ‚ค์ง€๋Š” ์ž๋ฐ”๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ํŒจํ‚ค์ง€ ๋ฐ ํด๋ž˜์Šค์ด๋‹ค. ๋”ฐ๋กœ ์ž„ํฌํŠธํ•˜์ง€ ์•Š์•„๋„ ์ž๋ฐ”๊ฐ€ ์•Œ์•„์„œ ๊ฐ€์ ธ์˜จ๋‹ค. (import ํ•˜์ง€ ์•Š์•„๋„ ๋จ) impor..
[JAVA] Classpath : ํด๋ž˜์ŠคํŒจ์Šค ํด๋ž˜์ŠคํŒจ์Šค ํด๋ž˜์Šค๋ฅผ ์ฐพ๋Š” ๊ธฐ์ค€ ๊ฒฝ๋กœ ์ž๋ฐ”์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰๋  ๋•Œ์— ์—ฌ๋Ÿฌ ํด๋ž˜์Šค๋“ค์ด ์‚ฌ์šฉ๋˜๋Š”๋ฐ, ์ด ๋•Œ ํ•„์š”ํ•œ ํด๋ž˜์Šค๋“ค์„ ๊ณ„์† ์ฐพ๋Š”๋‹ค. javaํŒŒ์ผ์„ ์ปดํŒŒ์ผ ํ•˜๋ฉด ๊ด€๋ จ๋œ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ํด๋ž˜์ŠคํŒŒ์ผ๊ณผ ClassPath๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค. ์ด ๋•Œ ์ƒ์„ฑ๋œ classํŒŒ์ผ์„ ๋‹ค๋ฅธ ํด๋”์— ์˜ฎ๊ธฐ๊ณ  Classpath๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ํด๋ž˜์Šค๋ฅผ ์ฐพ์ง€๋ชปํ•ด์„œ `ClassNotFoundException`์ด ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ `-classpath` ์˜ต์…˜์œผ๋กœ ๊ธฐ์ค€ ๊ฒฝ๋กœ๋ฅผ ์•Œ๋ ค์ฃผ๋˜์ง€ ํ™˜๊ฒฝ๋ณ€์ˆ˜์— class path๋ฅผ ์ถ”๊ฐ€ํ•ด์ค˜์•ผ๋งŒ ํ•œ๋‹ค.
[JAVA] ํด๋ž˜์Šค ์ž๋ฐ”๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ํŒจ๋Ÿฌ๋‹ค์ž„ ๊ธฐ๋ฐ˜์˜ ์–ธ์–ด์ด๋‹ค! ๊ฐ์ฒด์ง€ํ–ฅ์ด๋ž€ ์‹œ์Šคํ…œ์„ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๊ฐ์ฒด๋“ค์˜ ํ˜‘๋ ฅ์œผ๋กœ ๋ฐ”๋ผ๋ณด๊ณ  ์‹œ์Šคํ…œ์˜ ์ฑ…์ž„์„ ๋ถ„ํ• ํ•˜์—ฌ ๊ฐ๊ฐ์˜ ๊ฐ์ฒด๊ฐ€ ๋งก์€ ์ฑ…์ž„์„ ๋ฉ”์‹œ์ง€๋กœ ์†Œํ†ตํ•˜๋ฉฐ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ๊ฐ์ฒด๋Š” ์ž์‹ ์ด ๋งก์€ ์ฑ…์ž„์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค๋ฅธ ๊ฐ์ฒด์™€ ํ˜‘๋ ฅํ•œ๋‹ค. ๊ฐ ๊ฐ์ฒด๋Š” ํ˜‘๋ ฅ ๋‚ด์—์„œ ์ •ํ•ด์ง„ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ ์—ญํ• ์€ ๊ด€๋ จ๋œ ์ฑ…์ž„์˜ ์ง‘ํ•ฉ์ด๋‹ค. ๊ฐ์ฒด๋Š” ๋‹ค๋ฅธ ๊ฐ์ฒด์™€ ํ˜‘๋ ฅํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•˜๊ณ , ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ•œ ๊ฐ์ฒด๋Š” ์ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ์ ํ•ฉํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์ž์œจ์ ์œผ๋กœ ์„ ํƒํ•œ๋‹ค. -> ์กฐ์˜ํ˜ธ๋‹˜์˜ ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์‚ฌ์‹ค๊ณผ ์˜คํ•ด ์ธ์šฉ ํด๋ž˜์Šค๋ž€? ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์„ค๊ณ„๋„(๊ตฌํ˜„ ๋ฉ”์ปค๋‹ˆ์ฆ˜) ํด๋ž˜์Šค๋Š” [ํ•„๋“œ, ์ƒ์„ฑ์ž, ๋ฉ”์„œ๋“œ]๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. ์ธ์Šคํ„ด์Šค ์„ค๊ณ„๋„์— ๋”ฐ๋ผ ๋ฉ”๋ชจ๋ฆฌ์ƒ์— ์‹ค์ฒดํ™”๋œ ๊ฐ์ฒด ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด Variable๋กœ ์ƒ์ง•๋˜๋Š” ๋ฐ์ดํ„ฐ..
[JAVA] primitive type๊ณผ reference type ์ฐจ์ด primitive type๊ณผ reference type ์ฐจ์ด ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ ํƒ€์ž…์€ ๋ฉ”๋ชจ๋ฆฌ์— ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ์žˆ๊ณ , ๋ ˆํผ๋Ÿฐ์Šค ํƒ€์ž…์€ ๊ฐ์ฒด๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์ฃผ์†Œ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๋‹ค. ๊ธฐ๋ณธ ์ž๋ฃŒํ˜• -> byte, short, int, long (๋Ÿฐํƒ€์ž„ ์Šคํƒ ์˜์—ญ) ๊ฐ์ฒด -> String, Class, Interface, Array ๋“ฑ (๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ ํž™ ์˜์—ญ) ๋ ˆํผ๋Ÿฐ์Šค ํƒ€์ž…์€ ์‹ค์ œ ๊ฐ์ฒด์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ธฐ ๋•Œ๋ฌธ์— `๋ณต์‚ฌ` ์‹œ์— ํ•ญ์ƒ ์œ ์˜ํ•ด์•ผ ํ•œ๋‹ค. Wrapper Class (๊ฐ์ฒด) int์™€ Inteager๊ฐ€ ๋‘˜๋‹ค ์กด์žฌํ•˜๋Š” ์ด์œ ๋ฅผ ๋“œ๋””์–ด ์•Œ๊ฒŒ๋˜์—ˆ๋‹ค. ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ ํƒ€์ž…์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ์ฒด๋กœ ๋งŒ๋“ค์–ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“  ๊ธฐ๋Šฅ ๋‘ ํƒ€์ž…๊ฐ„ ๋ณ€ํ™˜์„ `Boxing` ๊ณผ `Unboxing`์ด๋ผ๊ณ  ํ•œ๋‹ค. Wrap..

๋ฐ˜์‘ํ˜•