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

์ „์ฒด ๊ธ€50

[JAVA] ์ž๋ฐ” ๋ฐฐ์—ด ๐ŸŽน ์ž๋ฐ”์˜ ๋ฐฐ์—ด ์ž๋ฐ”์˜ ๋ฐฐ์—ด์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ™์€ ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐํƒ€์ž…์„ ๋ฌถ์–ด์„œ ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค. ์ œ์•ฝ ์กฐ๊ฑด์ด ๊ฐ™์€ ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ๋งŒ ๋ฌถ์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์—ฌ๋Ÿฌ ๋ณ€์ˆ˜๋ฅผ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด ํ•˜๋‚˜์˜ ์ด๋ฆ„์œผ๋กœ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๊ฒŒ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์—ฐ์†๋œ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜๋Š” ๊ตฌ์กฐ์ด๋‹ค. ๋ฐฐ์—ด๋ช…์—๋Š” ์ „์ฒด ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๋‹ค๋ฃจ๊ธฐ ์–ด๋ ค์šฐ๋‹ˆ ์‹œ์ž‘์ฃผ์†Œ๋งŒ ์ €์žฅํ•ด ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค. 1. ์ •์  ๋ฐฐ์—ด: ์‹คํ–‰ ๋„์ค‘ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ๋ณ€ํ™”์‹œํ‚ฌ ์ˆ˜ ์—†๋‹ค. (์‚ฌ์šฉ์ž ์ž…์žฅ์—์„œ ๋ถˆํŽธํ•œ ๊ฒƒ 1) ๋ฐฐ์—ด์˜ ๊ฐ’์„ ๋ฏธ๋ฆฌ ์•Œ ๋•Œ 2) ๋ฐฐ์—ด์˜ ๊ฐ’์ด ๋ฏธ์ •์ผ ๋•Œ: ์‹คํ–‰ ์‹œ ๊ฒฐ์ •๋˜๋Š” ๊ฒฝ์šฐ ๐ŸŽฏ ์„ ์–ธ๊ณผ ๋™์‹œ์— ๊ฐ’์„ ์ดˆ๊ธฐํ™”ํ•ด ์ƒ์„ฑ ๐ŸŽฏ New ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•ด ์ƒ์„ฑ 2. ๋™์  ๋ฐฐ์—ด: ์‹คํ–‰ ๋„์ค‘ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ๋ณ€ํ™”์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. (์‹œ์Šคํ…œ ์ž…์žฅ์—์„œ ๋ถˆํŽธํ•œ ๊ฒƒ) ๐ŸŽฏ Collection Framework์—์„œ.. 2023. 12. 16.
[JAVA] ํ˜• ๋ณ€ํ™˜ ๐ŸŽŠ ๊ธฐ๋ณธํ˜•์˜ ํ˜• ๋ณ€ํ™˜ boolean์„ ์ œ์™ธํ•œ ๊ธฐ๋ณธํ˜• ๋ณ€์ˆ˜์˜ ํƒ€์ž…์„ ์ž์œ ๋กญ๊ฒŒ ํ˜• ๋ณ€ํ™˜ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๐ŸŽŠ ์ฐธ์กฐํ˜•์˜ ํ˜• ๋ณ€ํ™˜ ์„œ๋กœ ๋‹ค๋ฅธ ํด๋ž˜์Šค๊ฐ€ ํ˜ธํ™˜์ด ๊ฐ€๋Šฅํ•œ๊ฐ€? Student student = new Member(); // ??? ๊ฐ€๋Šฅํ•œ๊ฐ€? student.sname; // X ์‚ฌ์šฉ ๋ถˆ๊ฐ€ ์›์น™์ ์œผ๋กœ (์˜ˆ์™ธ์žˆ์Œ) ์ฐธ์กฐํ˜•๋ผ๋ฆฌ์˜ ํ˜• ๋ณ€ํ™˜ ์•ˆ๋œ๋‹ค. ๊ตฌ์„ฑ์š”์†Œ๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํ•˜์ง€๋งŒ ์ƒ์† ๊ด€๊ณ„์˜ ํด๋ž˜์Šค(์ฐธ์กฐํ˜•) ๊ฐ„์— ํ˜• ๋ณ€ํ™˜์„ ์ง€์›ํ•œ๋‹ค. ์Šˆํผํด๋ž˜์Šค์˜ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ๋ชจ๋‘ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์—…์บ์ŠคํŒ…์— ํ•œํ•ด์„œ ํ˜•๋ณ€ํ™˜์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ณ„๋„์˜ ๋ช…๋ น์–ด ์—†์ด ์•”๋ฌต์ (์ž๋™)์œผ๋กœ ์ง€์›์ด ๋œ๋‹ค. Duck dk = (Duck) new RedDuck(); ์—…์บ์ŠคํŒ…์ด ๋ฐœ์ƒํ•˜๋ฉด, ์„œ๋ธŒํด๋ž˜์Šค์—์„œ ํ™•์žฅํ•œ ๋ณ€์ˆ˜, ๋ฉ”์†Œ๋“œ ๋“ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. ํ•˜.. 2023. 12. 16.
[JAVA] ์ž๋ฐ”์™€ GUI ๐Ÿšจ ์ž๋ฐ”๋Š” ํšจ์œจ์„ฑ ๋ฌธ์ œ๋กœ ๊ทธ๋ž˜ํ”ฝ์„ ๋‹ค๋ฃจ์ง€ ์•Š์ง€๋งŒ ํ•™์Šต์šฉ์œผ๋กœ ์ž๋ฐ”๋กœ GUI๋ฅผ ๊ฐ„๋‹จํžˆ ํ•™์Šตํ•ด๋ณด๋ ค ํ•œ๋‹ค. ๐ŸŽจ GUI (Graphical User Interface) ๊ทธ๋ž˜ํ”ฝ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค ์ž๋ฐ”๋Š” ์ง์ ‘์ ์œผ๋กœ GUI๊ธฐ๋ฐ˜ ๋ชจ๋“ˆ์„ ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•ด ๋žฉํ•‘ (ํฌ์žฅ)ํ•ด JVM์„ ๊ฑฐ์ณ์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ๋‹ค๋งŒ ๊ฑฐ์ณ์„œ ๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค. ๊ทธ๋ž˜์„œ ๋ณดํ†ต ์ž๋ฐ”์—์„œ GUI๋ฅผ ๋‹ค๋ฃจ์ง€ ์•Š๋Š”๋‹ค. ๋”๋ณด๊ธฐ ํ•˜๋“œ์›จ์–ด ์ถœ๋ ฅ์žฅ์น˜์ธ ๋ชจ๋‹ˆํ„ฐ๋ฅผ ์†Œํ”„ํŠธ์›จ์–ด๋กœ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด ๊ทธ๋ž˜ํ”ฝ๋‹จ์œ„๋กœ ์ถ”์ƒํ™”ํ•˜์—ฌ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•ด ๋ชจ๋‹ˆํ„ฐ๋ฅผ ์ œ์–ดํ•œ๋‹ค. ๐Ÿ”ง ์ธํ„ฐํŽ˜์ด์Šค: ๋‘ ๊ฐœ ์ด์ƒ์˜ ์‹œ์Šคํ…œ, ์žฅ์น˜, ํ”„๋กœ๊ทธ๋žจ ๊ฐ„์— ์ƒํ˜ธ ์ž‘์šฉํ•˜๊ณ  ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒฝ๊ณ„๋‚˜ ๋งค๊ฐœ์ฒด GUI๋Š” ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฌดํ•œ๋ฃจํ”„์— ๋น ์ ธ ๋ฌดํ•œ ๋Œ€๊ธฐ ์ƒํƒœ์— ๋น ์ง€.. 2023. 12. 16.
[JAVA] ์ž๋ฐ”์˜ ์ƒ์†๊ณผ ์ถ”์ƒ ๋ฉ”์†Œ๋“œ ๐ŸŽฑ ์ž๋ฐ” ์ƒ์† ์„œ๋ธŒํด๋ž˜์Šค(sub class, ์ž์‹)๋Š” ์Šˆํผํด๋ž˜์Šค(super class, ๋ถ€๋ชจ)๋ฅผ ์„ ํƒํ•ด, ์Šˆํผํด๋ž˜์Šค์˜ ๋ชจ๋“  ๊ฒƒ์„ ์ƒ์†๋ฐ›์•„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ๋‹จ private์˜ ๊ฒฝ์šฐ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. ์„œ๋ธŒ ํด๋ž˜์Šค ์˜†์— extends ํ‚ค์›Œ๋“œ์™€ ํ•จ๊ป˜ ์Šˆํผํด๋ž˜์Šค๋ช…์„ ์ž‘์„ฑํ•˜๋ฉด ๋œ๋‹ค. ํ•˜๋‚˜๋งŒ ๊ฐ€๋Šฅ(๋‹จ์ผ ์ƒ์†)ํ•˜๋ฉฐ, ์Šˆํผํด๋ž˜์Šค์˜ ๊ธฐ๋Šฅ์— ๋”ํ•ด ๋” ๋งŽ์€ ๊ธฐ๋Šฅ์„ ๊ฐ–๋„๋ก ์„œ๋ธŒํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ•œ๋‹ค. ๋ณ€์ˆ˜๋Š” private๋กœ ์„ ์–ธํ•˜๊ณ  getter-setter๋กœ ์ œ์–ดํ•˜๋Š” ๊ฒƒ์ด ์ข‹์ง€๋งŒ ์˜ˆ์‹œ๋Š” protected๋กœ ์„ ์–ธํ•ด ๊ณต์œ ํ•˜๋„๋ก ํ•˜์˜€๋‹ค. ๋”๋ณด๊ธฐ โœจ ์„œ๋ธŒํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž๋Š” ์ž๋™์œผ๋กœ super();์„ ์‹คํ–‰ํ•ด ์Šˆํผ ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž๋ฅผ ์ž๋™์œผ๋กœ ๋ถ€๋ฅด๊ฒŒ ๋œ๋‹ค. โœจ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๊ฐ€ ์•„๋‹Œ ์ธ์ˆ˜๊ฐ€ ์žˆ๋Š” ์ƒ์„ฑ์ž๋ฅผ ๋ถ€๋ฅผ ๋•Œ๋Š” super(10,20); .. 2023. 12. 15.
[JAVA] ์ž๋ฐ” ๋ณ€์ˆ˜ ๐ŸŽ„ ๋ณ€์ˆ˜ 1) ํด๋ž˜์Šค ๋ณ€์ˆ˜ static ๋ณ€์ˆ˜ ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ณตํ†ต๋œ ๊ฐ’์„ ๊ณต์œ ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 2) ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ ํด๋ž˜์Šค ๋‚ด์— ์„ ์–ธ๋œ ๋ณ€์ˆ˜ 3) ์ง€์—ญ๋ณ€์ˆ˜(๋งค๊ฐœ๋ณ€์ˆ˜) ๋ฉ”์†Œ๋“œ ๋‚ด์— ์„ ์–ธ๋œ ๋ณ€์ˆ˜ public class test { int a; // ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ static int b; // ํด๋ž˜์Šค ๋ณ€์ˆ˜ void print() { int c; // ์ง€์—ญ ๋ณ€์ˆ˜ } } ๐ŸŽน ์ ‘๊ทผ ์ œ์–ด์ž private, protect, public ๐ŸŽน ๊ธฐํƒ€ ์ œ์–ด์ž ๐ŸŽต Static Object์—์„œ ๊ณต์œ ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ํด๋ž˜์Šค ์†Œ์† ๋ณ€์ˆ˜์ด๋‹ค. ๊ฐ์ฒด ์ƒ์„ฑ ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์‚ฌ์šฉํ•  ๋•Œ๋Š” ํด๋ž˜์Šค๋ช….๋ณ€์ˆ˜๋ช…์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ช…ํ™•ํ•œ ์‚ฌ์šฉ๋ฒ•์ด๋‹ค. ๋”๋ณด๊ธฐ public class Student { public static int countNum.. 2023. 12. 14.
[JAVA] ํด๋ž˜์Šค์™€ ๋ฉ”๋ชจ๋ฆฌ ๐ŸŽ„ ํด๋ž˜์Šค์™€ ์ธ์Šคํ„ด์Šค ๋ฉ”๋ชจ๋ฆฌ ๊ด€๊ณ„ Stack: ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ํ• ๋‹น Heap: ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์˜ ์‹ค์ œ ๋ณ€์ˆ˜ ๊ฐ’๊ณผ ํ•จ์ˆ˜์˜ ์ฃผ์†Œ ๊ฐ’ Code: ํด๋ž˜์Šค ์ด ์ฝ”๋“œ, Heap์—์„œ ์ด๊ณณ์˜ ํ•จ์ˆ˜์ฝ”๋“œ๋ฅผ ํ˜ธ์ถœํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค. ๋”๋ณด๊ธฐ โœจ ์ฐธ์กฐํ˜•(์ฃผ์†Œ) Class๋ฅผ ์˜๋ฏธ(ํ•˜๋‚˜๋ฐ–์— ์—†์Œ)ํ•œ๋‹ค. ์‚ฌ์šฉ์ž ์ •์˜, ์ฆ‰ ์‚ฌ์šฉ์ž type = style, ๋”ฐ๋ผ์„œ Heap์— ์ €์žฅ๋˜๊ฒŒ ๋œ๋‹ค. โœจ ์‹œ์Šคํ…œ์˜ ๊ด€์ ์—์„œ ํด๋ž˜์Šค๋Š” ๊ฐ™์€ ํด๋ž˜์Šค๋กœ๋ถ€ํ„ฐ ์ƒ์„ฑ์‹œํ‚จ ์ธ์Šคํ„ด์Šค ๊ฐ„์— ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ์ž‘์„ฑ๋œ ์„ ์–ธ๋ฌธ์ด๋‹ค. ๐ŸŽ„ ๋ฉ”๋ชจ๋ฆฌ 1) Stack ์Šคํƒ ์ง€์—ญ๋ณ€์ˆ˜, ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ธ”๋ก(์Šค์ฝ”ํ”„) ๋ฒ—์–ด๋‚˜๋ฉด ์†Œ๋ฉธ, Heap๋ณด๋‹ค ๋น ๋ฅด๋‹ค. 2) Heap ํž™ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ง์ ‘ ๊ด€๋ฆฌ(ํ• ๋‹น/ํ•ด์ œ)ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋™์  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น(new/ํฌ์ธํ„ฐ), ์ž๋ฐ”์—์„œ๋Š” ์‚ญ์ œ๋ฅผ ์•Œ.. 2023. 12. 13.
728x90