Search

Java ํด๋ž˜์Šค - this & this()

์˜์ƒ ์š”์•ฝ: Java ํด๋ž˜์Šค์—์„œ this & this() ์ดํ•ดํ•˜๊ธฐ

์ด ์˜์ƒ์€ Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์ž์ฃผ ์“ฐ์ด๋Š” ํ‚ค์›Œ๋“œ์ธย this์™€ **this()**์— ๋Œ€ํ•ด ์‰ฝ๊ณ  ์ž์„ธํ•˜๊ฒŒ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
this๋Š” 'ํ˜„์žฌ ๊ฐ์ฒด ์ž์‹ '์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ํ‚ค์›Œ๋“œ์ด๊ณ , **this()**๋Š” ์ƒ์„ฑ์ž ์•ˆ์—์„œ ๋‹ค๋ฅธ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์“ฐ๋Š” ํŠน๋ณ„ํ•œ ๋ฉ”์†Œ๋“œ์ž…๋‹ˆ๋‹ค.

๋ชฉ์ฐจ

1.
this ํ‚ค์›Œ๋“œ๋ž€? [00:00:01]
2.
this์˜ ํ•„์š”์„ฑ - ๋ณ€์ˆ˜ ์ด๋ฆ„ ์ถฉ๋Œ ํ•ด๊ฒฐ [00:00:57]
3.
์ƒ์„ฑ์ž์—์„œ this ์‚ฌ์šฉ ์˜ˆ์‹œ [00:02:18]
4.
this ์‚ฌ์šฉ ์‹œ ์ฃผ์˜์‚ฌํ•ญ๊ณผ ์ž๋™ ์ƒ์„ฑ ์ฝ”๋“œ [00:03:41]
5.
this() ๋ฉ”์†Œ๋“œ - ์ƒ์„ฑ์ž ๊ฐ„ ํ˜ธ์ถœํ•˜๊ธฐ [00:04:30]
6.
this()๋ฅผ ํ™œ์šฉํ•œ ์ฝ”๋“œ ๊ฐ„๊ฒฐํ™” ์˜ˆ์‹œ [00:05:37]
7.
๋งˆ๋ฌด๋ฆฌ ๋ฐ ํ…Œ์ŠคํŠธ [00:08:35]

this ํ‚ค์›Œ๋“œ๋ž€? [00:00:01]

โ€ข
this๋Š” ์˜์–ด๋กœ '์ด๊ฒƒ'์ด๋ผ๋Š” ๋œป์œผ๋กœ, ์ž๋ฐ”์—์„œย ํ˜„์žฌ ๊ฐ์ฒด ์ž์‹ ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ํ‚ค์›Œ๋“œ์ž…๋‹ˆ๋‹ค.
โ€ข
์˜ˆ๋ฅผ ๋“ค์–ด, ํด๋ž˜์Šค ์•ˆ์—์„œ ๋ณ€์ˆ˜๋‚˜ ๋ฉ”์†Œ๋“œ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ์„ ๋•Œ,ย this๋ฅผ ๋ถ™์ด๋ฉด '๋‚ด๊ฐ€ ์ง€๊ธˆ ๋งํ•˜๋Š” ๊ฑด ์ด ๊ฐ์ฒด์˜ ๋ณ€์ˆ˜๋‹ค!' ๋ผ๊ณ  ๋ช…ํ™•ํžˆ ์•Œ๋ ค์ฃผ๋Š” ์—ญํ• ์„ ํ•ด์š”.

this์˜ ํ•„์š”์„ฑ - ๋ณ€์ˆ˜ ์ด๋ฆ„ ์ถฉ๋Œ ํ•ด๊ฒฐ [00:00:57]

โ€ข
ํด๋ž˜์Šค ๋ฉค๋ฒ„ ๋ณ€์ˆ˜์™€ ๋ฉ”์†Œ๋“œ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ด๋ฆ„์ด ๊ฐ™์„ ๋•Œ ๋ˆ„๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€ ํ—ท๊ฐˆ๋ฆด ์ˆ˜ ์žˆ์–ด์š”.
โ€ข
์˜ˆ) ๋ฉค๋ฒ„ ๋ณ€์ˆ˜ย name๊ณผ ์ƒ์„ฑ์ž ๋งค๊ฐœ๋ณ€์ˆ˜ย name์ด ๊ฐ™์€ ๊ฒฝ์šฐ
โ€ข
์ด๋•Œย this.name์€ '๊ฐ์ฒด์˜ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜'๋ฅผ ์˜๋ฏธํ•˜๊ณ , ๊ทธ๋ƒฅย name์€ '๋งค๊ฐœ๋ณ€์ˆ˜'๋ฅผ ๋œปํ•ฉ๋‹ˆ๋‹ค.
โ€ข
๊ทธ๋ž˜์„œย this.name = name;ย ์€ '๋งค๊ฐœ๋ณ€์ˆ˜ name ๊ฐ’์„ ๊ฐ์ฒด ๋ฉค๋ฒ„ ๋ณ€์ˆ˜ name์— ๋„ฃ๊ฒ ๋‹ค'๋Š” ๋œป์ด์—์š”.

์ƒ์„ฑ์ž์—์„œ this ์‚ฌ์šฉ ์˜ˆ์‹œ [00:02:18]

