๋‚Œ๋‚Œ
ggim
๋‚Œ๋‚Œ
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • โ—พโ—ฝ (96)
    • ๐Ÿ’ฌPL (8)
      • ๐Ÿ’ซJava (8)
    • ๐Ÿ’พDB(Database) (2)
      • โญ•Oracle (1)
    • ๐Ÿ ๊ตญ๋น„์ง€์›ํ•™์› (76)
      • ๐Ÿ“–Java ์ˆ˜์—… (28)
      • ๐Ÿ“–DB ์ˆ˜์—… (14)
      • ๐Ÿ“–HTML ์ˆ˜์—… (5)
      • ๐Ÿ“–CSS ์ˆ˜์—… (3)
      • ๐Ÿ“–JavaScript ์ˆ˜์—… (8)
      • ๐Ÿ“–JSP ์ˆ˜์—… (13)
      • ๐Ÿ“–Spring ์ˆ˜์—… (5)
    • ๐Ÿ’ป๊ฐœ์ธ ๊ณต๋ถ€ (1)
      • ์ž๋ฐ”์˜ ์ •์„ (1)
    • ๐Ÿ’ผ (8)
      • โœ…๊ธฐ๋ณธ ์„ค์น˜ (6)
      • ๐ŸงLinux (2)
    • ๐Ÿ”ฅ๋‹ค์ง (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • Home
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
๋‚Œ๋‚Œ

ggim

[Java] ํ•™์› 221215(๋ชฉ) ์ƒ์„ฑ์ž, Call By Value, Call By Reference, this
๐Ÿ ๊ตญ๋น„์ง€์›ํ•™์›/๐Ÿ“–Java ์ˆ˜์—…

[Java] ํ•™์› 221215(๋ชฉ) ์ƒ์„ฑ์ž, Call By Value, Call By Reference, this

2023. 1. 16. 18:07

----------------------------------------

**์ƒ์„ฑ์ž ( Constructor )

-๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•  ๊ฐ’ ๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์ •์˜ํ•˜๋Š” ๊ณณ
-method์˜ ์ผ์ข…
-๊ฐ์ฒดํ™” ํ•  ๋•Œ์—๋งŒ ํ˜ธ์ถœ ๊ฐ€๋Šฅ (new๋กœ๋งŒ ํ˜ธ์ถœ ๊ฐ€๋Šฅ)
-์ƒ์†๋˜์ง€ ์•Š๋Š”๋‹ค
-ํด๋ž˜์Šค์˜ ์ด๋ฆ„๊ณผ ๋™์ผํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค
-์ƒ์„ฑ์ž ์•ˆ์—์„œ ๋‹ค๋ฅธ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ this๋‚˜ super๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค
-์ƒ์„ฑ์ž๋Š” Overload๊ฐ€ ์ง€์› ๋œ๋‹ค

์ž‘์„ฑ๋ฒ•)
 ์ ‘๊ทผ์ง€์ •์ž ํด๋ž˜์Šค๋ช… ( ๋งค๊ฐœ๋ณ€์ˆ˜,,,,) {
      ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผํ•  ๊ฐ’ ์„ค์ •

์ ‘๊ทผ์ง€์ •์ž
public : ํด๋ž˜์Šค ์™ธ๋ถ€์—์„œ ๊ฐ์ฒด์ƒ์„ฑ ๊ฐ€๋Šฅ
protected : ๊ฐ™์€ ํŒจํ‚ค์ง€์˜ ๋‹ค๋ฅธ ํด๋ž˜์Šค์—์„œ ๊ฐ์ฒด์ƒ์„ฑ๊ฐ€๋Šฅ
                   ํŒจํ‚ค์ง€๊ฐ€ ๋‹ค๋ฅด๋ฉด ์ƒ์†๊ด€๊ณ„์˜ ์ž์‹ ํด๋ž˜์Šค์—์„œ๋งŒ ๊ฐ์ฒด์ƒ์„ฑ๊ฐ€๋Šฅ
default : ๊ฐ™์€ ํŒจํ‚ค์ง€์˜ ๋‹ค๋ฅธ ํด๋ž˜์Šค์—์„œ ๊ฐ์ฒด์ƒ์„ฑ๊ฐ€๋Šฅ
                ํŒจํ‚ค์ง€๊ฐ€ ๋‹ค๋ฅด๋ฉด ๊ฐ์ฒด์ƒ์„ฑ ๋ถˆ๊ฐ€๋Šฅ
private : ํด๋ž˜์Šค ์•ˆ์—์„œ๋งŒ ๊ฐ์ฒด์ƒ์„ฑ ๊ฐ€๋Šฅ ( singleton pattern์„ ๋„์ž… )

----------------------------------------

ํ•จ์ˆ˜ ํ˜ธ์ถœ ๋ฐฉ๋ฒ•์€ ํฌ๊ฒŒ ๋‘๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

  • Call by value(๊ฐ’์— ์˜ํ•œ ํ˜ธ์ถœ)
  • Call by reference(์ฐธ์กฐ์— ์˜ํ•œ ํ˜ธ์ถœ)

Call by value(๊ฐ’์— ์˜ํ•œ ํ˜ธ์ถœ)๋Š” ์ธ์ž๋กœ ๋ฐ›์€ ๊ฐ’์„ ๋ณต์‚ฌํ•˜์—ฌ ์ฒ˜๋ฆฌ๋ฅผ ํ•œ๋‹ค.

Call by reference(์ฐธ์กฐ์— ์˜ํ•œ ํ˜ธ์ถœ)๋Š” ์ธ์ž๋กœ ๋ฐ›์€ ๊ฐ’์˜ ์ฃผ์†Œ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ์ง์ ‘ ๊ฐ’์— ์˜ํ–ฅ์„ ์ค€๋‹ค.

 

๊ฐ„๋‹จํžˆ ๋งํ•ด ๊ฐ’์„ ๋ณต์‚ฌ๋ฅผ ํ•˜์—ฌ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋А๋ƒ, ์•„๋‹ˆ๋ฉด ์ง์ ‘ ์ฐธ์กฐ๋ฅผ ํ•˜๋А๋ƒ ์ฐจ์ด๋‹ค.

 

Call by value(๊ฐ’์— ์˜ํ•œ ํ˜ธ์ถœ)

์žฅ์  : ๋ณต์‚ฌํ•˜์—ฌ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•ˆ์ „ํ•˜๋‹ค. ์›๋ž˜์˜ ๊ฐ’์ด ๋ณด์กด์ด ๋œ๋‹ค.

๋‹จ์  : ๋ณต์‚ฌ๋ฅผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์‚ฌ์šฉ๋Ÿ‰์ด ๋Š˜์–ด๋‚œ๋‹ค.

Call by reference(์ฐธ์กฐ์— ์˜ํ•œ ํ˜ธ์ถœ)

์žฅ์  : ๋ณต์‚ฌํ•˜์ง€ ์•Š๊ณ  ์ง์ ‘ ์ฐธ์กฐ๋ฅผ ํ•˜๊ธฐ์— ๋น ๋ฅด๋‹ค.

๋‹จ์  : ์ง์ ‘ ์ฐธ์กฐ๋ฅผ ํ•˜๊ธฐ์— ์›๋ž˜ ๊ฐ’์ด ์˜ํ–ฅ์„ ๋ฐ›๋Š”๋‹ค.

 

์ž๋ฐ”์—์„œ์˜ Call by value, Call by reference

C์–ธ์–ด์—์„œ๋Š” ํฌ์ธํ„ฐ๋ฅผ ์ด์šฉํ•ด์„œ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์ฃผ์†Œ๊ฐ’์„ ๋„˜๊ฒจ ์ฐธ์กฐ(Reference)ํ•  ์ˆ˜ ์žˆ๋‹ค.

JAVA์—์„œ๋Š” ํฌ์ธํ„ฐ๊ฐ€ ๋”ฐ๋กœ ์—†์œผ๋ฉฐ, ๊ธฐ๋ณธ์ ์ธ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” Call by Value์ง€๋งŒ

์˜ˆ์™ธ์ ์œผ๋กœ ๋ฐฐ์—ด๊ณผ ํด๋ž˜์Šค๋Š” ์ฐธ์กฐ๋ณ€์ˆ˜๋กœ Call by Reference๋กœ ์ž‘๋™ํ•œ๋‹ค. 



----------------------------------------

**this
๊ฐ์ฒด์˜ ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜๋˜๋Š” ํ‚ค์›Œ๋“œ
method ํ˜•์‹, ํ‚ค์›Œ๋“œ ํ˜•์‹์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

*keywordํ˜•์‹
๊ฐ์ฒดํ™” ํ›„ instance method ์•ˆ์— ์ƒ๋žต๋˜์–ด ์žˆ๋‹ค.
method๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฐ์ฒด์˜ ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜๋œ๋‹ค.
method๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฐ์ฒด์˜ instance ๋ณ€์ˆ˜, instance method๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
static ์˜์—ญ์—์„œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.
instance ์˜์—ญ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์‚ฌ์šฉ๋ฒ•)
-instance ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ
 this.๋ณ€์ˆ˜๋ช…

