๋ชฉ๋กKITRI/JAVA (35)

๐Ÿ’ป

Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ์ƒ์„ฑ์ž ์ค‘๋ณต(Overloading), ๋‹ค๋ฅธ ์ƒ์„ฑ์ž ํ˜ธ์ถœ(this()), ์ง€์ •์˜ˆ์•ฝ์–ด(static/ final/ static final)

์ƒ์„ฑ์ž ์ค‘๋ณต : ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋‹ฌ๋ฆฌํ•˜๋Š” ์ƒ์„ฑ์ž๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ์„ ์–ธํ•˜๋Š” ๊ฒƒ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ํƒ€์ž…๊ณผ ๊ฐœ์ˆ˜ ๊ทธ๋ฆฌ๊ณ  ์„ ์–ธ๋œ ์ˆœ์„œ๊ฐ€ ๋˜‘๊ฐ™์„ ๊ฒฝ์šฐ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ด๋ฆ„๋งŒ ๋ฐ”๊พผ๋Š” ๊ฒƒ์€ ์ƒ์„ฑ์ž ์˜ค๋ฒ„๋กœ๋”ฉ์ด ์•„๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ƒ์„ฑ์ž ํ˜ธ์ถœ(this()) : ์ƒ์„ฑ์ž์—์„œ ๋‹ค๋ฅธ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ• ๋•Œ๋Š” this() ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์ƒ์„ฑ์ž ์˜ค๋ฒ„๋กœ๋”ฉ์ด ๋งŽ์•„์งˆ ๊ฒฝ์šฐ ์ƒ์„ฑ์ž ๊ฐ„์˜ ์ค‘๋ณต๋œ ์ฝ”๋“œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ์ˆ˜๋งŒ ๋‹ฌ๋ฆฌํ•˜๊ณ  ํ•„๋“œ ์ดˆ๊ธฐํ™” ๋‚ด์šฉ์ด ๋น„์Šทํ•œ ์ƒ์„ฑ์ž์—์„œ ์ด๋Ÿฌํ•œ ํ˜„์ƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ด ๊ฒฝ์šฐ์—๋Š” ํ•„๋“œ ์ดˆ๊ธฐํ™” ๋‚ด์šฉ์€ ํ•œ ์ƒ์„ฑ์ž์—๋งŒ ์ง‘์ค‘์ ์œผ๋กœ ์ž‘์„ฑํ•˜๊ณ  ๋‚˜๋จธ์ง€ ์ƒ์„ฑ์ž๋Š” ์ดˆ๊ธฐํ™” ๋‚ด์šฉ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ค‘๋ณต ์ฝ”๋“œ๋ฅผ ์ตœ์†Œํ™”ํ•œ๋‹ค. ์กฐ๊ฑด 1) ๋ฐ˜๋“œ์‹œ ์ƒ์„ฑ์ž์˜ ์ฒซ ์ค„์—์„œ๋งŒ ํ—ˆ์šฉ๋œ๋‹ค. 2) ์ƒ์„ฑ์ž์˜ ์ด๋ฆ„์œผ๋กœ ํด๋ž˜์Šค์ด๋ฆ„ ๋Œ€์‹ ..

KITRI/JAVA 2020. 5. 6. 16:33
Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ํ•จ์ˆ˜ ์ค‘๋ณต(์˜ค๋ฒ„๋กœ๋”ฉ Overloading), ๊ฐ์ฒด ๋ฐฐ์—ด