โ€ข
์ƒ์„ฑ์ž์—์„œ ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜ ์ด๋ฆ„์ด ๊ฐ™์„ ๋•Œ, this๋ฅผ ๋ถ™์—ฌ์„œ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.
โ€ข
์˜ˆ์‹œ:
public Student(String name) { this.name = name; // this.name์€ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜, ์˜ค๋ฅธ์ชฝ name์€ ๋งค๊ฐœ๋ณ€์ˆ˜ }
Java
๋ณต์‚ฌ

this ์‚ฌ์šฉ ์‹œ ์ฃผ์˜์‚ฌํ•ญ๊ณผ ์ž๋™ ์ƒ์„ฑ ์ฝ”๋“œ [00:03:41]

โ€ข
์ดํด๋ฆฝ์Šค ๊ฐ™์€ IDE๋Š” ์ƒ์„ฑ์ž ์ž๋™ ์ƒ์„ฑ ์‹œย this๋ฅผ ์ž๋™์œผ๋กœ ๋ถ™์—ฌ์ค๋‹ˆ๋‹ค.
โ€ข
๋งŒ์•ฝ this๋ฅผ ์•ˆ ๋ถ™์ด๋ฉด '๋ณ€์ˆ˜ ํ• ๋‹น์ด ํšจ๊ณผ ์—†๋‹ค'๋Š” ๊ฒฝ๊ณ ๊ฐ€ ๋œจ๋‹ˆ ๊ผญ ์จ์•ผ ํ•ด์š”.

this() ๋ฉ”์†Œ๋“œ - ์ƒ์„ฑ์ž ๊ฐ„ ํ˜ธ์ถœํ•˜๊ธฐ [00:04:30]

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

this()๋ฅผ ํ™œ์šฉํ•œ ์ฝ”๋“œ ๊ฐ„๊ฒฐํ™” ์˜ˆ์‹œ [00:05:37]

โ€ข
์˜ˆ์‹œ:
public Student() { this("์ด๋ฆ„์—†์Œ", 0, 0, "์—†์Œ"); // ๋‹ค๋ฅธ ์ƒ์„ฑ์ž ํ˜ธ์ถœ } public Student(String name, int age, int number, String major) { this.name = name; this.age = age; this.number = number; this.major = major; }
Java
๋ณต์‚ฌ
โ€ข
์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ธฐ๋ณธ๊ฐ’์„ ๊ฐ€์ง„ ์ƒ์„ฑ์ž๊ฐ€ ๋ชจ๋“  ์ดˆ๊ธฐํ™” ์ž‘์—…์„ ๋งˆ์ง€๋ง‰ ์ƒ์„ฑ์ž์— ๋งก๊ธฐ๋ฉด์„œ ์ฝ”๋“œ๊ฐ€ ๊น”๋”ํ•ด์ง‘๋‹ˆ๋‹ค.

๋งˆ๋ฌด๋ฆฌ ๋ฐ ํ…Œ์ŠคํŠธ [00:08:35]

โ€ข
this์™€ this()๋ฅผ ์ž˜ ํ™œ์šฉํ•˜๋ฉด ๊ฐ์ฒด ๋ณ€์ˆ˜์™€ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„ํ•˜๊ณ , ์ƒ์„ฑ์ž ๊ฐ„ ์ค‘๋ณต ์ฝ”๋“œ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์–ด์š”.
โ€ข
์˜์ƒ์—์„œ ์„ค๋ช…ํ•œ ๋‚ด์šฉ์„ ๋”ฐ๋ผ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•ด๋ณด๋ฉด ์ดํ•ด๊ฐ€ ๋” ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค!

์ •๋ฆฌ

โ€ข
this๋Š” 'ํ˜„์žฌ ๊ฐ์ฒด ์ž์‹ '์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ํ‚ค์›Œ๋“œ๋กœ, ๋ณ€์ˆ˜ ์ด๋ฆ„์ด ๊ฒน์น  ๋•Œ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋ฅผ ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„ํ•ด์ค๋‹ˆ๋‹ค.
โ€ข
*this()**๋Š” ์ƒ์„ฑ์ž ์•ˆ์—์„œ ๋‹ค๋ฅธ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์“ฐ๋Š” ๋ฉ”์†Œ๋“œ๋กœ, ์ฝ”๋“œ ์ค‘๋ณต์„ ์ค„์ด๊ณ  ๊น”๋”ํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค.
โ€ข
๋‘ ํ‚ค์›Œ๋“œ๋ฅผ ์ž˜ ํ™œ์šฉํ•˜๋ฉด Java ํด๋ž˜์Šค ์ž‘์„ฑ์ด ํ›จ์”ฌ ํŽธ๋ฆฌํ•ด์ง‘๋‹ˆ๋‹ค!
์˜์ƒ ๋ณด์‹œ๊ณ  ์ง์ ‘ ์ฝ”๋”ฉํ•ด๋ณด๋ฉด์„œ ์ตํ˜€๋ณด์„ธ์š”! ๊ถ๊ธˆํ•œ ์  ์žˆ์œผ๋ฉด ์–ธ์ œ๋“  ์งˆ๋ฌธํ•ด ์ฃผ์„ธ์š”~