-instance method๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ
 this.method๋ช…(๊ฐ’,,,);

*methodํ˜•์‹ (๋ณดํ†ต ์ƒ์† ๋“ค์–ด๊ฐ€๋ฉด ์”€)
์ƒ์„ฑ์ž ์•ˆ์—์„œ ๊ฐ์ฒดํ™” ์—†์ด ํด๋ž˜์Šค์˜ ๋‹ค๋ฅธ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์‚ฌ์šฉ
์ƒ์„ฑ์ž์˜ ์ฒซ ๋ฒˆ์งธ ์ค„์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
์žฌ๊ท€ํ˜ธ์ถœ์ด ๋˜๋Š” ์ƒํ™ฉ์ด ์ƒ๊ธฐ๋ฉด error๊ฐ€ ๋ฐœ์ƒ.
super ์ž๋ฆฌ์— this๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

์‚ฌ์šฉ๋ฒ•)
  this(๊ฐ’,,,,);

'๐Ÿ ๊ตญ๋น„์ง€์›ํ•™์› > ๐Ÿ“–Java ์ˆ˜์—…' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Java] ํ•™์› 221219(์›”) 2์ฐจ์›๋ฐฐ์—ด  (0) 2023.01.17
[Java] ํ•™์› 221216(๊ธˆ) ์ฐธ์กฐํ˜•๋ฐ์ดํ„ฐํ˜•, String ํด๋ž˜์Šค ์ด์šฉํ•˜๊ธฐ, array(๋ฐฐ์—ด)  (0) 2023.01.17
[Java] ํ•™์› 221212(์›”) ๋ณ€์ˆ˜, ๊ฐ์ฒดํ™”, method  (0) 2023.01.16
[Java] ํ•™์› 221208(๋ชฉ) ์ œ์–ด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ  (0) 2023.01.16
[Java] ํ•™์› 221207(์ˆ˜) Package, ์ดํด๋ฆฝ์Šค  (0) 2023.01.16
    '๐Ÿ ๊ตญ๋น„์ง€์›ํ•™์›/๐Ÿ“–Java ์ˆ˜์—…' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Java] ํ•™์› 221219(์›”) 2์ฐจ์›๋ฐฐ์—ด
    • [Java] ํ•™์› 221216(๊ธˆ) ์ฐธ์กฐํ˜•๋ฐ์ดํ„ฐํ˜•, String ํด๋ž˜์Šค ์ด์šฉํ•˜๊ธฐ, array(๋ฐฐ์—ด)
    • [Java] ํ•™์› 221212(์›”) ๋ณ€์ˆ˜, ๊ฐ์ฒดํ™”, method
    • [Java] ํ•™์› 221208(๋ชฉ) ์ œ์–ด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ
    ๋‚Œ๋‚Œ
    ๋‚Œ๋‚Œ
    zzZ zzZ zzZzz

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”