๐ญ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.. ์ด์ 1 2 ๋ค์