์ƒ์„ฑ์ž์™€ ํ•จ์ˆ˜์™€์˜ ์ฐจ์ด์  - ์ƒ์„ฑ์ž๋Š” ๋ฆฌํ„ดํƒ€์ž…์ด ์—†๊ณ  ํด๋ž˜์Šค ์ด๋ฆ„๊ณผ ๋™์ผํ•˜๋‹ค. - ํ•จ์ˆ˜์ด๋ฆ„์€ ๊ฐ™์ง€ ์•Š์•„๋„ ์ƒ๊ด€์—†๋‹ค. (์‹ค๋ฌด์—์„œ๋Š” ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋น„์Šทํ•œ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ํ•จ์ˆ˜๋Š” ์ด๋ฆ„์„ ๊ฐ™๊ฒŒ ํ•ด์ค€๋‹ค. ) ํ•จ์ˆ˜์ค‘๋ณต - Overload / Overloading ์กฐ๊ฑด 1) ํ•จ์ˆ˜๋ช…์€ ๊ฐ™์ง€๋งŒ 2) ํŒŒ๋ผ๋ฏธํ„ฐ(๋งค๊ฐœ๋ณ€์ˆ˜)์˜ ํƒ€์ž…์ด๋‚˜ ๊ฐœ์ˆ˜๊ฐ€ ๋‹ฌ๋ผ์•ผ ํ•œ๋‹ค. ๊ฐ์ฒด ๋ฐฐ์—ด : ๋งŽ์€ ์ˆ˜์˜ ๊ฐ์ฒด๋ฅผ ๋‹ค๋ค„์•ผํ•  ๋•Œ, ๋ฐฐ์—ด๋กœ ๋‹ค๋ฃจ๋ฉด ํŽธ๋ฆฌํ•  ๊ฒƒ์ด๋‹ค. ๊ฐ์ฒด ์—ญ์‹œ ๋ฐฐ์—ด๋กœ ๋‹ค๋ฃจ๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ์ด๋ฅผ '๊ฐ์ฒด ๋ฐฐ์—ด' ์ด๋ผ๊ณ  ํ•œ๋‹ค. ๊ฐ์ฒด ๋ฐฐ์—ด์€ ์ฐธ์กฐ๋ณ€์ˆ˜๋“ค์„ ํ•˜๋‚˜๋กœ ๋ฌถ์€ ์ฐธ์กฐ ๋ณ€์ˆ˜ ๋ฐฐ์—ด์ด๋‹ค.

KITRI/JAVA 2020. 5. 6. 10:34
Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ์ ‘๊ทผ์ œํ•œ์ž(public, private) / ์ƒ์„ฑ์ž

ํด๋ž˜์Šค์˜ 3๋Œ€ ํŠน์ง• ์€๋‹‰ํ™” ํ•จ์ˆ˜์ค‘๋ณต ์ƒ์†์„ฑ private ๋Š” ๋‚ด ์†Œ์Šค ๋ฐ–์—์„œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. ํ•จ์ˆ˜๋Š” private๋ฅผ ์“ฐ์ง€ ์•Š๋Š”๋‹ค. ๋Œ€๋ถ€๋ถ„ public์œผ๋กœ ์„ ์–ธํ•ด ์‚ฌ์šฉํ•œ๋‹ค. ๋ณ€์ˆ˜๋Š” private ๋กœ ์„ ์–ธํ•ด๋„ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด์„œ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ทธ๋ž˜์„œ ๋ณ€์ˆ˜๋Š” private๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๋Š” 1๊ฐœ์˜ ์ž๋ฐ” ํŒŒ์ผ๋กœ ์ž‘์„ฑํ•˜์ง€๋งŒ, ์—ฌ๊ธฐ์„œ๋Š” ์„ค๋ช…์„ ํŽธํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ํ•˜๋‚˜์˜ ํŒŒ์ผ์— ์ž‘์„ฑํ•ด์„œ ์‚ฌ์šฉํ•˜๊ฒ ๋‹ค. ํ•˜๋‚˜์˜ ์ž๋ฐ” ํŒŒ์ผ์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ•  ๋•Œ๋Š” ํ•œ ๊ฐœ์˜ ๋ฉ”์ธํด๋ž˜์Šค๋งŒ public์œผ๋กœ ํ•˜๊ณ , ๋‚˜๋จธ์ง€๋Š” public์„ ์–ธ์„ ๋นผ์ค˜์•ผํ•œ๋‹ค. ์ƒ์„ฑ์ž์—์„œ ๋‹ค๋ฅธ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด this() ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. this๋Š” ์ƒ๋žต์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ทธ๋ ‡์ง€๋งŒ ์ด ๊ฒฝ์šฐ์—๋Š” ๋ฉค๋ฒ„๋ณ€์ˆ˜์™€ ์ง€์—ญ๋ณ€์ˆ˜๊ฐ€ ๋™์ผํ•œ ๋ณ€์ˆ˜๋ช…์ด๊ธฐ ๋•Œ..

