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

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.