์ฝํ๋ง์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ data ํด๋์ค์ copy()๋ผ๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํด ๋ณด์๋๋ฐ, ๋ญ์ง ์ ํํ ์๊ณ ์ฐ๋ฉด ์ข๊ฒ ์ด์ ๋ธ๋ก๊ทธ๋ฅผ ์์ฑํ๊ฒ ๋์๋ค.
์์ ๋ณต์ฌ๋ ๊ฐ์ฒด ์ธ์คํด์ค์ ์ฃผ์๊ฐ์ ๋ณต์ฌํ๋ ๊ฒ์ด๋ค. ๊ทธ๋์ ์๋ณต ๊ฐ์ฒด๋ฅผ ์์ ํ๋ฉด ๋ณต์ฌํ ๊ฐ์ฒด๋ ์์ ์ด ๋๋ค. ๋์ผ์ฑ๊ณผ ๋๋ฑ์ฑ์ด ๋ณด์ฅ๋๋ค.
๋์ผ์ฑ: ๋ ๊ฐ์ฒด๊ฐ ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ ๊ฐ๋ค. ex) ==
๋๋ฑ์ฑ: ๋ ๊ฐ์ฒด์ ๋ด์ฉ์ด ๊ฐ๋ค. ex) equals
val num1 = 1
val num2 = num1
printlin(num1 == num2) // true
๊น์ ๋ณต์ฌ๋ ์ค์ ๊ฐ์ ์๋ก์ด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ณต์ฌํ๋ ๊ฒ์ด๋ค. ๋ฐ๋ผ์ ์๋ณธ ๊ฐ์ฒด๋ฅผ ์์ ํ๋ฉด ๋ณต์ฌํ ๊ฐ์ฒด๊ฐ ์์ ์ด ๋์ง ์๋๋ค.
์ฝํ๋ฆฐ์ copy() ๋ฉ์๋๋ ๊น์ ๋ณต์ฌ๋ผ๊ณ ํ๋ค.
val person1 = Person(name = "๊น์ฑ๊ธธ", age = 19)
val person2 = person1.copy()
println(person1 == person2) // false