Note for moment16 [Java] ์์ธ(Exception)์ ์๋ฌ(Error), ์์ธ์ฒ๋ฆฌ, ์์ธํด๋์ค์์ฑ ๋ฐ ์ฐธ์กฐ * ์์ธ(exception) : ๋ฌธ๋ฒ์ ์ผ๋ก ์๋ชป๋ ๊ฒ์ด ์๋๋ผ, ํ๋ก๊ทธ๋จ ์คํ์ ์๋ชป๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ ์ํฌ์ ์๋ค๋ ๊ฒ - ์๋ฌ : ํ๋ก๊ทธ๋จ ์์ฒด์ ์ค๋ฅ - ์์ธ : ํ๋ก๊ทธ๋จ ์คํ์ ๋ฐ์ํ ์ ์๋ ์ค๋ฅ : ์์ธ๊ฐ ๋ฐ์๋ ์ ์๋ ๋ช ๋ น์ ๋ํด ์์ธ์ฒ๋ฆฌ๋ฅผ ํ๋๊ฒ์ด ํ์! - ์ฌ๊ฐํ ํ๋ก๊ทธ๋จ ์์ธ์ธ ๊ฒฝ์ฐ "์๋ฌ"๋ก ํ๊ธฐ : ํ๋ก๊ทธ๋จ ์คํ ๋ถ๊ฐ - ๊ฐ๋ฒผ์ด ํ๋ก๊ทธ๋จ ์์ธ์ธ ๊ฒฝ์ฐ "์์ธ"๋ก ํ๊ธฐ : ํ๋ก๊ทธ๋จ ์คํ ๊ฐ๋ฅ, JVM์ ์ํด ์๋์ ์ผ๋ก ์์ธ์ฒ๋ฆฌ * ์์ธ์ฒ๋ฆฌ : ํ๋ก๊ทธ๋จ ์ฌ์ฉ์์๊ฒ ๋ฉ์ธ์ง๋ฅผ ์ ๊ณต or ๊ฐ๋ฐ์์๊ฒ ์๋ฌ๋ก๊ทธ๋ฅผ ์ ๊ณต : try - catch๋ฌธ ํ์ฉ * ์์ธ์ฒ๋ฆฌ์ ๊ฐ : ์์ธ์ฒ๋ฆฌ๋ฅผ ์์ธ๊ฐ ๋ฐ์ํ ํด๋น ํด๋์ค๋ ๋ฉ์๋์์ ๋น์ฅ ์ฒ๋ฆฌํ์ง ์์ : ์ผ์ข ์ ์ฑ ์์ ๊ฐ๋ก ๋์ค์ ์ผ๊ด์ฒ๋ฆฌ ๊ฐ๋ฅ : throws ๋ฐ.. 2020. 9. 3. [OOP] ์ถ์ํด๋์ค์ ์ธํฐํ์ด์ค, ๋์ดํ(Enum) 1. ์ถ์ํด๋์ค (abstract class) : ์์ ์ ์ฉ ํด๋์ค → public abstract class ํด๋์ค๋ช { } : ์์์ ๋ชฉ์ ์ผ๋ก ํ์ฌ ๋ง๋ค์ด์ง ํด๋์ค๋ก ์ง์ ์ ์ธ ์ธ์คํด์ค ์์ฑ ๋ถ๊ฐ๋ฅ : ์ถ์ ํด๋์ค์ ๋ฉ์๋๋ ๋ช ๋ น์ด ์กด์ฌํ์ง ์๋(๋น์ด์๋) ๋ฉ์๋๋ก ๋ฏธ์์ฑ ๋ ๋ฉ์๋ → ์ฆ, ์ค๋ฒ๋ผ์ด๋๋ฅผ ๊ฐ์ ํ๊ธฐ์ํ ๋ฉ์๋ (์์ ์ง์์ ์ญํ : ๊ฐ์ ์ ๊ท์น ์ ๊ณต) - ์์ํด๋์ค๋ ๋ฌด์กฐ๊ฑด ์ค๋ฒ๋ผ์ด๋ → ์ ์ธ : ์ ๊ทผ์ง์ ์ abstract ๋ฐํํ ๋ฉ์๋๋ช (ํ๋ผ๋ฏธํฐ) { }; : ์ถ์ํด๋์ค์ ๋ชจ๋ ๋ฉ์๋๊ฐ ์ถ์๋ฉ์๋์ธ๊ฒ์ ์๋๋ค! : ๋ค์ค์์ ๋ถ๊ฐ, ๋จ์ผ์์๋ง ๊ฐ๋ฅ # ์ถ์ํด๋์ค๊ฐ ํ์ํ ์ด์ ? 1) ๋จ์ํ ๊ณตํต์ ์ธ ์์ฑ์ ๋ฌถ์ด ์ฝ๋์ ์ค๋ณต์ ์ต์ํ, ์์์ ๋ชฉ์ ๋ง ์ง๋ ๊ฒฝ์ฐ → ๊ทธ๋ฌ๋ ์ด ๋ชฉ์ ์ธ ๊ฒฝ์ฐ ๊ผญ .. 2020. 9. 3. [OOP] ์ฑ๊ธํค ํด๋์ค(Singleton) * ์ฑ๊ธํค(Singleton) ํด๋์ค : ์ธ์คํด์ค๋ฅผ ๋ฑ ํ๋๋ง ๋ง๋ค์ด์ ์ ๊ณต > ๋ฐ๋ผ์ ์์ฑ์ ์๋ ํ์! (private) : ์ ์ ๋ธ๋ก์ ํตํด ์์ฑ > ์ ์ ๋ธ๋ก์ ํด๋์ค๊ฐ ๋ก๋ฉ๋ ํ ๋ฑ ํ๋ฒ๋ง ์คํ๋จ : ์ฑ๊ธํค ํด๋์ค์์ ํ๊ธฐํ๊ธฐ์ํด ์์คํ ํ๋๋ช ์์ ๊ผญ _๊ธฐํธ๋ฅผ ๋ถ์ธ๋ค. public class Singleton { // ์์คํ ํ๋๋ฅผ ์ ์ธ : private static ์ฌ์ฉ // => ์ด๋ ๋ณ์๋ช ์์ _๊ธฐํธ ํ๊ธฐ private static Singleton _instance; // ์ ์ ๋ธ๋ก : ํด๋์ค๊ฐ ๋ก๋ฉ๋๋ฉด ๋ฑ ํ๋ฒ๋ง ์คํ๋๋ ์์ญ // => ์ฌ๊ธฐ์ ์ธ์คํด์ค๋ฅผ ์์ฑํ์ฌ ์์คํ ํ๋์ ์ ์ฅ static { _instance = new Singleton(); } // ์์ฑ์ ์๋ํ private .. 2020. 9. 3. [Java] final, static (์ ์ ํ๋/์ ์ ๋ฉ์๋), main๋ฉ์๋์ static์ด ๋ถ๋ ์ด์ 1. final : ๋ฌด์์ธ๊ฐ ํ ์ ์๋ค. : public static final ์๋ฃํ ํ๋๋ช = ์ด๊ธฐ๊ฐ; → ์์ํ๋๋ก ์ ๋ ๋ณ๊ฒฝ์ด ๋ถ๊ฐ๋ฅํ๋ฏ๋ก ์ด๊ธฐ๊ฐ ์ค์ ํ์ : finalํ๋๋ช ์ ๋๋ฌธ์๋ก๋ง ํ๊ธฐ๊ฐ๋ฅ 2. static : ๋ ๋ฆฝ์ ์ธ ์์๋ก ๋ฑ ํ๋๋ง ์์ฑ๋์ด ๊ณต์ : ๊ณต์ ๊ฐ ๋ชฉ์ > ๋ฉ๋ชจ๋ฆฌ ์ ์ฝ, ํธ์ถ ์ฉ์ด 3. public static void main static ๋ฉ์๋๋ ๊ฐ์ฒด๋ฅผ ์์ฑํ ํ์๊ฐ ์๋ ๋ฉ์๋์ ๋ถ์ด๋ ํค์๋๋ก, ์ธ์คํด์ค๋ฅผ ์์ฑํ์ง ์์๋ static ๋ฉ์๋๋ ํธ์ถ ํ ์ ์๋ค. ์ฆ, ์ธ์คํด์ค ๋ณ์์ ์ ๊ทผํ ๋ชฉ์ ์ธ ๋ฉ์๋๊ฐ ์๋๋ผ๋ฉด static์ผ๋ก ์ ์ํด์ผํ๋ค๋ ๊ฒ์ด๋ค. main ๋ฉ์๋ ์ญ์ ์ธ์คํด์ค ์์ฑ๊ณผ ๊ด๊ณ์์ด JVM์ ์ํด ํธ์ถ๋๋ฏ๋ก ๋ฐ๋์ static์ผ๋ก ์ ์ธ๋์ผ ํ๋ค. 2020. 9. 3. ์ด์ 1 2 3 4 ๋ค์