KITRI/JAVA 2020. 4. 29. 16:17
Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ํด๋ž˜์Šค(Class)

๊ฐ์ฒด์ง€ํ–ฅ์–ธ์–ด ๊ฐ์ฒด์ง€ํ–ฅ์ด๋ก ์˜ ๊ธฐ๋ณธ ๊ฐœ๋…์€ '์‹ค์ œ ์„ธ๊ณ„๋Š” ์‚ฌ๋ฌผ(๊ฐ์ฒด)๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ๋ฐœ์ƒํ•˜๋Š” ๋ชจ๋“  ์‚ฌ๊ฑด๋“ค์€ ์‚ฌ๋ฌผ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์ด๋‹ค.' ๋ผ๋Š” ๊ฒƒ์ด๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ์ด๋ก ์€ ์ƒ์†, ์บก์Šํ™”, ์ถ”์ƒํ™” ๊ฐœ๋…์„ ์ค‘์‹ฌ์œผ๋กœ ์ ์ฐจ ๊ตฌ์ฒด์ ์œผ๋กœ ๋ฐœ์ „๋˜์—ˆ๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ์–ธ์–ด์˜ ๊ฐ€์žฅ ํฐ ์žฅ์ ์€ ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์ด ๋†’๊ณ  ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์šฉ์ดํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ฐ์ฒด : ๊ฐ์ฒด๋ž€? '์‹ค์ œ๋กœ ์กด์žฌํ•˜๋Š” ๊ฒƒ. ์‚ฌ๋ฌผ ๋˜๋Š” ๊ฐœ๋…' ์ด๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ์ด๋ก ์—์„œ ๊ฐ์ฒด๋Š” ์œ ๋ฌดํ˜• ๋‹ค ๊ฐ€๋Šฅํ•˜๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ์˜ ๊ฐ์ฒด๋Š” ํด๋ž˜์Šค์— ์ •์˜๋œ ๋‚ด์šฉ๋Œ€๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์„ฑ๋œ ๊ฒƒ์„ ๋œปํ•œ๋‹ค. - ๊ฐ์ฒด์˜ ๊ตฌ์„ฑ์š”์†Œ (์†์„ฑ๊ณผ ๊ธฐ๋Šฅ) : ๊ฐ์ฒด๋Š” ์†์„ฑ๊ณผ ๊ธฐ๋Šฅ์ด๋ผ๋Š” ๋‘ ์ข…๋ฅ˜์˜ ๊ตฌ์„ฑ์š”์†Œ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ์†์„ฑ(Property) - ๋ฉค๋ฒ„๋ณ€์ˆ˜(member variable), ํŠน์„ฑ(attribute), ํ•„๋“œ(fie..

KITRI/JAVA 2020. 4. 29. 10:25
Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ๋ฐฐ์—ด(Array)

๋ฐฐ์—ด ๋ณ€์ˆ˜๋Š” ํ•œ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋งŒ ์ €์žฅํ•˜์ง€๋งŒ, ๋ฐฐ์—ด์€ ๊ฐ™์€ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ์†๋œ ๊ณต๊ฐ„์— ์ €์žฅํ•˜๋ฏ€๋กœ ์†๋„๋ฉด์—์„œ ์ข‹๋‹ค. ๊ฐ ๋ฐ์ดํ„ฐ๋Š” ์ธ๋ฑ์Šค๋ฅผ ๋ถ€์—ฌํ•œ๋‹ค. ๋ฐฐ์—ด์€ ์ƒ์„ฑ ์‹œ 0์œผ๋กœ ์ดˆ๊ธฐํ™”๋œ๋‹ค. b๋Š” array์˜ ์ฃผ์†Œ๊ฐ’์„ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค. ์ด๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ ˆ์•ฝ ํ•˜๊ฒŒ ๋œ๋‹ค. ( ๋งŒ์•ฝ, ์ฃผ์†Œ๊ฐ’์„ ์ฐธ์กฐํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•ด์„œ array 20byte + b 20btye = 40byte ๊ฐ€ ํ•„์š”ํ•˜๊ฒŒ ๋˜์ง€๋งŒ b๊ฐ€ ์ฃผ์†Œ๊ฐ’์„ ๊ฐ€์ง€๋ฉด array 20 byte + b 1byte = 21btye) ์ฃผ์†Œ๊ฐ’์„ ๊ฐ€์ง€๊ณ  heap์˜์—ญ์—์„œ ํ•ด๋‹น ์ฃผ์†Œ๊ฐ’์„ ์ฐพ์•„๊ฐ€์„œ ๊ฐ’์„ ๊ฐ€์ ธ์˜จ๋‹ค. C๋‚˜ C++์€ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์ด ์—†๊ธฐ๋•Œ๋ฌธ์—, ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ ํ•ด์ค˜์•ผํ•œ๋‹ค. ์ด๋•Œ, ๋งŒ์•ฝ ์ฐธ์กฐํ•˜๋˜ ๋ฐฐ์—ด์ด ์žˆ๋Š”๋ฐ ์‹ค์ˆ˜๋กœ ๋ฉ”๋ชจ๋ฆฌํ•ด์ œ ํ•ด๋ฒ„๋ฆฐ ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค..

KITRI/JAVA 2020. 4. 28. 16:28
Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ์ œ์–ด๋ฌธ(์กฐ๊ฑด๋ฌธ if๋ฌธ, switch๋ฌธ / ๋ฐ˜๋ณต๋ฌธ for๋ฌธ, while๋ฌธ)

์ œ์–ด๋ฌธ ์กฐ๊ฑด๋ฌธ(if, if-else, if-else if, switch~case) if๋ฌธ switch๋ฌธ if๋ฌธ์€ ์กฐ๊ฑด์„ ์ฒดํฌํ•˜๊ณ  ์ˆ˜ํ–‰ํ•˜๊ณ  ๋น ์ ธ๋‚˜์˜ค๋Š” ํ•œํŽธ, switch๋ฌธ์€ ํ•ด๋‹น ์ผ€์ด์Šค๋ฌธ ์ดํ›„๋กœ ์‹คํ–‰์ด ๋œ๋‹ค. ์ฆ‰, break ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋น ์ ธ๋‚˜์™€์•ผํ•œ๋‹ค. ๋ฐ˜๋ณต๋ฌธ for๋ฌธ, while๋ฌธ) for๋ฌธ ๋ ˆ์ฝ”๋“œ ๋‹จ์œ„๋กœ ์ฝ์–ด์˜ฌ๋•Œ๋Š” ์ž๋ฐ”์—์„œ๋Š” for๋ฌธ๋ณด๋‹ค while๋ฌธ์„ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค. for๋ฌธ์€ ์ˆ˜์น˜๋ฐ˜๋ณต, while๋ฌธ์€ ํ–‰์œ„๋ฐ˜๋ณต(ํ–‰์ด๋‚˜ ๋ ˆ์ฝ”๋“œ๋‹จ์œ„) [๊ธฐํƒ€] ๋ฐฐ์—ด์€ ์ถ”๊ฐ€, ์‚ญ์ œ๊ฐ€ ์•ˆ๋œ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ์ด๋ฅผ ๋ณด์™„ํ•œ ๊ฒƒ์ด ArrayList. ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด์˜ ๋ฐ์ดํ„ฐ ๋‹จ์œ„๋Š” ๋ ˆ์ฝ”๋“œ(ํ•˜๋‚˜์˜ ํ–‰). C๋Š” ์ •์ˆ˜ํ˜•, ์‹ค์ˆ˜ํ˜•. ๋ ˆ์ฝ”๋“œ ๊ธฐ๋ฐ˜์˜ ์–ธ์–ด๋“ค์€ for๋ฌธ์ด๋‚˜ while๋ฌธ์„ ์ž˜ ์“ฐ์ง€ ์•Š๋Š”๋‹ค. while ๋ฌธ do while ๋ฌธ do w..

KITRI/JAVA 2020. 4. 28. 09:36