변수 캡슐화란?
변수 캡슐화는 객체 지향 프로그래밍에서 중요한 원칙 중 하나이다. 이는 클래스의 맴버 변수를 외부에서 직접 접근하는 것이 아니라, 해당 변수에 대한 접근을 제한하고 메서드를 통해 간접적으로 변수에 접근하는 것을 말한다.
변수 캡슐화를 하면 다음과 같은 이점이 생긴다.
- 정보 은닉: 변수를 private로 선언할 수 있어 클래스 내부의 데이터를 보호하고, 외부에 불필요한 세부 구현을 감춘다.
- 접근 제어: getter와 setter 메서드를 통해 변수에 접근하므로, 변수에 대한 유효성 검사, 제한된 접근 권한 설정 등을 수행할 수 있다.
- 유연성과 유지보수성: 변수에 대한 의존성을 제한하여 클래스 내부의 구현 변경에 유연하게 대처할 수 있으며, 코드의 유지보수성을 향상시킨다.
설명만 듣고선 알기 힘드니 실제 코드를 보면서 확인해 보겠습니다.
class Person {
private var name: String = ""
private var age: Int = 0
fun getName(): String {
return name
}
fun setName(newName: String) {
name = newName
}
fun getAge(): Int {
return age
}
fun setAge(newAge: Int) {
age = newAge
}
}
fun main() {
val person = Person()
person.setName("John")
person.setAge(25)
println("Name: ${person.getName()}")
println("Age: ${person.getAge()}")
}
위의 코드를 보게 되면 person 내부에 name과 age라는 변수가 있다. 하지만 이 변수들은 private로 선언되어 있어 클래스 외부에서는 접근할 수 없다. 대신에 getName, setName, getAge, setAge 라는 공개된 메소드를 통해 변수에 접근할 수 있다.
메인 함수에서는 Person 객체를 생성하고 메소드를 사용해 변수에 값을 설정하고 출력한다. 이렇게 하면 name 변수와 age 변수에 직접 접근하는 것을 막고, 접근자와 설정자를 통해 간접적으로 변수에 접근할 수 있다. 이는 변수의 값을 보호하고 외부에서의 무차별한 수정을 방지하는데 도움을 준다.
'Android > Kotlin' 카테고리의 다른 글
Enum Class (0) | 2023.05.26 |
---|---|
Abstract Class & Interface (0) | 2023.05.25 |
REST API, Retrofit (0) | 2023.05.01 |
REST API에서 HATEOAS란? (0) | 2023.05.01 |
Retrofit 이란? (0) | 2023.04.03 |