-
[Kotlin] ์ ๊ทผ์ ํ์, property, get(), set()Android/Kotlin 2021. 7. 5. 01:18๋ฐ์ํ
- ์ด ๊ธ์ "์ค์ฌ์ฑ์ Google ๊ณต์ ์ธ์ด Kotlin" ๊ฐ์๋ฅผ ๋ฃ๊ณ ๊ณต๋ถํ ๋ด์ฉ์ ์์ฑํ์์ต๋๋ค.
์ ๊ทผ์ ํ์
kotlin์ private, public, protected, internal 4๊ฐ์ง์ ์ ๊ทผ์ ํ์๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
kotlin์ Java์ ๋ค๋ฅธ์ ์ ํจํค์ง์๋ ๊ด๊ณ๊ฐ ์๊ณ , ๋ชจ๋์ ๋ํด์๋ง ์ ๊ทผ ์ ํ์ ๋๊ณ ์์ต๋๋ค.
private : ์ธ๋ถ ์ด๋ค ๊ณณ์์๋ ์ ๊ทผํ ์ ์์ต๋๋ค.
public : ์ธ๋ถ ์ด๋์๋ ์ง ์ ๊ทผํ ์ ์์ต๋๋ค.
protected : ํด๋์ค ์ ์ธ์์๋ ์ฌ์ฉ ๋ถ๊ฐ, ์์๋ ํด๋์ค์์๋ง ์ ๊ทผํ ์ ์์ต๋๋ค.
internal : ๊ฐ์ ๋ชจ๋ ๋ด์์๋ง ์ ๊ทผํ ์ ์์ต๋๋ค.
property
๊ฐ์ ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํน์ง ์ค ํ๋์ธ ์บก์ํ๋ ์ธ๋ถ๋ก๋ถํฐ ํด๋์ค ๋ด๋ถ ๋ณ์๋ฅผ ์ง์ ์ ๊ทผ์ ์ฐจ๋จํ์ฌ ์ธ๋ถ์์ ๊ฐ์ ๋ณ๊ฒฝํ์ง ๋ชปํ๊ฒ ๋ง๋ ๊ฒ์ ์บก์ํ๋ผ๊ณ ํฉ๋๋ค.
์บก์ํ๊ฐ ์ ์ฉ๋ ๋ณ์๋ฅผ ์ ๊ทผํ๊ธฐ ์ํด์๋ ํน์ ๋ฉ์๋๋ฅผ ํตํด์ ๊ฐ๋ฅํ๋๋ก ํ๋ ๊ฒ์ด property ์ ๋๋ค. ๋ณ์์ ๊ฐ์ ๋ฃ๋ ๊ฒ์ setter, ๋ณ์์ ๊ฐ์ ๊ฐ์ ธ์ค๋ ๊ฒ์ getter๋ผ๊ณ ํฉ๋๋ค.
class Student(var id: Int, val name: String) // Java Decompile public final class Student { private int id; @NotNull private final String name; public final int getId() { return this.id; } public final void setId(int var1) { this.id = var1; } @NotNull public final String getName() { return this.name; } public Student(int id, @NotNull String name) { Intrinsics.checkParameterIsNotNull(name, "name"); super(); this.id = id; this.name = name; } }
kotlin์ ๊ธฐ๋ณธ์์ฑ์๋ฅผ ํตํด ๋ณ์๋ฅผ ์ ์ธํ๋ฉด ์๋์ผ๋ก getter ๋ฉ์๋์ setter ๋ฉ์๋๋ฅผ ์์ฑํฉ๋๋ค.
getter์ setter ๋ฉ์๋๋ฅผ final๋ก ์ ์ธํ์ฌ ๋ฉ์๋ ๋ณ๊ฒฝ์ด ๋ถ๊ฐ๋ฅํ์ง๋ง, ๋๋ก๋ ๋ณ๊ฒฝ ํ์์ฑ์ด ์์ ์๋ฅผ ๋๋นํ์ฌ kotlin์์ get(), set() ๋ฉ์๋๋ฅผ ํตํด ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
class Student(var id: Int, val name: String) { var school: String = "seoul" get() { println("get ํธ์ถ") return field } set(value){ println("set ํธ์ถ") field = value } }
public final class Student { @NotNull private String school; private int id; @NotNull private final String name; @NotNull public final String getSchool() { String var1 = "get ํธ์ถ"; boolean var2 = false; System.out.println(var1); return this.school; } public final void setSchool(@NotNull String value) { Intrinsics.checkParameterIsNotNull(value, "value"); String var2 = "set ํธ์ถ"; boolean var3 = false; System.out.println(var2); this.school = value; } }
field๋ ํด๋น ๋ณ์๋ฅผ ๊ฐ๋ฆฌํค๊ฒ ๋์ด, get๊ณผ set์ ์ค์ ํ ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์๋ฐ๋ก ๋์ปดํ์ผํ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ์๋ฉด getter์ setter์ ๊ธฐ๋ณธ ๊ฐ์ด ์๋ ์ปค์คํ ํ๊ฒ ๊ตฌํํ getter, setter๊ฐ ๋ง๋ค์ด์ง๋๋ค.
๋ฐ์ํ'Android > Kotlin' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Kotlin] Array ์ฌ์ฉ๋ฒ (0) 2021.08.12 [Kotlin] Functional Programming (0) 2021.08.11 [Kotlin] Generic, Inner ํด๋์ค (0) 2021.07.07 [Kotlin] Companion Object ๋? (0) 2021.07.05 [Kotlin] ํด๋์ค ์์ฑ๊ณผ ์์ (0) 2021.07.04