์๋ฐ์คํฌ๋ฆฝํธ์์ ๊ธฐ๋ณธ ํ์ ์ ์ ์ธํ ๋ชจ๋ ๊ฐ์ ๊ฐ์ฒด์ด๋ค. ๋ฐฐ์ด์ด๋ ํจ์ ๋ํ ๊ฐ์ฒด๋ก ์ทจ๊ธ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ ๊ฐ์ฒด๋ ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ฐธ์กฐ ํ์ ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ์ด๊ฒ์ ๊ฐ์ฒด์ ๋ชจ๋ ์ฐ์ฐ์ด ์ค์ ๊ฐ์ด ์๋ ์ฐธ์กฐ๊ฐ์ผ๋ก ์ฒ๋ฆฌ๋๊ธฐ ๋๋ฌธ์ด๋ค.


- objA ๊ฐ์ฒด๋ฅผ ๊ฐ์ฒด ๋ฆฌํฐ๋ด ๋ฐฉ์์ผ๋ก ์์ฑํ๋ค. ์ฌ๊ธฐ์ objA ๋ณ์๋ ๊ฐ์ฒด ์์ฒด๋ฅผ ์ ์ฅํ๊ณ ์๋ ๊ฒ์ด ์๋๋ผ ์์ฑ๋ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ ์ฐธ์กฐ๊ฐ์ ์ ์ฅํ๊ณ ์๋ค.
- ๋ณ์ objB์ objA ๊ฐ์ ํ ๋นํ๋ค. objA๋ 1๋ฒ์์ ์์ฑ๋ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ ์ฐธ์กฐ๊ฐ์ ๊ฐ์ง๊ณ ์์ผ๋ฏ๋ก ๋ณ์ objB์๋ ์ด๊ฐ์ ๊ฐ์ฒด์ ์ฐธ์กฐ๊ฐ์ด ์ ์ฅ๋๋ค.

- ๋ณ์ objB๊ฐ ๊ฐ๋ฆฌํค๋ ๊ฐ์ฒด์ val ๊ฐ์ 40์์ 50์ผ๋ก ๊ฐฑ์ ํ๋ค. ์ด ๋ objA๋ ๋ณ์ objB์ ๋์ผํ ๊ฐ์ฒด๋ฅผ ใ ๋ง์กฐํ๊ณ ์์ผ๋ฏ๋ก a.val ๊ฐ์ด 50์ผ๋ก ๋ณ๊ฒฝ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.

๊ฐ์ฒด ๋น๊ต
๋๋ฑ ์ฐ์ฐ์(==)๋ฅผ ์ฌ์ฉํ์ฌ ๋ ๊ฐ์ฒด๋ฅผ ๋น๊ตํ ๋๋ ๊ฐ์ฒด์ ํ๋กํผํฐ๊ฐ์ด ์๋ ์ฐธ์กฐ๊ฐ์ ๋น๊ตํ๋ค๋ ๊ฒ์ ์ฃผ์ํด์ผ ํ๋ค.

- a์ b๋ ์ซ์ 100์ ์ ์ฅํ๊ณ ์๋ ๊ธฐ๋ณธ ํ์ ์ ๋ณ์๋ค. ๊ธฐ๋ณธ ํ์ ์ ๊ฒฝ์ฐ ๋๋ฑ ์ฐ์ฐ์(==)๋ฅผ ์ด์ฉํด์ ๋น๊ตํ ๋ ๊ฐ์ ๋น๊ตํ๋ค. ๋ ๋ณ์ ๋ชจ๋ 100์ด๋ผ๋ ๋์ผํ ๊ฐ์ ๊ฐ์ง๊ณ ์์ผ๋ฏ๋ก a==b์ ๊ฒฐ๊ณผ๋ true๊ฐ ๋๋ค.
- objA์ objB๋ ๋ค๋ฅธ ๊ฐ์ฒด์ง๋ง, ๊ฐ์ ํํ์ ํ๋กํผํฐ๊ฐ์ ๊ฐ์ง๊ณ ์๋ค. ํ์ง๋ง ๋๋ฑ ์ฐ์ฐ์(==)๋ก ๋ ๊ฐ์ฒด๋ฅผ ๋น๊ตํ๋ฉด ๊ฒฐ๊ณผ๋ false๊ฐ ๋๋ค. ๊ธฐ๋ณธ ํ์ ์ ๊ฒฝ์ฐ๋ ๊ฐ ์์ฒด๋ฅผ ๋น๊ตํด์ ์ผ์น ์ฌ๋ถ๋ฅผ ํ๋จํ์ง๋ง, ๊ฐ์ฒด์ ๊ฐ์ ์ฐธ์กฐ ํ์ ์ ๊ฒฝ์ฐ๋ ์ฐธ์กฐ๊ฐ์ด ๊ฐ์์ผ true๊ฐ ๋๋ค. ๋ฐ๋ผ์ ๋ค์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด objB์ objC๋ ๊ฐ์ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋ฏ๋ก ๋๋ฑ ์ฐ์ฐ์(==) ๊ฒฐ๊ณผ๊ฐ true๊ฐ ๋๋ ๊ฒ์ด๋ค.

์ฐธ์กฐ์ ์ํ ํจ์ ํธ์ถ ๋ฐฉ์
๊ธฐ๋ณธ ํ์ ๊ณผ ์ฐธ์กฐ ํ์ ์ ๊ฒฝ์ฐ๋ ํจ์ ํธ์ถ ๋ฐฉ์๋ ๋ค๋ฅด๋ค. ๊ธฐ๋ณธ ํ์ ์ ๊ฒฝ์ฐ๋ ๊ฐ์ ์ํ ํธ์ถ(Call by value) ๋ฐฉ์์ผ๋ก ๋์ํ๋ค.
→ ํจ์๋ฅผ ํธ์ถํ ๋ ์ธ์๋ก ๊ธฐ๋ณธ ํ์ ์ ๊ฐ์ ๋๊ธธ ๊ฒฝ์ฐ, ํธ์ถ๋ ํจ์์ ๋งค๊ฐ๋ณ์๋ก ๋ณต์ฌ๋ ๊ฐ์ด ์ ๋ฌ๋๋ค. ๋๋ฌธ์ ํจ์ ๋ด๋ถ์์ ๋งค๊ฐ๋ณ์๋ฅผ ์ด์ฉํด ๊ฐ์ ๋ณ๊ฒฝํด๋, ์ค์ ๋ก ํธ์ถ๋ ๋ณ์์ ๊ฐ์ด ๋ณ๊ฒฝ๋์ง๋ ์๋๋ค.
์ด์ ๋ฐํด, ๊ฐ์ฒด์ ๊ฐ์ ์ฐธ์กฐ ํ์ ์ ๊ฒฝ์ฐ ํจ์๋ฅผ ํธ์ถํ ๋ ์ฐธ์กฐ์ ์ํ ํธ์ถ(Call by reference) ๋ฐฉ์์ผ๋ก ๋์ํ๋ค.
→ ์ฆ, ํจ์๋ฅผ ํธ์ถํ ๋ ์ธ์๋ก ์ฐธ์กฐ ํ์ ์ ๊ฐ์ฒด๋ฅผ ์ ๋ฌํ ๊ฒฝ์ฐ, ๊ฐ์ฒด์ ํ๋กํผํฐ๊ฐ์ด ํจ์์ ๋งค๊ฐ๋ณ์๋ก ๋ณต์ฌ๋์ง ์๊ณ , ์ธ์๋ก ๋๊ธด ๊ฐ์ฒด์ ์ฐธ์กฐ๊ฐ์ด ๊ทธ๋๋ก ํจ์ ๋ด๋ถ๋ก ์ ๋ฌ๋๋ค. ๋๋ฌธ์ ํจ์ ๋ด๋ถ์์ ์ฐธ์กฐ๊ฐ์ ์ด์ฉํด์ ์ธ์๋ก ๋๊ธด ์ค์ ๊ฐ์ฒด์ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ ๊ฒ์ด๋ค.

